-
-
-
-
+
-
-
Name: Loading...
- Public Key:
-
- Loading...
- About: Loading...
+
+
+
+ RELAY
+
+
+
+ Loading...
+
+
+
+
-
diff --git a/api/index.js b/api/index.js
index 29873e8..2d010f8 100644
--- a/api/index.js
+++ b/api/index.js
@@ -1,267 +1,252 @@
- // Global error handler to prevent page refreshes
- window.addEventListener('error', function (e) {
- console.error('Global error caught:', e.error);
- console.error('Error message:', e.message);
- console.error('Error filename:', e.filename);
- console.error('Error line:', e.lineno);
- e.preventDefault(); // Prevent default browser error handling
- return true; // Prevent page refresh
+// Global error handler to prevent page refreshes
+window.addEventListener('error', function (e) {
+ console.error('Global error caught:', e.error);
+ console.error('Error message:', e.message);
+ console.error('Error filename:', e.filename);
+ console.error('Error line:', e.lineno);
+ e.preventDefault(); // Prevent default browser error handling
+ return true; // Prevent page refresh
+});
+
+window.addEventListener('unhandledrejection', function (e) {
+ console.error('Unhandled promise rejection:', e.reason);
+ e.preventDefault(); // Prevent default browser error handling
+ return true; // Prevent page refresh
+});
+
+// Global state
+let nlLite = null;
+let userPubkey = null;
+let isLoggedIn = false;
+let currentConfig = null;
+// Global subscription state
+let relayPool = null;
+let subscriptionId = null;
+// Relay connection state
+let relayInfo = null;
+let isRelayConnected = false;
+let relayPubkey = null;
+// Database statistics auto-refresh
+let statsAutoRefreshInterval = null;
+let countdownInterval = null;
+let countdownSeconds = 10;
+
+// DOM elements
+const loginModal = document.getElementById('login-modal');
+const loginModalContainer = document.getElementById('login-modal-container');
+const profileArea = document.getElementById('profile-area');
+const headerUserImage = document.getElementById('header-user-image');
+const headerUserName = document.getElementById('header-user-name');
+const logoutDropdown = document.getElementById('logout-dropdown');
+const logoutBtn = document.getElementById('logout-btn');
+
+// Legacy elements (kept for backward compatibility)
+const persistentUserName = document.getElementById('persistent-user-name');
+const persistentUserPubkey = document.getElementById('persistent-user-pubkey');
+const persistentUserAbout = document.getElementById('persistent-user-about');
+const persistentUserDetails = document.getElementById('persistent-user-details');
+const fetchConfigBtn = document.getElementById('fetch-config-btn');
+// Relay connection elements
+const relayConnectionUrl = document.getElementById('relay-connection-url');
+const relayPubkeyManual = document.getElementById('relay-pubkey-manual');
+const relayConnectionStatus = document.getElementById('relay-connection-status');
+const connectRelayBtn = document.getElementById('connect-relay-btn');
+const disconnectRelayBtn = document.getElementById('disconnect-relay-btn');
+const restartRelayBtn = document.getElementById('restart-relay-btn');
+const configDisplay = document.getElementById('config-display');
+const configTableBody = document.getElementById('config-table-body');
+
+// NIP-17 DM elements
+const dmOutbox = document.getElementById('dm-outbox');
+const dmInbox = document.getElementById('dm-inbox');
+const sendDmBtn = document.getElementById('send-dm-btn');
+
+// Utility functions
+function log(message, type = 'INFO') {
+ const timestamp = new Date().toISOString().split('T')[1].split('.')[0];
+ const logMessage = `${timestamp} [${type}]: ${message}`;
+
+ // Always log to browser console so we don't lose logs on refresh
+ console.log(logMessage);
+
+ // UI logging removed - using console only
+}
+
+// Utility functions
+function log(message, type = 'INFO') {
+ const timestamp = new Date().toISOString().split('T')[1].split('.')[0];
+ const logMessage = `${timestamp} [${type}]: ${message}`;
+
+ // Always log to browser console so we don't lose logs on refresh
+ console.log(logMessage);
+
+ // UI logging removed - using console only
+}
+
+// NIP-59 helper: randomize created_at to thwart time-analysis (past 2 days)
+function randomNow() {
+ const TWO_DAYS = 2 * 24 * 60 * 60; // 172800 seconds
+ const now = Math.round(Date.now() / 1000);
+ return Math.round(now - Math.random() * TWO_DAYS);
+}
+
+// Safe JSON parse with error handling
+function safeJsonParse(jsonString) {
+ try {
+ return JSON.parse(jsonString);
+ } catch (error) {
+ console.error('JSON parse error:', error);
+ return null;
+ }
+}
+// ================================
+// NIP-11 RELAY CONNECTION FUNCTIONS
+// ================================
+
+// Convert WebSocket URL to HTTP URL for NIP-11
+function wsToHttpUrl(wsUrl) {
+ if (wsUrl.startsWith('ws://')) {
+ return wsUrl.replace('ws://', 'http://');
+ } else if (wsUrl.startsWith('wss://')) {
+ return wsUrl.replace('wss://', 'https://');
+ }
+ return wsUrl;
+}
+
+// Fetch relay information using NIP-11
+async function fetchRelayInfo(relayUrl) {
+ try {
+ log(`Fetching NIP-11 relay info from: ${relayUrl}`, 'INFO');
+
+ // Convert WebSocket URL to HTTP URL
+ const httpUrl = wsToHttpUrl(relayUrl);
+
+ // Make HTTP request with NIP-11 headers
+ const response = await fetch(httpUrl, {
+ method: 'GET',
+ headers: {
+ 'Accept': 'application/nostr+json',
+ 'User-Agent': 'C-Relay-Admin-API/1.0'
+ },
+ timeout: 10000 // 10 second timeout
});
- window.addEventListener('unhandledrejection', function (e) {
- console.error('Unhandled promise rejection:', e.reason);
- e.preventDefault(); // Prevent default browser error handling
- return true; // Prevent page refresh
- });
-
- // Global state
- let nlLite = null;
- let userPubkey = null;
- let isLoggedIn = false;
- let currentConfig = null;
- // Global subscription state
- let relayPool = null;
- let subscriptionId = null;
- // Relay connection state
- let relayInfo = null;
- let isRelayConnected = false;
- let relayPubkey = null;
-
- // DOM elements
- const loginSection = document.getElementById('login-section');
- // const mainInterface = document.getElementById('main-interface');
- const persistentUserName = document.getElementById('persistent-user-name');
- const persistentUserPubkey = document.getElementById('persistent-user-pubkey');
- const persistentUserAbout = document.getElementById('persistent-user-about');
- const persistentUserDetails = document.getElementById('persistent-user-details');
- const fetchConfigBtn = document.getElementById('fetch-config-btn');
- // Relay connection elements
- const relayConnectionUrl = document.getElementById('relay-connection-url');
- const relayPubkeyManual = document.getElementById('relay-pubkey-manual');
- const relayConnectionStatus = document.getElementById('relay-connection-status');
- const connectRelayBtn = document.getElementById('connect-relay-btn');
- const disconnectRelayBtn = document.getElementById('disconnect-relay-btn');
- const restartRelayBtn = document.getElementById('restart-relay-btn');
- const configDisplay = document.getElementById('config-display');
- const configTableBody = document.getElementById('config-table-body');
-
- // NIP-17 DM elements
- const dmOutbox = document.getElementById('dm-outbox');
- const dmInbox = document.getElementById('dm-inbox');
- const sendDmBtn = document.getElementById('send-dm-btn');
-
- // Utility functions
- function log(message, type = 'INFO') {
- const timestamp = new Date().toISOString().split('T')[1].split('.')[0];
- const logMessage = `${timestamp} [${type}]: ${message}`;
-
- // Always log to browser console so we don't lose logs on refresh
- console.log(logMessage);
-
- // UI logging removed - using console only
+ if (!response.ok) {
+ throw new Error(`HTTP ${response.status}: ${response.statusText}`);
}
- // Utility functions
- function log(message, type = 'INFO') {
- const timestamp = new Date().toISOString().split('T')[1].split('.')[0];
- const logMessage = `${timestamp} [${type}]: ${message}`;
-
- // Always log to browser console so we don't lose logs on refresh
- console.log(logMessage);
-
- // UI logging removed - using console only
+ const contentType = response.headers.get('content-type');
+ if (!contentType || !contentType.includes('application/nostr+json')) {
+ throw new Error(`Invalid content type: ${contentType}. Expected application/nostr+json`);
}
- // NIP-59 helper: randomize created_at to thwart time-analysis (past 2 days)
- function randomNow() {
- const TWO_DAYS = 2 * 24 * 60 * 60; // 172800 seconds
- const now = Math.round(Date.now() / 1000);
- return Math.round(now - Math.random() * TWO_DAYS);
+ const relayInfo = await response.json();
+
+ // Log if relay info is empty (not configured yet) but don't throw error
+ if (!relayInfo || Object.keys(relayInfo).length === 0) {
+ log('Relay returned empty NIP-11 info - relay not configured yet, will use manual pubkey if provided', 'INFO');
+ // Return empty object - this is valid, caller will handle manual pubkey fallback
+ return {};
}
- // Safe JSON parse with error handling
- function safeJsonParse(jsonString) {
- try {
- return JSON.parse(jsonString);
- } catch (error) {
- console.error('JSON parse error:', error);
- return null;
- }
- }
- // ================================
- // NIP-11 RELAY CONNECTION FUNCTIONS
- // ================================
-
- // Convert WebSocket URL to HTTP URL for NIP-11
- function wsToHttpUrl(wsUrl) {
- if (wsUrl.startsWith('ws://')) {
- return wsUrl.replace('ws://', 'http://');
- } else if (wsUrl.startsWith('wss://')) {
- return wsUrl.replace('wss://', 'https://');
- }
- return wsUrl;
+ // Validate pubkey if present
+ if (relayInfo.pubkey && !/^[0-9a-fA-F]{64}$/.test(relayInfo.pubkey)) {
+ throw new Error(`Invalid relay pubkey format: ${relayInfo.pubkey}`);
}
- // Fetch relay information using NIP-11
- async function fetchRelayInfo(relayUrl) {
- try {
- log(`Fetching NIP-11 relay info from: ${relayUrl}`, 'INFO');
+ log(`Successfully fetched relay info. Pubkey: ${relayInfo.pubkey ? relayInfo.pubkey.substring(0, 16) + '...' : 'not set'}`, 'INFO');
+ return relayInfo;
- // Convert WebSocket URL to HTTP URL
- const httpUrl = wsToHttpUrl(relayUrl);
+ } catch (error) {
+ log(`Failed to fetch relay info: ${error.message}`, 'ERROR');
+ throw error;
+ }
+}
- // Make HTTP request with NIP-11 headers
- const response = await fetch(httpUrl, {
- method: 'GET',
- headers: {
- 'Accept': 'application/nostr+json',
- 'User-Agent': 'C-Relay-Admin-API/1.0'
- },
- timeout: 10000 // 10 second timeout
- });
+// Test WebSocket connection to relay
+async function testWebSocketConnection(wsUrl) {
+ return new Promise((resolve, reject) => {
+ try {
+ log(`Testing WebSocket connection to: ${wsUrl}`, 'INFO');
- if (!response.ok) {
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
+ const ws = new WebSocket(wsUrl);
+ const timeout = setTimeout(() => {
+ ws.close();
+ reject(new Error('WebSocket connection timeout (10s)'));
+ }, 10000);
+
+ ws.onopen = () => {
+ clearTimeout(timeout);
+ log('WebSocket connection successful', 'INFO');
+ ws.close();
+ resolve(true);
+ };
+
+ ws.onerror = (error) => {
+ clearTimeout(timeout);
+ log(`WebSocket connection failed: ${error.message || 'Unknown error'}`, 'ERROR');
+ reject(new Error('WebSocket connection failed'));
+ };
+
+ ws.onclose = (event) => {
+ if (event.code !== 1000) { // 1000 = normal closure
+ clearTimeout(timeout);
+ reject(new Error(`WebSocket closed unexpectedly: ${event.code} ${event.reason}`));
+ }
+ };
+
+ } catch (error) {
+ log(`WebSocket test error: ${error.message}`, 'ERROR');
+ reject(error);
+ }
+ });
+}
+
+// Connect to relay (NIP-11 + WebSocket test)
+async function connectToRelay() {
+ try {
+ const url = relayConnectionUrl.value.trim();
+ if (!url) {
+ throw new Error('Please enter a relay URL');
+ }
+
+ // Update UI to show connecting state
+ updateRelayConnectionStatus('connecting');
+ connectRelayBtn.disabled = true;
+
+ log(`Connecting to relay: ${url}`, 'INFO');
+
+ let fetchedRelayInfo;
+
+ try {
+ // Step 1: Try to fetch NIP-11 relay information
+ fetchedRelayInfo = await fetchRelayInfo(url);
+
+ // Check if NIP-11 response includes a pubkey
+ if (fetchedRelayInfo.pubkey) {
+ // NIP-11 provided pubkey - populate the manual input field
+ log(`NIP-11 provided relay pubkey: ${fetchedRelayInfo.pubkey.substring(0, 16)}...`, 'INFO');
+ relayPubkeyManual.value = fetchedRelayInfo.pubkey;
+ } else {
+ // NIP-11 response missing pubkey, check for manual input
+ log('NIP-11 response missing pubkey, checking for manual input...', 'INFO');
+
+ const manualPubkey = relayPubkeyManual.value.trim();
+ if (!manualPubkey) {
+ throw new Error('Relay NIP-11 response does not include a pubkey. Please enter the relay pubkey manually (shown during relay startup).');
}
- const contentType = response.headers.get('content-type');
- if (!contentType || !contentType.includes('application/nostr+json')) {
- throw new Error(`Invalid content type: ${contentType}. Expected application/nostr+json`);
+ if (!/^[0-9a-fA-F]{64}$/.test(manualPubkey)) {
+ throw new Error('Manual relay pubkey must be exactly 64 hexadecimal characters');
}
- const relayInfo = await response.json();
+ log(`Using manual relay pubkey: ${manualPubkey.substring(0, 16)}...`, 'INFO');
- // Log if relay info is empty (not configured yet) but don't throw error
- if (!relayInfo || Object.keys(relayInfo).length === 0) {
- log('Relay returned empty NIP-11 info - relay not configured yet, will use manual pubkey if provided', 'INFO');
- // Return empty object - this is valid, caller will handle manual pubkey fallback
- return {};
- }
+ // Add manual pubkey to the fetched relay info
+ fetchedRelayInfo.pubkey = manualPubkey;
- // Validate pubkey if present
- if (relayInfo.pubkey && !/^[0-9a-fA-F]{64}$/.test(relayInfo.pubkey)) {
- throw new Error(`Invalid relay pubkey format: ${relayInfo.pubkey}`);
- }
-
- log(`Successfully fetched relay info. Pubkey: ${relayInfo.pubkey ? relayInfo.pubkey.substring(0, 16) + '...' : 'not set'}`, 'INFO');
- return relayInfo;
-
- } catch (error) {
- log(`Failed to fetch relay info: ${error.message}`, 'ERROR');
- throw error;
- }
- }
-
- // Test WebSocket connection to relay
- async function testWebSocketConnection(wsUrl) {
- return new Promise((resolve, reject) => {
- try {
- log(`Testing WebSocket connection to: ${wsUrl}`, 'INFO');
-
- const ws = new WebSocket(wsUrl);
- const timeout = setTimeout(() => {
- ws.close();
- reject(new Error('WebSocket connection timeout (10s)'));
- }, 10000);
-
- ws.onopen = () => {
- clearTimeout(timeout);
- log('WebSocket connection successful', 'INFO');
- ws.close();
- resolve(true);
- };
-
- ws.onerror = (error) => {
- clearTimeout(timeout);
- log(`WebSocket connection failed: ${error.message || 'Unknown error'}`, 'ERROR');
- reject(new Error('WebSocket connection failed'));
- };
-
- ws.onclose = (event) => {
- if (event.code !== 1000) { // 1000 = normal closure
- clearTimeout(timeout);
- reject(new Error(`WebSocket closed unexpectedly: ${event.code} ${event.reason}`));
- }
- };
-
- } catch (error) {
- log(`WebSocket test error: ${error.message}`, 'ERROR');
- reject(error);
- }
- });
- }
-
- // Connect to relay (NIP-11 + WebSocket test)
- async function connectToRelay() {
- try {
- const url = relayConnectionUrl.value.trim();
- if (!url) {
- throw new Error('Please enter a relay URL');
- }
-
- // Update UI to show connecting state
- updateRelayConnectionStatus('connecting');
- connectRelayBtn.disabled = true;
-
- log(`Connecting to relay: ${url}`, 'INFO');
-
- let fetchedRelayInfo;
-
- try {
- // Step 1: Try to fetch NIP-11 relay information
- fetchedRelayInfo = await fetchRelayInfo(url);
-
- // Check if NIP-11 response includes a pubkey
- if (fetchedRelayInfo.pubkey) {
- // NIP-11 provided pubkey - populate the manual input field
- log(`NIP-11 provided relay pubkey: ${fetchedRelayInfo.pubkey.substring(0, 16)}...`, 'INFO');
- relayPubkeyManual.value = fetchedRelayInfo.pubkey;
- } else {
- // NIP-11 response missing pubkey, check for manual input
- log('NIP-11 response missing pubkey, checking for manual input...', 'INFO');
-
- const manualPubkey = relayPubkeyManual.value.trim();
- if (!manualPubkey) {
- throw new Error('Relay NIP-11 response does not include a pubkey. Please enter the relay pubkey manually (shown during relay startup).');
- }
-
- if (!/^[0-9a-fA-F]{64}$/.test(manualPubkey)) {
- throw new Error('Manual relay pubkey must be exactly 64 hexadecimal characters');
- }
-
- log(`Using manual relay pubkey: ${manualPubkey.substring(0, 16)}...`, 'INFO');
-
- // Add manual pubkey to the fetched relay info
- fetchedRelayInfo.pubkey = manualPubkey;
-
- // If relay info was completely empty, create minimal info
- if (Object.keys(fetchedRelayInfo).length === 1) {
- fetchedRelayInfo = {
- name: 'C-Relay (Manual Config)',
- description: 'C-Relay instance - pubkey provided manually',
- pubkey: manualPubkey,
- contact: 'admin@manual.config.relay',
- supported_nips: [1, 9, 11, 13, 15, 20, 33, 40, 42],
- software: 'https://github.com/0xtrr/c-relay',
- version: '1.0.0'
- };
- }
- }
-
- } catch (nip11Error) {
- // If NIP-11 completely fails (network error, etc.), require manual pubkey
- const manualPubkey = relayPubkeyManual.value.trim();
- if (!manualPubkey) {
- throw new Error(`NIP-11 fetch failed: ${nip11Error.message}. Please enter the relay pubkey manually if the relay hasn't been configured yet.`);
- }
-
- if (!/^[0-9a-fA-F]{64}$/.test(manualPubkey)) {
- throw new Error('Manual relay pubkey must be exactly 64 hexadecimal characters');
- }
-
- log(`NIP-11 failed, using manual relay pubkey: ${manualPubkey.substring(0, 16)}...`, 'INFO');
-
- // Create minimal relay info with manual pubkey
+ // If relay info was completely empty, create minimal info
+ if (Object.keys(fetchedRelayInfo).length === 1) {
fetchedRelayInfo = {
name: 'C-Relay (Manual Config)',
description: 'C-Relay instance - pubkey provided manually',
@@ -272,1582 +257,1786 @@
version: '1.0.0'
};
}
-
- // Step 2: Test WebSocket connection
- await testWebSocketConnection(url);
-
- // Step 3: Update global state
- relayInfo = fetchedRelayInfo;
- relayPubkey = fetchedRelayInfo.pubkey;
- isRelayConnected = true;
-
- // Step 4: Update UI
- updateRelayConnectionStatus('connected');
- updateAdminSectionsVisibility();
-
- // Step 5: Relay URL updated
-
- // Step 6: Automatically load configuration and auth rules
- log('Relay connected successfully. Auto-loading configuration and auth rules...', 'INFO');
-
- // Auto-fetch configuration
- setTimeout(() => {
- fetchConfiguration().catch(error => {
- log('Auto-fetch configuration failed: ' + error.message, 'ERROR');
- });
- }, 500);
-
- // Auto-fetch auth rules
- setTimeout(() => {
- loadAuthRules().catch(error => {
- log('Auto-fetch auth rules failed: ' + error.message, 'ERROR');
- });
- }, 1000);
-
- // Auto-fetch database statistics
- setTimeout(() => {
- sendStatsQuery().catch(error => {
- log('Auto-fetch statistics failed: ' + error.message, 'ERROR');
- });
- }, 1500);
-
- log(`Successfully connected to relay: ${relayInfo.name || 'Unknown'}`, 'INFO');
-
- } catch (error) {
- log(`Failed to connect to relay: ${error.message}`, 'ERROR');
- updateRelayConnectionStatus('error');
-
- // Reset state on failure
- relayInfo = null;
- relayPubkey = null;
- isRelayConnected = false;
-
- } finally {
- connectRelayBtn.disabled = false;
}
+
+ } catch (nip11Error) {
+ // If NIP-11 completely fails (network error, etc.), require manual pubkey
+ const manualPubkey = relayPubkeyManual.value.trim();
+ if (!manualPubkey) {
+ throw new Error(`NIP-11 fetch failed: ${nip11Error.message}. Please enter the relay pubkey manually if the relay hasn't been configured yet.`);
+ }
+
+ if (!/^[0-9a-fA-F]{64}$/.test(manualPubkey)) {
+ throw new Error('Manual relay pubkey must be exactly 64 hexadecimal characters');
+ }
+
+ log(`NIP-11 failed, using manual relay pubkey: ${manualPubkey.substring(0, 16)}...`, 'INFO');
+
+ // Create minimal relay info with manual pubkey
+ fetchedRelayInfo = {
+ name: 'C-Relay (Manual Config)',
+ description: 'C-Relay instance - pubkey provided manually',
+ pubkey: manualPubkey,
+ contact: 'admin@manual.config.relay',
+ supported_nips: [1, 9, 11, 13, 15, 20, 33, 40, 42],
+ software: 'https://github.com/0xtrr/c-relay',
+ version: '1.0.0'
+ };
}
- // Disconnect from relay
- function disconnectFromRelay() {
- try {
- log('Disconnecting from relay...', 'INFO');
+ // Step 2: Test WebSocket connection
+ await testWebSocketConnection(url);
- // Clean up relay pool if exists
- if (relayPool) {
- const url = relayConnectionUrl.value.trim();
- if (url) {
- relayPool.close([url]);
- }
- relayPool = null;
- subscriptionId = null;
+ // Step 3: Update global state
+ relayInfo = fetchedRelayInfo;
+ relayPubkey = fetchedRelayInfo.pubkey;
+ isRelayConnected = true;
+
+ // Step 4: Update UI
+ updateRelayConnectionStatus('connected');
+ updateAdminSectionsVisibility();
+
+ // Step 5: Relay URL updated
+
+ // Step 6: Automatically load configuration and auth rules
+ log('Relay connected successfully. Auto-loading configuration and auth rules...', 'INFO');
+
+ // Auto-fetch configuration
+ setTimeout(() => {
+ fetchConfiguration().catch(error => {
+ log('Auto-fetch configuration failed: ' + error.message, 'ERROR');
+ });
+ }, 500);
+
+ // Auto-fetch auth rules
+ setTimeout(() => {
+ loadAuthRules().catch(error => {
+ log('Auto-fetch auth rules failed: ' + error.message, 'ERROR');
+ });
+ }, 1000);
+
+ // Auto-fetch database statistics
+ setTimeout(() => {
+ sendStatsQuery().catch(error => {
+ log('Auto-fetch statistics failed: ' + error.message, 'ERROR');
+ });
+ }, 1500);
+
+ log(`Successfully connected to relay: ${relayInfo.name || 'Unknown'}`, 'INFO');
+
+ } catch (error) {
+ log(`Failed to connect to relay: ${error.message}`, 'ERROR');
+ updateRelayConnectionStatus('error');
+
+ // Reset state on failure
+ relayInfo = null;
+ relayPubkey = null;
+ isRelayConnected = false;
+
+ } finally {
+ connectRelayBtn.disabled = false;
+ }
+}
+
+// Disconnect from relay
+function disconnectFromRelay() {
+ try {
+ log('Disconnecting from relay...', 'INFO');
+
+ // Clean up relay pool if exists
+ if (relayPool) {
+ const url = relayConnectionUrl.value.trim();
+ if (url) {
+ relayPool.close([url]);
+ }
+ relayPool = null;
+ subscriptionId = null;
+ }
+
+ // Reset state
+ relayInfo = null;
+ relayPubkey = null;
+ isRelayConnected = false;
+
+ // Update UI
+ updateRelayConnectionStatus('disconnected');
+ hideRelayInfo();
+ updateAdminSectionsVisibility();
+
+ log('Disconnected from relay', 'INFO');
+
+ } catch (error) {
+ log(`Error during relay disconnection: ${error.message}`, 'ERROR');
+ }
+}
+
+// Update relay connection status UI
+function updateRelayConnectionStatus(status) {
+ if (!relayConnectionStatus) return;
+
+ switch (status) {
+ case 'connecting':
+ relayConnectionStatus.textContent = 'CONNECTING...';
+ relayConnectionStatus.className = 'status connected';
+ connectRelayBtn.disabled = true;
+ disconnectRelayBtn.disabled = true;
+ restartRelayBtn.disabled = true;
+ break;
+ case 'connected':
+ relayConnectionStatus.textContent = 'CONNECTED';
+ relayConnectionStatus.className = 'status connected';
+ connectRelayBtn.disabled = true;
+ disconnectRelayBtn.disabled = false;
+ restartRelayBtn.disabled = false;
+ break;
+ case 'disconnected':
+ relayConnectionStatus.textContent = 'NOT CONNECTED';
+ relayConnectionStatus.className = 'status disconnected';
+ connectRelayBtn.disabled = false;
+ disconnectRelayBtn.disabled = true;
+ restartRelayBtn.disabled = true;
+ break;
+ case 'error':
+ relayConnectionStatus.textContent = 'CONNECTION FAILED';
+ relayConnectionStatus.className = 'status error';
+ connectRelayBtn.disabled = false;
+ disconnectRelayBtn.disabled = true;
+ restartRelayBtn.disabled = true;
+ break;
+ }
+}
+
+// Hide relay information display (placeholder for removed functionality)
+function hideRelayInfo() {
+ // Relay info display functionality has been removed
+ console.log('Relay info display functionality has been removed');
+}
+
+// Check for existing authentication state with multiple API methods and retry logic
+async function checkExistingAuthWithRetries() {
+ console.log('Starting authentication state detection with retry logic...');
+
+ const maxAttempts = 3;
+ const delay = 200; // ms between attempts (reduced from 500ms)
+
+ for (let attempt = 1; attempt <= maxAttempts; attempt++) {
+ console.log(`Authentication detection attempt ${attempt}/${maxAttempts}`);
+
+ try {
+ // Method 1: Try window.NOSTR_LOGIN_LITE.getAuthState()
+ if (window.NOSTR_LOGIN_LITE && typeof window.NOSTR_LOGIN_LITE.getAuthState === 'function') {
+ console.log('Trying window.NOSTR_LOGIN_LITE.getAuthState()...');
+ const authState = window.NOSTR_LOGIN_LITE.getAuthState();
+ if (authState && authState.pubkey) {
+ console.log('✅ Auth state found via NOSTR_LOGIN_LITE.getAuthState():', authState.pubkey);
+ await restoreAuthenticationState(authState.pubkey);
+ return true;
}
-
- // Reset state
- relayInfo = null;
- relayPubkey = null;
- isRelayConnected = false;
-
- // Update UI
- updateRelayConnectionStatus('disconnected');
- hideRelayInfo();
- updateAdminSectionsVisibility();
-
- log('Disconnected from relay', 'INFO');
-
- } catch (error) {
- log(`Error during relay disconnection: ${error.message}`, 'ERROR');
}
- }
- // Update relay connection status UI
- function updateRelayConnectionStatus(status) {
- if (!relayConnectionStatus) return;
-
- switch (status) {
- case 'connecting':
- relayConnectionStatus.textContent = 'CONNECTING...';
- relayConnectionStatus.className = 'status connected';
- connectRelayBtn.disabled = true;
- disconnectRelayBtn.disabled = true;
- restartRelayBtn.disabled = true;
- break;
- case 'connected':
- relayConnectionStatus.textContent = 'CONNECTED';
- relayConnectionStatus.className = 'status connected';
- connectRelayBtn.disabled = true;
- disconnectRelayBtn.disabled = false;
- restartRelayBtn.disabled = false;
- break;
- case 'disconnected':
- relayConnectionStatus.textContent = 'NOT CONNECTED';
- relayConnectionStatus.className = 'status disconnected';
- connectRelayBtn.disabled = false;
- disconnectRelayBtn.disabled = true;
- restartRelayBtn.disabled = true;
- break;
- case 'error':
- relayConnectionStatus.textContent = 'CONNECTION FAILED';
- relayConnectionStatus.className = 'status error';
- connectRelayBtn.disabled = false;
- disconnectRelayBtn.disabled = true;
- restartRelayBtn.disabled = true;
- break;
+ // Method 2: Try nlLite.getPublicKey()
+ if (nlLite && typeof nlLite.getPublicKey === 'function') {
+ console.log('Trying nlLite.getPublicKey()...');
+ const pubkey = await nlLite.getPublicKey();
+ if (pubkey && pubkey.length === 64) {
+ console.log('✅ Pubkey found via nlLite.getPublicKey():', pubkey);
+ await restoreAuthenticationState(pubkey);
+ return true;
+ }
}
- }
- // Hide relay information display (placeholder for removed functionality)
- function hideRelayInfo() {
- // Relay info display functionality has been removed
- console.log('Relay info display functionality has been removed');
- }
-
- // Check for existing authentication state with multiple API methods and retry logic
- async function checkExistingAuthWithRetries() {
- console.log('Starting authentication state detection with retry logic...');
-
- const maxAttempts = 10;
- const delay = 500; // ms between attempts
-
- for (let attempt = 1; attempt <= maxAttempts; attempt++) {
- console.log(`Authentication detection attempt ${attempt}/${maxAttempts}`);
+ // Method 3: Try window.nostr.getPublicKey() (NIP-07)
+ if (window.nostr && typeof window.nostr.getPublicKey === 'function') {
+ console.log('Trying window.nostr.getPublicKey()...');
+ const pubkey = await window.nostr.getPublicKey();
+ if (pubkey && pubkey.length === 64) {
+ console.log('✅ Pubkey found via window.nostr.getPublicKey():', pubkey);
+ await restoreAuthenticationState(pubkey);
+ return true;
+ }
+ }
+ // Method 4: Check localStorage directly for NOSTR_LOGIN_LITE data
+ const localStorageData = localStorage.getItem('NOSTR_LOGIN_LITE_DATA');
+ if (localStorageData) {
try {
- // Method 1: Try window.NOSTR_LOGIN_LITE.getAuthState()
- if (window.NOSTR_LOGIN_LITE && typeof window.NOSTR_LOGIN_LITE.getAuthState === 'function') {
- console.log('Trying window.NOSTR_LOGIN_LITE.getAuthState()...');
- const authState = window.NOSTR_LOGIN_LITE.getAuthState();
- if (authState && authState.pubkey) {
- console.log('✅ Auth state found via NOSTR_LOGIN_LITE.getAuthState():', authState.pubkey);
- await restoreAuthenticationState(authState.pubkey);
- return true;
- }
- }
-
- // Method 2: Try nlLite.getPublicKey()
- if (nlLite && typeof nlLite.getPublicKey === 'function') {
- console.log('Trying nlLite.getPublicKey()...');
- const pubkey = await nlLite.getPublicKey();
- if (pubkey && pubkey.length === 64) {
- console.log('✅ Pubkey found via nlLite.getPublicKey():', pubkey);
- await restoreAuthenticationState(pubkey);
- return true;
- }
- }
-
- // Method 3: Try window.nostr.getPublicKey() (NIP-07)
- if (window.nostr && typeof window.nostr.getPublicKey === 'function') {
- console.log('Trying window.nostr.getPublicKey()...');
- const pubkey = await window.nostr.getPublicKey();
- if (pubkey && pubkey.length === 64) {
- console.log('✅ Pubkey found via window.nostr.getPublicKey():', pubkey);
- await restoreAuthenticationState(pubkey);
- return true;
- }
- }
-
- // Method 4: Check localStorage directly for NOSTR_LOGIN_LITE data
- const localStorageData = localStorage.getItem('NOSTR_LOGIN_LITE_DATA');
- if (localStorageData) {
- try {
- const parsedData = JSON.parse(localStorageData);
- if (parsedData.pubkey) {
- console.log('✅ Pubkey found in localStorage:', parsedData.pubkey);
- await restoreAuthenticationState(parsedData.pubkey);
- return true;
- }
- } catch (parseError) {
- console.log('Failed to parse localStorage data:', parseError.message);
- }
- }
-
- console.log(`❌ Attempt ${attempt}: No authentication found via any method`);
-
- // Wait before next attempt (except for last attempt)
- if (attempt < maxAttempts) {
- await new Promise(resolve => setTimeout(resolve, delay));
- }
-
- } catch (error) {
- console.log(`❌ Attempt ${attempt} failed:`, error.message);
- if (attempt < maxAttempts) {
- await new Promise(resolve => setTimeout(resolve, delay));
+ const parsedData = JSON.parse(localStorageData);
+ if (parsedData.pubkey) {
+ console.log('✅ Pubkey found in localStorage:', parsedData.pubkey);
+ await restoreAuthenticationState(parsedData.pubkey);
+ return true;
}
+ } catch (parseError) {
+ console.log('Failed to parse localStorage data:', parseError.message);
}
}
- console.log('🔍 Authentication detection completed - no existing auth found after all attempts');
+ console.log(`❌ Attempt ${attempt}: No authentication found via any method`);
+
+ // Wait before next attempt (except for last attempt)
+ if (attempt < maxAttempts) {
+ await new Promise(resolve => setTimeout(resolve, delay));
+ }
+
+ } catch (error) {
+ console.log(`❌ Attempt ${attempt} failed:`, error.message);
+ if (attempt < maxAttempts) {
+ await new Promise(resolve => setTimeout(resolve, delay));
+ }
+ }
+ }
+
+ console.log('🔍 Authentication detection completed - no existing auth found after all attempts');
+ return false;
+}
+
+// Helper function to restore authentication state
+async function restoreAuthenticationState(pubkey) {
+ console.log('🔄 Restoring authentication state for pubkey:', pubkey);
+
+ userPubkey = pubkey;
+ isLoggedIn = true;
+
+ // Show main interface and profile in header
+ showProfileInHeader();
+ loadUserProfile();
+
+ // Note: Configuration fetching now requires explicit relay connection
+ // User must connect to relay manually after login
+ console.log('✅ Authentication state restored - connect to relay to fetch configuration');
+
+ console.log('✅ Authentication state restored successfully');
+}
+
+// Legacy function for backward compatibility
+async function checkExistingAuth() {
+ return await checkExistingAuthWithRetries();
+}
+
+// Initialize NOSTR_LOGIN_LITE
+async function initializeApp() {
+ try {
+ await window.NOSTR_LOGIN_LITE.init({
+ theme: 'default',
+ methods: {
+ extension: true,
+ local: true,
+ seedphrase: true,
+ readonly: true,
+ connect: true,
+ remote: true,
+ otp: false
+ },
+ floatingTab: {
+ enabled: false
+ }
+ });
+
+ nlLite = window.NOSTR_LOGIN_LITE;
+ console.log('Nostr login system initialized');
+
+ // Check for existing authentication state after initialization
+ const wasAlreadyLoggedIn = await checkExistingAuth();
+ if (wasAlreadyLoggedIn) {
+ console.log('User was already logged in, showing profile in header');
+ showProfileInHeader();
+ } else {
+ console.log('No existing authentication found, showing login modal');
+ showLoginModal();
+ }
+
+ // Listen for authentication events
+ window.addEventListener('nlMethodSelected', handleAuthEvent);
+ window.addEventListener('nlLogout', handleLogoutEvent);
+
+ } catch (error) {
+ console.log('Failed to initialize Nostr login: ' + error.message);
+ }
+}
+
+// Handle authentication events
+function handleAuthEvent(event) {
+ const { pubkey, method, error } = event.detail;
+
+ if (method && pubkey) {
+ userPubkey = pubkey;
+ isLoggedIn = true;
+ console.log(`Login successful! Method: ${method}`);
+ console.log(`Public key: ${pubkey}`);
+
+ // Hide login modal and show profile in header
+ hideLoginModal();
+ showProfileInHeader();
+ loadUserProfile();
+
+ // Note: Configuration fetching now requires explicit relay connection
+ // User must connect to relay manually after login
+ console.log('Login successful. Connect to relay to access admin functions.');
+
+ } else if (error) {
+ console.log(`Authentication error: ${error}`);
+ }
+}
+
+// Handle logout events
+function handleLogoutEvent() {
+ console.log('Logout event received');
+
+ userPubkey = null;
+ isLoggedIn = false;
+ currentConfig = null;
+
+ // Clean up relay connection
+ disconnectFromRelay();
+
+ // Reset UI - hide profile and show login modal
+ hideProfileFromHeader();
+ showLoginModal();
+
+ updateConfigStatus(false);
+ updateAdminSectionsVisibility();
+
+ console.log('Logout event handled successfully');
+}
+
+
+// Update visibility of admin sections based on login and relay connection status
+function updateAdminSectionsVisibility() {
+ const divConfig = document.getElementById('div_config');
+ const authRulesSection = document.getElementById('authRulesSection');
+ const databaseStatisticsSection = document.getElementById('databaseStatisticsSection');
+ const nip17DMSection = document.getElementById('nip17DMSection');
+ const shouldShow = isLoggedIn && isRelayConnected;
+
+ if (divConfig) divConfig.style.display = shouldShow ? 'block' : 'none';
+ if (authRulesSection) authRulesSection.style.display = shouldShow ? 'block' : 'none';
+ if (databaseStatisticsSection) databaseStatisticsSection.style.display = shouldShow ? 'block' : 'none';
+ if (nip17DMSection) nip17DMSection.style.display = shouldShow ? 'block' : 'none';
+
+ // Start/stop auto-refresh based on visibility
+ if (shouldShow && databaseStatisticsSection && databaseStatisticsSection.style.display === 'block') {
+ startStatsAutoRefresh();
+ } else {
+ stopStatsAutoRefresh();
+ }
+
+ // Update countdown display when visibility changes
+ updateCountdownDisplay();
+}
+
+// Show login modal
+function showLoginModal() {
+ if (loginModal && loginModalContainer) {
+ // Initialize the login UI in the modal
+ if (window.NOSTR_LOGIN_LITE && typeof window.NOSTR_LOGIN_LITE.embed === 'function') {
+ window.NOSTR_LOGIN_LITE.embed('#login-modal-container', {
+ seamless: true
+ });
+ }
+ loginModal.style.display = 'flex';
+ }
+}
+
+// Hide login modal
+function hideLoginModal() {
+ if (loginModal) {
+ loginModal.style.display = 'none';
+ }
+}
+
+// Show profile in header
+function showProfileInHeader() {
+ if (profileArea) {
+ profileArea.style.display = 'flex';
+ }
+}
+
+// Hide profile from header
+function hideProfileFromHeader() {
+ if (profileArea) {
+ profileArea.style.display = 'none';
+ }
+ // Also hide logout dropdown if visible
+ if (logoutDropdown) {
+ logoutDropdown.style.display = 'none';
+ }
+}
+
+// Update login/logout UI visibility (legacy function - kept for backward compatibility)
+function updateLoginLogoutUI() {
+ // This function is now handled by showProfileInHeader() and hideProfileFromHeader()
+ // Kept for backward compatibility with any existing code that might call it
+}
+
+// Show main interface after login (legacy function - kept for backward compatibility)
+function showMainInterface() {
+ // This function is now handled by showProfileInHeader() and updateAdminSectionsVisibility()
+ // Kept for backward compatibility with any existing code that might call it
+ updateAdminSectionsVisibility();
+}
+
+// Load user profile using nostr-tools pool
+async function loadUserProfile() {
+ if (!userPubkey) return;
+
+ console.log('Loading user profile...');
+
+ // Update header display (new system)
+ if (headerUserName) {
+ headerUserName.textContent = 'Loading...';
+ }
+
+ // Update legacy elements if they exist (backward compatibility)
+ if (persistentUserName) {
+ persistentUserName.textContent = 'Loading...';
+ }
+ if (persistentUserAbout) {
+ persistentUserAbout.textContent = 'Loading...';
+ }
+
+ // Convert hex pubkey to npub for initial display
+ let displayPubkey = userPubkey;
+ let npubLink = '';
+ try {
+ if (userPubkey && userPubkey.length === 64 && /^[0-9a-fA-F]+$/.test(userPubkey)) {
+ const npub = window.NostrTools.nip19.npubEncode(userPubkey);
+ displayPubkey = npub;
+ npubLink = `${npub}`;
+ }
+ } catch (error) {
+ console.log('Failed to encode user pubkey to npub:', error.message);
+ }
+
+ if (persistentUserPubkey) {
+ if (npubLink) {
+ persistentUserPubkey.innerHTML = npubLink;
+ } else {
+ persistentUserPubkey.textContent = displayPubkey;
+ }
+ }
+
+ try {
+ // Create a SimplePool instance for profile loading
+ const profilePool = new window.NostrTools.SimplePool();
+ const relays = ['wss://relay.damus.io',
+ 'wss://relay.nostr.band',
+ 'wss://nos.lol',
+ 'wss://relay.primal.net',
+ 'wss://relay.snort.social',
+ 'wss://relay.laantungir.net'];
+
+ // Get profile event (kind 0) for the user
+ const events = await profilePool.querySync(relays, {
+ kinds: [0],
+ authors: [userPubkey],
+ limit: 1
+ });
+
+ if (events.length > 0) {
+ console.log('Profile event found:', events[0]);
+ const profile = JSON.parse(events[0].content);
+ console.log('Parsed profile:', profile);
+ displayProfile(profile);
+ } else {
+ console.log('No profile events found for pubkey:', userPubkey);
+
+ // Update header display (new system)
+ if (headerUserName) {
+ headerUserName.textContent = 'Anonymous User';
+ }
+
+ // Update legacy elements if they exist (backward compatibility)
+ if (persistentUserName) {
+ persistentUserName.textContent = 'Anonymous User';
+ }
+ if (persistentUserAbout) {
+ persistentUserAbout.textContent = 'No profile found';
+ }
+ // Keep the npub display
+ }
+
+ // Close the profile pool
+ profilePool.close(relays);
+
+ } catch (error) {
+ console.log('Profile loading failed: ' + error.message);
+
+ // Update header display (new system)
+ if (headerUserName) {
+ headerUserName.textContent = 'Error loading profile';
+ }
+
+ // Update legacy elements if they exist (backward compatibility)
+ if (persistentUserName) {
+ persistentUserName.textContent = 'Error loading profile';
+ }
+ if (persistentUserAbout) {
+ persistentUserAbout.textContent = error.message;
+ }
+ // Keep the npub display
+ }
+}
+
+// Display profile data
+function displayProfile(profile) {
+ const name = profile.name || profile.display_name || profile.displayName || 'Anonymous User';
+ const about = profile.about || 'No description provided';
+ const picture = profile.picture || profile.image || null;
+
+ // Convert hex pubkey to npub for display
+ let displayPubkey = userPubkey;
+ let npubLink = '';
+ try {
+ if (userPubkey && userPubkey.length === 64 && /^[0-9a-fA-F]+$/.test(userPubkey)) {
+ const npub = window.NostrTools.nip19.npubEncode(userPubkey);
+ displayPubkey = npub;
+ npubLink = `${npub}`;
+ }
+ } catch (error) {
+ console.log('Failed to encode user pubkey to npub:', error.message);
+ }
+
+ // Update header profile display
+ if (headerUserName) {
+ headerUserName.textContent = name;
+ }
+
+ // Handle header profile picture
+ if (headerUserImage) {
+ if (picture && typeof picture === 'string' && (picture.startsWith('http') || picture.startsWith('https'))) {
+ headerUserImage.src = picture;
+ headerUserImage.style.display = 'block';
+ headerUserImage.onerror = function() {
+ // Hide image on error
+ this.style.display = 'none';
+ console.log('Profile image failed to load:', picture);
+ };
+ } else {
+ headerUserImage.style.display = 'none';
+ }
+ }
+
+ // Update legacy persistent user details (kept for backward compatibility)
+ if (persistentUserName) persistentUserName.textContent = name;
+ if (persistentUserPubkey && npubLink) {
+ persistentUserPubkey.innerHTML = npubLink;
+ } else if (persistentUserPubkey) {
+ persistentUserPubkey.textContent = displayPubkey;
+ }
+ if (persistentUserAbout) persistentUserAbout.textContent = about;
+
+ // Handle legacy profile picture
+ const userImageContainer = document.getElementById('persistent-user-image');
+ if (userImageContainer) {
+ if (picture && typeof picture === 'string' && picture.startsWith('http')) {
+ // Create or update image element
+ let img = userImageContainer.querySelector('img');
+ if (!img) {
+ img = document.createElement('img');
+ img.className = 'user-profile-image';
+ img.alt = `${name}'s profile picture`;
+ img.onerror = function() {
+ // Hide image on error
+ this.style.display = 'none';
+ };
+ userImageContainer.appendChild(img);
+ }
+ img.src = picture;
+ img.style.display = 'block';
+ } else {
+ // Hide image if no valid picture
+ const img = userImageContainer.querySelector('img');
+ if (img) {
+ img.style.display = 'none';
+ }
+ }
+ }
+
+ console.log(`Profile loaded for: ${name} with pubkey: ${userPubkey}`);
+}
+
+// Logout function
+async function logout() {
+ log('Logging out...', 'INFO');
+ try {
+ // Stop auto-refresh before disconnecting
+ stopStatsAutoRefresh();
+
+ // Clean up relay connection
+ disconnectFromRelay();
+
+ // Clean up configuration pool
+ if (relayPool) {
+ log('Closing configuration pool...', 'INFO');
+ const url = relayConnectionUrl.value.trim();
+ if (url) {
+ relayPool.close([url]);
+ }
+ relayPool = null;
+ subscriptionId = null;
+ }
+
+ await nlLite.logout();
+
+ userPubkey = null;
+ isLoggedIn = false;
+ currentConfig = null;
+
+ // Reset UI - hide profile and show login modal
+ hideProfileFromHeader();
+ // showLoginModal() removed - handled by handleLogoutEvent()
+
+ updateConfigStatus(false);
+ updateAdminSectionsVisibility();
+
+ log('Logged out successfully', 'INFO');
+
+ } catch (error) {
+ log('Logout failed: ' + error.message, 'ERROR');
+ }
+}
+
+function updateConfigStatus(loaded) {
+ if (loaded) {
+ configDisplay.classList.remove('hidden');
+ } else {
+ configDisplay.classList.add('hidden');
+ }
+}
+
+
+
+// Generate random subscription ID (avoiding colons which are rejected by relay)
+function generateSubId() {
+ // Use only alphanumeric characters, underscores, and hyphens
+ const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-';
+ let result = '';
+ for (let i = 0; i < 12; i++) {
+ result += chars.charAt(Math.floor(Math.random() * chars.length));
+ }
+ return result;
+}
+
+// Configuration subscription using nostr-tools SimplePool
+async function subscribeToConfiguration() {
+ try {
+ console.log('=== STARTING SIMPLEPOOL CONFIGURATION SUBSCRIPTION ===');
+
+ if (!isLoggedIn) {
+ console.log('WARNING: Not logged in, but proceeding with subscription test');
+ }
+
+ const url = relayConnectionUrl.value.trim();
+ if (!url) {
+ console.error('Please enter a relay URL');
return false;
}
- // Helper function to restore authentication state
- async function restoreAuthenticationState(pubkey) {
- console.log('🔄 Restoring authentication state for pubkey:', pubkey);
+ console.log(`Connecting to relay via SimplePool: ${url}`);
- userPubkey = pubkey;
- isLoggedIn = true;
-
- // Show main interface
- showMainInterface();
- loadUserProfile();
- updateLoginLogoutButton();
-
- // Note: Configuration fetching now requires explicit relay connection
- // User must connect to relay manually after login
- console.log('✅ Authentication state restored - connect to relay to fetch configuration');
-
- console.log('✅ Authentication state restored successfully');
+ // Clean up existing pool
+ if (relayPool) {
+ console.log('Closing existing pool connection');
+ relayPool.close([url]);
+ relayPool = null;
+ subscriptionId = null;
}
- // Legacy function for backward compatibility
- async function checkExistingAuth() {
- return await checkExistingAuthWithRetries();
- }
+ // Create new SimplePool instance
+ relayPool = new window.NostrTools.SimplePool();
+ subscriptionId = generateSubId();
- // Initialize NOSTR_LOGIN_LITE
- async function initializeApp() {
- try {
- await window.NOSTR_LOGIN_LITE.init({
- theme: 'default',
- methods: {
- extension: true,
- local: true,
- seedphrase: true,
- readonly: true,
- connect: true,
- remote: true,
- otp: false
- },
- floatingTab: {
- enabled: false,
- // hPosition: 1, // 0.0-1.0 or '95%' from left
- // vPosition: 0, // 0.0-1.0 or '50%' from top
- // appearance: {
- // style: 'square', // 'pill', 'square', 'circle', 'minimal'
- // // icon: '[LOGIN]', // Now uses text-based icons like [LOGIN], [KEY], [NET]
- // text: 'Login'
- // },
- // behavior: {
- // hideWhenAuthenticated: false,
- // showUserInfo: true,
- // autoSlide: true
- // },
- // animation: {
- // slideDirection: 'auto' // 'auto', 'left', 'right', 'up', 'down'
- // }
+ console.log(`Generated subscription ID: ${subscriptionId}`);
+ console.log(`User pubkey ${userPubkey}`)
+ // Subscribe to kind 23457 events (admin response events), kind 4 (NIP-04 DMs), and kind 1059 (NIP-17 GiftWrap)
+ const subscription = relayPool.subscribeMany([url], [{
+ since: Math.floor(Date.now() / 1000) - 5, // Look back 5 seconds to avoid race condition
+ kinds: [23457],
+ authors: [getRelayPubkey()], // Only listen to responses from the relay
+ "#p": [userPubkey], // Only responses directed to this user
+ limit: 50
+ }, {
+ since: Math.floor(Date.now() / 1000),
+ kinds: [4], // NIP-04 Direct Messages
+ authors: [getRelayPubkey()], // Only listen to DMs from the relay
+ "#p": [userPubkey], // Only DMs directed to this user
+ limit: 50
+ }, {
+ kinds: [1059], // NIP-17 GiftWrap events
+ "#p": [userPubkey], // Only GiftWrap events addressed to this user
+ limit: 50
+ }], {
+ async onevent(event) {
+ console.log('=== EVENT RECEIVED VIA SIMPLEPOOL ===');
+ console.log('Event data:', event);
+ console.log('Event kind:', event.kind);
+ console.log('Event tags:', event.tags);
+ console.log('Event pubkey:', event.pubkey);
+ console.log('=== END EVENT ===');
+ // Handle NIP-04 DMs
+ if (event.kind === 4) {
+ console.log('=== NIP-04 DM RECEIVED ===');
+ try {
+ // Decrypt the DM content
+ const decryptedContent = await window.nostr.nip04.decrypt(event.pubkey, event.content);
+ log(`Received NIP-04 DM from relay: ${decryptedContent.substring(0, 50)}...`, 'INFO');
+
+ // Add to inbox
+ const timestamp = new Date(event.created_at * 1000).toLocaleString();
+ addMessageToInbox('received', decryptedContent, timestamp, event.pubkey);
+
+ // Log for testing
+ if (typeof logTestEvent === 'function') {
+ logTestEvent('RECV', `NIP-04 DM: ${decryptedContent}`, 'DM');
+ }
+ } catch (decryptError) {
+ log(`Failed to decrypt NIP-04 DM: ${decryptError.message}`, 'ERROR');
+ if (typeof logTestEvent === 'function') {
+ logTestEvent('ERROR', `Failed to decrypt DM: ${decryptError.message}`, 'DM');
+ }
}
- });
-
- nlLite = window.NOSTR_LOGIN_LITE;
- console.log('Nostr login system initialized');
-
- // Check for existing authentication state after initialization
- const wasAlreadyLoggedIn = await checkExistingAuth();
- if (wasAlreadyLoggedIn) {
- console.log('User was already logged in, main interface restored');
- } else {
- console.log('No existing authentication found, showing login interface');
+ return;
}
- // Listen for authentication events
- window.addEventListener('nlMethodSelected', handleAuthEvent);
- window.addEventListener('nlLogout', handleLogoutEvent);
-
- } catch (error) {
- console.log('Failed to initialize Nostr login: ' + error.message);
- }
- }
-
- // Handle authentication events
- function handleAuthEvent(event) {
- const { pubkey, method, error } = event.detail;
-
- if (method && pubkey) {
- userPubkey = pubkey;
- isLoggedIn = true;
- console.log(`Login successful! Method: ${method}`);
- console.log(`Public key: ${pubkey}`);
-
- showMainInterface();
- loadUserProfile();
- updateLoginLogoutButton();
-
- // Note: Configuration fetching now requires explicit relay connection
- // User must connect to relay manually after login
- console.log('Login successful. Connect to relay to access admin functions.');
-
- } else if (error) {
- console.log(`Authentication error: ${error}`);
- }
- }
-
- // Handle logout events
- function handleLogoutEvent() {
- console.log('Logout event received');
-
- userPubkey = null;
- isLoggedIn = false;
- currentConfig = null;
-
- // Clean up relay connection
- disconnectFromRelay();
-
- // Reset UI
- // mainInterface.classList.add('hidden');
- loginSection.classList.remove('hidden');
- updateConfigStatus(false);
- updateLoginLogoutButton();
- updateAdminSectionsVisibility();
-
- console.log('Logout event handled successfully');
- }
-
-
- // Update visibility of admin sections based on login and relay connection status
- function updateAdminSectionsVisibility() {
- const divConfig = document.getElementById('div_config');
- const authRulesSection = document.getElementById('authRulesSection');
- const databaseStatisticsSection = document.getElementById('databaseStatisticsSection');
- const nip17DMSection = document.getElementById('nip17DMSection');
- const shouldShow = isLoggedIn && isRelayConnected;
-
- if (divConfig) divConfig.style.display = shouldShow ? 'block' : 'none';
- if (authRulesSection) authRulesSection.style.display = shouldShow ? 'block' : 'none';
- if (databaseStatisticsSection) databaseStatisticsSection.style.display = shouldShow ? 'block' : 'none';
- if (nip17DMSection) nip17DMSection.style.display = shouldShow ? 'block' : 'none';
- }
-
- // Show main interface after login
- function showMainInterface() {
- loginSection.classList.add('hidden');
- // mainInterface.classList.remove('hidden');
- updateLoginLogoutButton();
- updateAdminSectionsVisibility();
- }
-
- // Load user profile using nostr-tools pool
- async function loadUserProfile() {
- if (!userPubkey) return;
-
- console.log('Loading user profile...');
- persistentUserName.textContent = 'Loading...';
- persistentUserAbout.textContent = 'Loading...';
-
- try {
- // Create a SimplePool instance for profile loading
- const profilePool = new window.NostrTools.SimplePool();
- const relays = ['wss://relay.laantungir.net'];
-
- // Get profile event (kind 0) for the user
- const events = await profilePool.querySync(relays, {
- kinds: [0],
- authors: [userPubkey],
- limit: 1
- });
-
- if (events.length > 0) {
- console.log('Profile event found:', events[0]);
- const profile = JSON.parse(events[0].content);
- console.log('Parsed profile:', profile);
- displayProfile(profile);
- } else {
- console.log('No profile events found for pubkey:', userPubkey);
- persistentUserName.textContent = 'Anonymous User';
- persistentUserAbout.textContent = 'No profile found';
- // Still show the pubkey since we have it
- persistentUserPubkey.textContent = userPubkey;
- }
-
- // Close the profile pool
- profilePool.close(relays);
-
- } catch (error) {
- console.log('Profile loading failed: ' + error.message);
- persistentUserName.textContent = 'Error loading profile';
- persistentUserAbout.textContent = error.message;
- // Still show the pubkey since we have it
- persistentUserPubkey.textContent = userPubkey;
- }
- }
-
- // Display profile data
- function displayProfile(profile) {
- const name = profile.name || profile.display_name || profile.displayName || 'Anonymous User';
- const about = profile.about || 'No description provided';
-
- // Update persistent user details
- persistentUserName.textContent = name;
- persistentUserPubkey.textContent = userPubkey;
- persistentUserAbout.textContent = about;
-
- console.log(`Profile loaded for: ${name} with pubkey: ${userPubkey}`);
- }
-
- // Logout function
- async function logout() {
- console.log('Logging out...');
- try {
- // Clean up relay connection
- disconnectFromRelay();
-
- // Clean up configuration pool
- if (relayPool) {
- console.log('Closing configuration pool...');
- const url = relayConnectionUrl.value.trim();
- if (url) {
- relayPool.close([url]);
- }
- relayPool = null;
- subscriptionId = null;
- }
-
- await nlLite.logout();
-
- userPubkey = null;
- isLoggedIn = false;
- currentConfig = null;
-
- // Reset UI - keep persistent auth container visible
- // mainInterface.classList.add('hidden');
- loginSection.classList.remove('hidden');
- updateConfigStatus(false);
- updateLoginLogoutButton();
-
- console.log('Logged out successfully');
-
- } catch (error) {
- console.log('Logout failed: ' + error.message);
- }
- }
-
- function updateConfigStatus(loaded) {
- if (loaded) {
- configDisplay.classList.remove('hidden');
- } else {
- configDisplay.classList.add('hidden');
- }
- }
-
-
-
- // Generate random subscription ID (avoiding colons which are rejected by relay)
- function generateSubId() {
- // Use only alphanumeric characters, underscores, and hyphens
- const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-';
- let result = '';
- for (let i = 0; i < 12; i++) {
- result += chars.charAt(Math.floor(Math.random() * chars.length));
- }
- return result;
- }
-
- // Configuration subscription using nostr-tools SimplePool
- async function subscribeToConfiguration() {
- try {
- console.log('=== STARTING SIMPLEPOOL CONFIGURATION SUBSCRIPTION ===');
-
- if (!isLoggedIn) {
- console.log('WARNING: Not logged in, but proceeding with subscription test');
- }
-
- const url = relayConnectionUrl.value.trim();
- if (!url) {
- console.error('Please enter a relay URL');
- return false;
- }
-
- console.log(`Connecting to relay via SimplePool: ${url}`);
-
- // Clean up existing pool
- if (relayPool) {
- console.log('Closing existing pool connection');
- relayPool.close([url]);
- relayPool = null;
- subscriptionId = null;
- }
-
- // Create new SimplePool instance
- relayPool = new window.NostrTools.SimplePool();
- subscriptionId = generateSubId();
-
- console.log(`Generated subscription ID: ${subscriptionId}`);
- console.log(`User pubkey ${userPubkey}`)
- // Subscribe to kind 23457 events (admin response events), kind 4 (NIP-04 DMs), and kind 1059 (NIP-17 GiftWrap)
- const subscription = relayPool.subscribeMany([url], [{
- since: Math.floor(Date.now() / 1000) - 5, // Look back 5 seconds to avoid race condition
- kinds: [23457],
- authors: [getRelayPubkey()], // Only listen to responses from the relay
- "#p": [userPubkey], // Only responses directed to this user
- limit: 50
- }, {
- since: Math.floor(Date.now() / 1000),
- kinds: [4], // NIP-04 Direct Messages
- authors: [getRelayPubkey()], // Only listen to DMs from the relay
- "#p": [userPubkey], // Only DMs directed to this user
- limit: 50
- }, {
- kinds: [1059], // NIP-17 GiftWrap events
- "#p": [userPubkey], // Only GiftWrap events addressed to this user
- limit: 50
- }], {
- async onevent(event) {
- console.log('=== EVENT RECEIVED VIA SIMPLEPOOL ===');
- console.log('Event data:', event);
- console.log('Event kind:', event.kind);
- console.log('Event tags:', event.tags);
- console.log('Event pubkey:', event.pubkey);
- console.log('=== END EVENT ===');
-
- // Handle NIP-04 DMs
- if (event.kind === 4) {
- console.log('=== NIP-04 DM RECEIVED ===');
- try {
- // Decrypt the DM content
- const decryptedContent = await window.nostr.nip04.decrypt(event.pubkey, event.content);
- log(`Received NIP-04 DM from relay: ${decryptedContent.substring(0, 50)}...`, 'INFO');
-
- // Add to inbox
- const timestamp = new Date(event.created_at * 1000).toLocaleString();
- addMessageToInbox('received', decryptedContent, timestamp, event.pubkey);
-
- // Log for testing
- if (typeof logTestEvent === 'function') {
- logTestEvent('RECV', `NIP-04 DM: ${decryptedContent}`, 'DM');
- }
- } catch (decryptError) {
- log(`Failed to decrypt NIP-04 DM: ${decryptError.message}`, 'ERROR');
- if (typeof logTestEvent === 'function') {
- logTestEvent('ERROR', `Failed to decrypt DM: ${decryptError.message}`, 'DM');
- }
- }
- return;
+ // Handle NIP-17 GiftWrap DMs
+ if (event.kind === 1059) {
+ console.log('=== NIP-17 GIFTWRAP RECEIVED ===');
+ try {
+ // Step 1: Unwrap gift wrap to get seal
+ const sealJson = await window.nostr.nip44.decrypt(event.pubkey, event.content);
+ const seal = safeJsonParse(sealJson);
+ if (!seal || seal.kind !== 13) {
+ throw new Error('Unwrapped content is not a valid seal (kind 13)');
}
- // Handle NIP-17 GiftWrap DMs
- if (event.kind === 1059) {
- console.log('=== NIP-17 GIFTWRAP RECEIVED ===');
- try {
- // Step 1: Unwrap gift wrap to get seal
- const sealJson = await window.nostr.nip44.decrypt(event.pubkey, event.content);
- const seal = safeJsonParse(sealJson);
- if (!seal || seal.kind !== 13) {
- throw new Error('Unwrapped content is not a valid seal (kind 13)');
- }
-
- // Step 2: Unseal to get rumor
- const rumorJson = await window.nostr.nip44.decrypt(seal.pubkey, seal.content);
- const rumor = safeJsonParse(rumorJson);
- if (!rumor || rumor.kind !== 14) {
- throw new Error('Unsealed content is not a valid rumor (kind 14)');
- }
-
- log(`Received NIP-17 DM from relay: ${rumor.content.substring(0, 50)}...`, 'INFO');
-
- // Add to inbox
- const timestamp = new Date(event.created_at * 1000).toLocaleString();
- addMessageToInbox('received', rumor.content, timestamp, rumor.pubkey);
-
- // Log for testing
- if (typeof logTestEvent === 'function') {
- logTestEvent('RECV', `NIP-17 DM: ${rumor.content}`, 'DM');
- }
- } catch (unwrapError) {
- log(`Failed to unwrap NIP-17 DM: ${unwrapError.message}`, 'ERROR');
- if (typeof logTestEvent === 'function') {
- logTestEvent('ERROR', `Failed to unwrap DM: ${unwrapError.message}`, 'DM');
- }
- }
- return;
+ // Step 2: Unseal to get rumor
+ const rumorJson = await window.nostr.nip44.decrypt(seal.pubkey, seal.content);
+ const rumor = safeJsonParse(rumorJson);
+ if (!rumor || rumor.kind !== 14) {
+ throw new Error('Unsealed content is not a valid rumor (kind 14)');
}
- // Handle admin response events (kind 23457)
- if (event.kind === 23457) {
- // Log all received messages for testing
- if (typeof logTestEvent === 'function') {
- logTestEvent('RECV', `Admin response event: ${JSON.stringify(event)}`, 'EVENT');
- }
+ log(`Received NIP-17 DM from relay: ${rumor.content.substring(0, 50)}...`, 'INFO');
- // Process admin response event
- processAdminResponse(event);
- }
- },
- oneose() {
- console.log('EOSE received - End of stored events');
- console.log('Current config after EOSE:', currentConfig);
+ // Add to inbox
+ const timestamp = new Date(event.created_at * 1000).toLocaleString();
+ addMessageToInbox('received', rumor.content, timestamp, rumor.pubkey);
- if (!currentConfig) {
- console.log('No configuration events were received');
+ // Log for testing
+ if (typeof logTestEvent === 'function') {
+ logTestEvent('RECV', `NIP-17 DM: ${rumor.content}`, 'DM');
+ }
+ } catch (unwrapError) {
+ log(`Failed to unwrap NIP-17 DM: ${unwrapError.message}`, 'ERROR');
+ if (typeof logTestEvent === 'function') {
+ logTestEvent('ERROR', `Failed to unwrap DM: ${unwrapError.message}`, 'DM');
}
- },
- onclose(reason) {
- console.log('Subscription closed:', reason);
- updateConfigStatus(false);
}
- });
-
- // Store subscription for cleanup
- relayPool.currentSubscription = subscription;
-
- console.log('SimplePool subscription established');
- return true;
-
- } catch (error) {
- console.error('Configuration subscription failed:', error.message);
- console.error('Configuration subscription failed:', error);
- console.error('Error stack:', error.stack);
- return false;
- }
- }
-
- // Process admin response events (kind 23457)
- async function processAdminResponse(event) {
- try {
- console.log('=== PROCESSING ADMIN RESPONSE ===');
- console.log('Response event:', event);
-
- // Verify this is a kind 23457 admin response event
- if (event.kind !== 23457) {
- console.log('Ignoring non-admin response event, kind:', event.kind);
return;
}
- // Verify the event is from the relay
- const expectedRelayPubkey = getRelayPubkey();
- if (event.pubkey !== expectedRelayPubkey) {
- console.log('Ignoring response from unknown pubkey:', event.pubkey);
- return;
- }
-
- // Decrypt the NIP-44 encrypted content
- const decryptedContent = await decryptFromRelay(event.content);
- if (!decryptedContent) {
- throw new Error('Failed to decrypt admin response content');
- }
-
- console.log('Decrypted admin response:', decryptedContent);
-
- // Parse the decrypted JSON response
- const responseData = JSON.parse(decryptedContent);
- console.log('Parsed response data:', responseData);
-
- // Log the response for testing
- if (typeof logTestEvent === 'function') {
- logTestEvent('RECV', `Decrypted response: ${JSON.stringify(responseData)}`, 'RESPONSE');
- }
-
- // Handle different types of admin responses
- handleAdminResponseData(responseData);
-
- } catch (error) {
- console.error('Error processing admin response:', error);
- if (typeof logTestEvent === 'function') {
- logTestEvent('ERROR', `Failed to process admin response: ${error.message}`, 'ERROR');
- }
- }
- }
-
- // Handle different types of admin response data
- function handleAdminResponseData(responseData) {
- try {
- console.log('=== HANDLING ADMIN RESPONSE DATA ===');
- console.log('Response data:', responseData);
- console.log('Response query_type:', responseData.query_type);
-
- // Handle auth query responses - updated to match backend response types
- if (responseData.query_type &&
- (responseData.query_type.includes('auth_rules') ||
- responseData.query_type.includes('auth'))) {
- console.log('Routing to auth query handler');
- handleAuthQueryResponse(responseData);
- return;
- }
-
- // Handle config update responses specifically
- if (responseData.query_type === 'config_update') {
- console.log('Routing to config update handler');
- handleConfigUpdateResponse(responseData);
- return;
- }
-
- // Handle config query responses - updated to match backend response types
- if (responseData.query_type &&
- (responseData.query_type.includes('config') ||
- responseData.query_type.startsWith('config_'))) {
- console.log('Routing to config query handler');
- handleConfigQueryResponse(responseData);
- return;
- }
-
- // Handle system command responses
- if (responseData.command) {
- console.log('Routing to system command handler');
- handleSystemCommandResponse(responseData);
- return;
- }
-
- // Handle auth rule modification responses
- if (responseData.operation || responseData.rules_processed !== undefined) {
- console.log('Routing to auth rule modification handler');
- handleAuthRuleResponse(responseData);
- return;
- }
-
- // Handle stats query responses
- if (responseData.query_type === 'stats_query') {
- console.log('Routing to stats query handler');
- handleStatsQueryResponse(responseData);
- return;
- }
-
- // Generic response handling
- console.log('Using generic response handler');
- if (typeof logTestEvent === 'function') {
- logTestEvent('RECV', `Generic admin response: ${JSON.stringify(responseData)}`, 'RESPONSE');
- }
-
- } catch (error) {
- console.error('Error handling admin response data:', error);
- if (typeof logTestEvent === 'function') {
- logTestEvent('ERROR', `Failed to handle response data: ${error.message}`, 'ERROR');
- }
- }
- }
-
- // Handle config query responses
- function handleConfigQueryResponse(responseData) {
- console.log('=== CONFIG QUERY RESPONSE ===');
- console.log('Query type:', responseData.query_type);
- console.log('Total results:', responseData.total_results);
- console.log('Data:', responseData.data);
-
- // Convert the config response data to the format expected by displayConfiguration
- if (responseData.data && responseData.data.length > 0) {
- console.log('Converting config response to display format...');
-
- // Create a synthetic event structure for displayConfiguration
- const syntheticEvent = {
- id: 'config_response_' + Date.now(),
- pubkey: getRelayPubkey(),
- created_at: Math.floor(Date.now() / 1000),
- kind: 'config_response',
- content: 'Configuration from admin API',
- tags: []
- };
-
- // Convert config data to tags format
- responseData.data.forEach(config => {
- const key = config.key || config.config_key;
- const value = config.value || config.config_value;
- if (key && value !== undefined) {
- syntheticEvent.tags.push([key, value]);
+ // Handle admin response events (kind 23457)
+ if (event.kind === 23457) {
+ // Log all received messages for testing
+ if (typeof logTestEvent === 'function') {
+ logTestEvent('RECV', `Admin response event: ${JSON.stringify(event)}`, 'EVENT');
}
- });
- console.log('Synthetic event created:', syntheticEvent);
- console.log('Calling displayConfiguration with synthetic event...');
+ // Process admin response event
+ processAdminResponse(event);
+ }
+ },
+ oneose() {
+ console.log('EOSE received - End of stored events');
+ console.log('Current config after EOSE:', currentConfig);
- // Display the configuration using the original display function
- displayConfiguration(syntheticEvent);
-
- log(`Configuration loaded: ${responseData.total_results} parameters`, 'INFO');
- } else {
- console.log('No configuration data received');
+ if (!currentConfig) {
+ console.log('No configuration events were received');
+ }
+ },
+ onclose(reason) {
+ console.log('Subscription closed:', reason);
updateConfigStatus(false);
}
+ });
- // Also log to test interface for debugging
- if (typeof logTestEvent === 'function') {
- logTestEvent('RECV', `Config query response: ${responseData.query_type}, ${responseData.total_results} results`, 'CONFIG_QUERY');
+ // Store subscription for cleanup
+ relayPool.currentSubscription = subscription;
- if (responseData.data && responseData.data.length > 0) {
- logTestEvent('RECV', '=== CONFIGURATION VALUES ===', 'CONFIG');
- responseData.data.forEach((config, index) => {
- const key = config.key || config.config_key || `config_${index}`;
- const value = config.value || config.config_value || 'undefined';
- const category = config.category || 'general';
- const dataType = config.data_type || 'string';
+ console.log('SimplePool subscription established');
+ return true;
- logTestEvent('RECV', `${key}: ${value} (${dataType}, ${category})`, 'CONFIG');
- });
- logTestEvent('RECV', '=== END CONFIGURATION VALUES ===', 'CONFIG');
- } else {
- logTestEvent('RECV', 'No configuration values found', 'CONFIG_QUERY');
- }
- }
+ } catch (error) {
+ console.error('Configuration subscription failed:', error.message);
+ console.error('Configuration subscription failed:', error);
+ console.error('Error stack:', error.stack);
+ return false;
+ }
+}
+
+// Process admin response events (kind 23457)
+async function processAdminResponse(event) {
+ try {
+ console.log('=== PROCESSING ADMIN RESPONSE ===');
+ console.log('Response event:', event);
+
+ // Verify this is a kind 23457 admin response event
+ if (event.kind !== 23457) {
+ console.log('Ignoring non-admin response event, kind:', event.kind);
+ return;
}
- // Handle config update responses
- function handleConfigUpdateResponse(responseData) {
- console.log('=== CONFIG UPDATE RESPONSE ===');
- console.log('Query type:', responseData.query_type);
- console.log('Status:', responseData.status);
- console.log('Data:', responseData.data);
-
- if (responseData.status === 'success') {
- const updatesApplied = responseData.updates_applied || 0;
- log(`Configuration updated successfully: ${updatesApplied} parameters changed`, 'INFO');
-
- // Show success message with details
- if (responseData.data && Array.isArray(responseData.data)) {
- responseData.data.forEach((config, index) => {
- if (config.status === 'success') {
- log(`✓ ${config.key}: ${config.value} (${config.data_type})`, 'INFO');
- } else {
- log(`✗ ${config.key}: ${config.error || 'Failed to update'}`, 'ERROR');
- }
- });
- }
-
- // Configuration updated successfully - user can manually refresh using Fetch Config button
- log('Configuration updated successfully. Click "Fetch Config" to refresh the display.', 'INFO');
-
- } else {
- const errorMessage = responseData.message || responseData.error || 'Unknown error';
- log(`Configuration update failed: ${errorMessage}`, 'ERROR');
-
- // Show detailed error information if available
- if (responseData.data && Array.isArray(responseData.data)) {
- responseData.data.forEach((config, index) => {
- if (config.status === 'error') {
- log(`✗ ${config.key}: ${config.error || 'Failed to update'}`, 'ERROR');
- }
- });
- }
- }
-
- // Log to test interface for debugging
- if (typeof logTestEvent === 'function') {
- logTestEvent('RECV', `Config update response: ${responseData.status}`, 'CONFIG_UPDATE');
-
- if (responseData.data && responseData.data.length > 0) {
- responseData.data.forEach((config, index) => {
- const status = config.status === 'success' ? '✓' : '✗';
- const message = config.status === 'success' ?
- `${config.key} = ${config.value}` :
- `${config.key}: ${config.error || 'Failed'}`;
- logTestEvent('RECV', `${status} ${message}`, 'CONFIG_UPDATE');
- });
- } else {
- logTestEvent('RECV', 'No configuration update details received', 'CONFIG_UPDATE');
- }
- }
+ // Verify the event is from the relay
+ const expectedRelayPubkey = getRelayPubkey();
+ if (event.pubkey !== expectedRelayPubkey) {
+ console.log('Ignoring response from unknown pubkey:', event.pubkey);
+ return;
}
- // Handle auth query responses
- function handleAuthQueryResponse(responseData) {
- console.log('=== AUTH QUERY RESPONSE ===');
- console.log('Query type:', responseData.query_type);
- console.log('Total results:', responseData.total_results);
- console.log('Data:', responseData.data);
+ // Decrypt the NIP-44 encrypted content
+ const decryptedContent = await decryptFromRelay(event.content);
+ if (!decryptedContent) {
+ throw new Error('Failed to decrypt admin response content');
+ }
- // Update the current auth rules with the response data
- if (responseData.data && Array.isArray(responseData.data)) {
- currentAuthRules = responseData.data;
- console.log('Updated currentAuthRules with', currentAuthRules.length, 'rules');
+ console.log('Decrypted admin response:', decryptedContent);
- // Always show the auth rules table when we receive data (no VIEW RULES button anymore)
- console.log('Auto-showing auth rules table since we received data...');
- showAuthRulesTable();
+ // Parse the decrypted JSON response
+ const responseData = JSON.parse(decryptedContent);
+ console.log('Parsed response data:', responseData);
- updateAuthRulesStatus('loaded');
- log(`Loaded ${responseData.total_results} auth rules from relay`, 'INFO');
- } else {
- currentAuthRules = [];
- console.log('No auth rules data received, cleared currentAuthRules');
+ // Log the response for testing
+ if (typeof logTestEvent === 'function') {
+ logTestEvent('RECV', `Decrypted response: ${JSON.stringify(responseData)}`, 'RESPONSE');
+ }
- // Show empty table (no VIEW RULES button anymore)
- console.log('Auto-showing auth rules table with empty data...');
- showAuthRulesTable();
+ // Handle different types of admin responses
+ handleAdminResponseData(responseData);
- updateAuthRulesStatus('loaded');
- log('No auth rules found on relay', 'INFO');
- }
+ } catch (error) {
+ console.error('Error processing admin response:', error);
+ if (typeof logTestEvent === 'function') {
+ logTestEvent('ERROR', `Failed to process admin response: ${error.message}`, 'ERROR');
+ }
+ }
+}
- if (typeof logTestEvent === 'function') {
- logTestEvent('RECV', `Auth query response: ${responseData.query_type}, ${responseData.total_results} results`, 'AUTH_QUERY');
+// Handle different types of admin response data
+function handleAdminResponseData(responseData) {
+ try {
+ console.log('=== HANDLING ADMIN RESPONSE DATA ===');
+ console.log('Response data:', responseData);
+ console.log('Response query_type:', responseData.query_type);
- if (responseData.data && responseData.data.length > 0) {
- responseData.data.forEach((rule, index) => {
- logTestEvent('RECV', `Rule ${index + 1}: ${rule.rule_type} - ${rule.pattern_value || rule.rule_target}`, 'AUTH_RULE');
- });
- } else {
- logTestEvent('RECV', 'No auth rules found', 'AUTH_QUERY');
- }
- }
+ // Handle auth query responses - updated to match backend response types
+ if (responseData.query_type &&
+ (responseData.query_type.includes('auth_rules') ||
+ responseData.query_type.includes('auth'))) {
+ console.log('Routing to auth query handler');
+ handleAuthQueryResponse(responseData);
+ return;
+ }
+
+ // Handle config update responses specifically
+ if (responseData.query_type === 'config_update') {
+ console.log('Routing to config update handler');
+ handleConfigUpdateResponse(responseData);
+ return;
+ }
+
+ // Handle config query responses - updated to match backend response types
+ if (responseData.query_type &&
+ (responseData.query_type.includes('config') ||
+ responseData.query_type.startsWith('config_'))) {
+ console.log('Routing to config query handler');
+ handleConfigQueryResponse(responseData);
+ return;
}
// Handle system command responses
- function handleSystemCommandResponse(responseData) {
- console.log('=== SYSTEM COMMAND RESPONSE ===');
- console.log('Command:', responseData.command);
- console.log('Status:', responseData.status);
-
- // Handle delete auth rule responses
- if (responseData.command === 'delete_auth_rule') {
- if (responseData.status === 'success') {
- log('Auth rule deleted successfully', 'INFO');
- // Refresh the auth rules display
- loadAuthRules();
- } else {
- log(`Failed to delete auth rule: ${responseData.message || 'Unknown error'}`, 'ERROR');
- }
- }
-
- // Handle clear all auth rules responses
- if (responseData.command === 'clear_all_auth_rules') {
- if (responseData.status === 'success') {
- const rulesCleared = responseData.rules_cleared || 0;
- log(`Successfully cleared ${rulesCleared} auth rules`, 'INFO');
- // Clear local auth rules and refresh display
- currentAuthRules = [];
- displayAuthRules(currentAuthRules);
- } else {
- log(`Failed to clear auth rules: ${responseData.message || 'Unknown error'}`, 'ERROR');
- }
- }
-
- if (typeof logTestEvent === 'function') {
- logTestEvent('RECV', `System command response: ${responseData.command} - ${responseData.status}`, 'SYSTEM_CMD');
- }
+ if (responseData.command) {
+ console.log('Routing to system command handler');
+ handleSystemCommandResponse(responseData);
+ return;
}
// Handle auth rule modification responses
- function handleAuthRuleResponse(responseData) {
- console.log('=== AUTH RULE MODIFICATION RESPONSE ===');
- console.log('Operation:', responseData.operation);
- console.log('Status:', responseData.status);
-
- // Handle auth rule addition/modification responses
- if (responseData.status === 'success') {
- const rulesProcessed = responseData.rules_processed || 0;
- log(`Successfully processed ${rulesProcessed} auth rule modifications`, 'INFO');
-
- // Refresh the auth rules display to show the new rules
- if (authRulesTableContainer && authRulesTableContainer.style.display !== 'none') {
- loadAuthRules();
- }
- } else {
- log(`Failed to process auth rule modifications: ${responseData.message || 'Unknown error'}`, 'ERROR');
- }
-
- if (typeof logTestEvent === 'function') {
- logTestEvent('RECV', `Auth rule response: ${responseData.operation} - ${responseData.status}`, 'AUTH_RULE');
-
- if (responseData.processed_rules) {
- responseData.processed_rules.forEach((rule, index) => {
- logTestEvent('RECV', `Processed rule ${index + 1}: ${rule.rule_type} - ${rule.pattern_value || rule.rule_target}`, 'AUTH_RULE');
- });
- }
- }
+ if (responseData.operation || responseData.rules_processed !== undefined) {
+ console.log('Routing to auth rule modification handler');
+ handleAuthRuleResponse(responseData);
+ return;
}
- // Helper function to decrypt content from relay using NIP-44
- async function decryptFromRelay(encryptedContent) {
- try {
- console.log('Decrypting content from relay...');
-
- // Get the relay public key for decryption
- const relayPubkey = getRelayPubkey();
-
- // Use NIP-07 extension's NIP-44 decrypt method
- if (!window.nostr || !window.nostr.nip44) {
- throw new Error('NIP-44 decryption not available via NIP-07 extension');
- }
-
- const decryptedContent = await window.nostr.nip44.decrypt(relayPubkey, encryptedContent);
-
- if (!decryptedContent) {
- throw new Error('NIP-44 decryption returned empty result');
- }
-
- console.log('Successfully decrypted content from relay');
- return decryptedContent;
-
- } catch (error) {
- console.error('NIP-44 decryption failed:', error);
- throw error;
- }
+ // Handle stats query responses
+ if (responseData.query_type === 'stats_query') {
+ console.log('Routing to stats query handler');
+ handleStatsQueryResponse(responseData);
+ return;
}
- // Fetch configuration using admin API
- async function fetchConfiguration() {
- try {
- console.log('=== FETCHING CONFIGURATION VIA ADMIN API ===');
+ // Generic response handling
+ console.log('Using generic response handler');
+ if (typeof logTestEvent === 'function') {
+ logTestEvent('RECV', `Generic admin response: ${JSON.stringify(responseData)}`, 'RESPONSE');
+ }
- // Require both login and relay connection
- if (!isLoggedIn || !userPubkey) {
- throw new Error('Must be logged in to fetch configuration');
- }
+ } catch (error) {
+ console.error('Error handling admin response data:', error);
+ if (typeof logTestEvent === 'function') {
+ logTestEvent('ERROR', `Failed to handle response data: ${error.message}`, 'ERROR');
+ }
+ }
+}
- if (!isRelayConnected || !relayPubkey) {
- throw new Error('Must be connected to relay to fetch configuration. Please use the Relay Connection section first.');
- }
+// Handle config query responses
+function handleConfigQueryResponse(responseData) {
+ console.log('=== CONFIG QUERY RESPONSE ===');
+ console.log('Query type:', responseData.query_type);
+ console.log('Total results:', responseData.total_results);
+ console.log('Data:', responseData.data);
- // First establish subscription to receive responses
- const subscriptionResult = await subscribeToConfiguration();
- if (!subscriptionResult) {
- throw new Error('Failed to establish admin response subscription');
- }
+ // Convert the config response data to the format expected by displayConfiguration
+ if (responseData.data && responseData.data.length > 0) {
+ console.log('Converting config response to display format...');
- // Wait a moment for subscription to be established
- await new Promise(resolve => setTimeout(resolve, 500));
+ // Create a synthetic event structure for displayConfiguration
+ const syntheticEvent = {
+ id: 'config_response_' + Date.now(),
+ pubkey: getRelayPubkey(),
+ created_at: Math.floor(Date.now() / 1000),
+ kind: 'config_response',
+ content: 'Configuration from admin API',
+ tags: []
+ };
- // Send config query command if logged in
- if (isLoggedIn && userPubkey && relayPool) {
- console.log('Sending config query command...');
+ // Convert config data to tags format
+ responseData.data.forEach(config => {
+ const key = config.key || config.config_key;
+ const value = config.value || config.config_value;
+ if (key && value !== undefined) {
+ syntheticEvent.tags.push([key, value]);
+ }
+ });
- // Create command array for getting configuration
- const command_array = ["config_query", "all"];
+ console.log('Synthetic event created:', syntheticEvent);
+ console.log('Calling displayConfiguration with synthetic event...');
- // Encrypt the command array directly using NIP-44
- const encrypted_content = await encryptForRelay(JSON.stringify(command_array));
- if (!encrypted_content) {
- throw new Error('Failed to encrypt command array');
- }
+ // Display the configuration using the original display function
+ displayConfiguration(syntheticEvent);
- // Create single kind 23456 admin event
- const configEvent = {
- kind: 23456,
- pubkey: userPubkey,
- created_at: Math.floor(Date.now() / 1000),
- tags: [["p", getRelayPubkey()]],
- content: encrypted_content
- };
+ log(`Configuration loaded: ${responseData.total_results} parameters`, 'INFO');
+ } else {
+ console.log('No configuration data received');
+ updateConfigStatus(false);
+ }
- // Sign the event
- const signedEvent = await window.nostr.signEvent(configEvent);
- if (!signedEvent || !signedEvent.sig) {
- throw new Error('Event signing failed');
- }
+ // Also log to test interface for debugging
+ if (typeof logTestEvent === 'function') {
+ logTestEvent('RECV', `Config query response: ${responseData.query_type}, ${responseData.total_results} results`, 'CONFIG_QUERY');
- console.log('Config query event signed, publishing...');
+ if (responseData.data && responseData.data.length > 0) {
+ logTestEvent('RECV', '=== CONFIGURATION VALUES ===', 'CONFIG');
+ responseData.data.forEach((config, index) => {
+ const key = config.key || config.config_key || `config_${index}`;
+ const value = config.value || config.config_value || 'undefined';
+ const category = config.category || 'general';
+ const dataType = config.data_type || 'string';
- // Publish via SimplePool with detailed error diagnostics
- const url = relayConnectionUrl.value.trim();
- const publishPromises = relayPool.publish([url], signedEvent);
+ logTestEvent('RECV', `${key}: ${value} (${dataType}, ${category})`, 'CONFIG');
+ });
+ logTestEvent('RECV', '=== END CONFIGURATION VALUES ===', 'CONFIG');
+ } else {
+ logTestEvent('RECV', 'No configuration values found', 'CONFIG_QUERY');
+ }
+ }
+}
- // Use Promise.allSettled to capture per-relay outcomes instead of Promise.any
- const results = await Promise.allSettled(publishPromises);
+// Handle config update responses
+function handleConfigUpdateResponse(responseData) {
+ console.log('=== CONFIG UPDATE RESPONSE ===');
+ console.log('Query type:', responseData.query_type);
+ console.log('Status:', responseData.status);
+ console.log('Data:', responseData.data);
- // Log detailed publish results for diagnostics
- let successCount = 0;
- results.forEach((result, index) => {
- if (result.status === 'fulfilled') {
- successCount++;
- console.log(`✅ Relay ${index} (${url}): Event published successfully`);
- if (typeof logTestEvent === 'function') {
- logTestEvent('INFO', `Relay ${index} publish success`, 'PUBLISH');
- }
- } else {
- console.error(`❌ Relay ${index} (${url}): Publish failed:`, result.reason);
- if (typeof logTestEvent === 'function') {
- logTestEvent('ERROR', `Relay ${index} publish failed: ${result.reason?.message || result.reason}`, 'PUBLISH');
- }
- }
- });
-
- // Throw error if all relays failed
- if (successCount === 0) {
- const errorDetails = results.map((r, i) => `Relay ${i}: ${r.reason?.message || r.reason}`).join('; ');
- throw new Error(`All relays rejected the event. Details: ${errorDetails}`);
- }
-
- console.log('Config query command sent successfully - waiting for response...');
+ if (responseData.status === 'success') {
+ const updatesApplied = responseData.updates_applied || 0;
+ log(`Configuration updated successfully: ${updatesApplied} parameters changed`, 'INFO');
+ // Show success message with details
+ if (responseData.data && Array.isArray(responseData.data)) {
+ responseData.data.forEach((config, index) => {
+ if (config.status === 'success') {
+ log(`✓ ${config.key}: ${config.value} (${config.data_type})`, 'INFO');
} else {
- console.log('Not logged in - only subscription established for testing');
+ log(`✗ ${config.key}: ${config.error || 'Failed to update'}`, 'ERROR');
}
-
- return true;
-
- } catch (error) {
- console.error('Failed to fetch configuration:', error);
- return false;
- }
+ });
}
- function displayConfiguration(event) {
- try {
- console.log('=== DISPLAYING CONFIGURATION EVENT ===');
- console.log('Event received for display:', event);
+ // Configuration updated successfully - user can manually refresh using Fetch Config button
+ log('Configuration updated successfully. Click "Fetch Config" to refresh the display.', 'INFO');
- currentConfig = event;
+ } else {
+ const errorMessage = responseData.message || responseData.error || 'Unknown error';
+ log(`Configuration update failed: ${errorMessage}`, 'ERROR');
- // Clear existing table
- configTableBody.innerHTML = '';
-
- // Display tags (editable configuration parameters only)
- console.log(`Processing ${event.tags.length} configuration parameters`);
- event.tags.forEach((tag, index) => {
- if (tag.length >= 2) {
- const row = document.createElement('tr');
- const key = tag[0];
- const value = tag[1];
-
- // Create editable input for value
- const valueInput = document.createElement('input');
- valueInput.type = 'text';
- valueInput.value = value;
- valueInput.className = 'config-value-input';
- valueInput.dataset.key = key;
- valueInput.dataset.originalValue = value;
- valueInput.dataset.rowIndex = index;
-
- // Create clickable Actions cell
- const actionsCell = document.createElement('td');
- actionsCell.className = 'config-actions-cell';
- actionsCell.textContent = 'SAVE';
- actionsCell.dataset.key = key;
- actionsCell.dataset.originalValue = value;
- actionsCell.dataset.rowIndex = index;
-
- // Initially hide the SAVE text
- actionsCell.style.color = 'transparent';
-
- // Show SAVE text and make clickable when value changes
- valueInput.addEventListener('input', function() {
- if (this.value !== this.dataset.originalValue) {
- actionsCell.style.color = 'var(--primary-color)';
- actionsCell.style.cursor = 'pointer';
- actionsCell.onclick = () => saveIndividualConfig(key, valueInput.value, valueInput.dataset.originalValue, actionsCell);
- } else {
- actionsCell.style.color = 'transparent';
- actionsCell.style.cursor = 'default';
- actionsCell.onclick = null;
- }
- });
-
- row.innerHTML = `${key} `;
- row.cells[1].appendChild(valueInput);
- row.appendChild(actionsCell);
- configTableBody.appendChild(row);
- }
- });
-
- // Show message if no configuration parameters found
- if (event.tags.length === 0) {
- const row = document.createElement('tr');
- row.innerHTML = `No configuration parameters found `;
- configTableBody.appendChild(row);
+ // Show detailed error information if available
+ if (responseData.data && Array.isArray(responseData.data)) {
+ responseData.data.forEach((config, index) => {
+ if (config.status === 'error') {
+ log(`✗ ${config.key}: ${config.error || 'Failed to update'}`, 'ERROR');
}
+ });
+ }
+ }
- console.log('Configuration display completed successfully');
- updateConfigStatus(true);
+ // Log to test interface for debugging
+ if (typeof logTestEvent === 'function') {
+ logTestEvent('RECV', `Config update response: ${responseData.status}`, 'CONFIG_UPDATE');
- } catch (error) {
- console.error('Error in displayConfiguration:', error.message);
- console.error('Display configuration error:', error);
- }
+ if (responseData.data && responseData.data.length > 0) {
+ responseData.data.forEach((config, index) => {
+ const status = config.status === 'success' ? '✓' : '✗';
+ const message = config.status === 'success' ?
+ `${config.key} = ${config.value}` :
+ `${config.key}: ${config.error || 'Failed'}`;
+ logTestEvent('RECV', `${status} ${message}`, 'CONFIG_UPDATE');
+ });
+ } else {
+ logTestEvent('RECV', 'No configuration update details received', 'CONFIG_UPDATE');
+ }
+ }
+}
+
+// Handle auth query responses
+function handleAuthQueryResponse(responseData) {
+ console.log('=== AUTH QUERY RESPONSE ===');
+ console.log('Query type:', responseData.query_type);
+ console.log('Total results:', responseData.total_results);
+ console.log('Data:', responseData.data);
+
+ // Update the current auth rules with the response data
+ if (responseData.data && Array.isArray(responseData.data)) {
+ currentAuthRules = responseData.data;
+ console.log('Updated currentAuthRules with', currentAuthRules.length, 'rules');
+
+ // Always show the auth rules table when we receive data (no VIEW RULES button anymore)
+ console.log('Auto-showing auth rules table since we received data...');
+ showAuthRulesTable();
+
+ updateAuthRulesStatus('loaded');
+ log(`Loaded ${responseData.total_results} auth rules from relay`, 'INFO');
+ } else {
+ currentAuthRules = [];
+ console.log('No auth rules data received, cleared currentAuthRules');
+
+ // Show empty table (no VIEW RULES button anymore)
+ console.log('Auto-showing auth rules table with empty data...');
+ showAuthRulesTable();
+
+ updateAuthRulesStatus('loaded');
+ log('No auth rules found on relay', 'INFO');
+ }
+
+ if (typeof logTestEvent === 'function') {
+ logTestEvent('RECV', `Auth query response: ${responseData.query_type}, ${responseData.total_results} results`, 'AUTH_QUERY');
+
+ if (responseData.data && responseData.data.length > 0) {
+ responseData.data.forEach((rule, index) => {
+ logTestEvent('RECV', `Rule ${index + 1}: ${rule.rule_type} - ${rule.pattern_value || rule.rule_target}`, 'AUTH_RULE');
+ });
+ } else {
+ logTestEvent('RECV', 'No auth rules found', 'AUTH_QUERY');
+ }
+ }
+}
+
+// Handle system command responses
+function handleSystemCommandResponse(responseData) {
+ console.log('=== SYSTEM COMMAND RESPONSE ===');
+ console.log('Command:', responseData.command);
+ console.log('Status:', responseData.status);
+
+ // Handle delete auth rule responses
+ if (responseData.command === 'delete_auth_rule') {
+ if (responseData.status === 'success') {
+ log('Auth rule deleted successfully', 'INFO');
+ // Refresh the auth rules display
+ loadAuthRules();
+ } else {
+ log(`Failed to delete auth rule: ${responseData.message || 'Unknown error'}`, 'ERROR');
+ }
+ }
+
+ // Handle clear all auth rules responses
+ if (responseData.command === 'clear_all_auth_rules') {
+ if (responseData.status === 'success') {
+ const rulesCleared = responseData.rules_cleared || 0;
+ log(`Successfully cleared ${rulesCleared} auth rules`, 'INFO');
+ // Clear local auth rules and refresh display
+ currentAuthRules = [];
+ displayAuthRules(currentAuthRules);
+ } else {
+ log(`Failed to clear auth rules: ${responseData.message || 'Unknown error'}`, 'ERROR');
+ }
+ }
+
+ if (typeof logTestEvent === 'function') {
+ logTestEvent('RECV', `System command response: ${responseData.command} - ${responseData.status}`, 'SYSTEM_CMD');
+ }
+}
+
+// Handle auth rule modification responses
+function handleAuthRuleResponse(responseData) {
+ console.log('=== AUTH RULE MODIFICATION RESPONSE ===');
+ console.log('Operation:', responseData.operation);
+ console.log('Status:', responseData.status);
+
+ // Handle auth rule addition/modification responses
+ if (responseData.status === 'success') {
+ const rulesProcessed = responseData.rules_processed || 0;
+ log(`Successfully processed ${rulesProcessed} auth rule modifications`, 'INFO');
+
+ // Refresh the auth rules display to show the new rules
+ if (authRulesTableContainer && authRulesTableContainer.style.display !== 'none') {
+ loadAuthRules();
+ }
+ } else {
+ log(`Failed to process auth rule modifications: ${responseData.message || 'Unknown error'}`, 'ERROR');
+ }
+
+ if (typeof logTestEvent === 'function') {
+ logTestEvent('RECV', `Auth rule response: ${responseData.operation} - ${responseData.status}`, 'AUTH_RULE');
+
+ if (responseData.processed_rules) {
+ responseData.processed_rules.forEach((rule, index) => {
+ logTestEvent('RECV', `Processed rule ${index + 1}: ${rule.rule_type} - ${rule.pattern_value || rule.rule_target}`, 'AUTH_RULE');
+ });
+ }
+ }
+}
+
+// Helper function to decrypt content from relay using NIP-44
+async function decryptFromRelay(encryptedContent) {
+ try {
+ console.log('Decrypting content from relay...');
+
+ // Get the relay public key for decryption
+ const relayPubkey = getRelayPubkey();
+
+ // Use NIP-07 extension's NIP-44 decrypt method
+ if (!window.nostr || !window.nostr.nip44) {
+ throw new Error('NIP-44 decryption not available via NIP-07 extension');
}
- // Save individual configuration parameter
- async function saveIndividualConfig(key, newValue, originalValue, actionsCell) {
- if (!isLoggedIn || !userPubkey) {
- log('Must be logged in to save configuration', 'ERROR');
- return;
+ const decryptedContent = await window.nostr.nip44.decrypt(relayPubkey, encryptedContent);
+
+ if (!decryptedContent) {
+ throw new Error('NIP-44 decryption returned empty result');
+ }
+
+ console.log('Successfully decrypted content from relay');
+ return decryptedContent;
+
+ } catch (error) {
+ console.error('NIP-44 decryption failed:', error);
+ throw error;
+ }
+}
+
+// Fetch configuration using admin API
+async function fetchConfiguration() {
+ try {
+ console.log('=== FETCHING CONFIGURATION VIA ADMIN API ===');
+
+ // Require both login and relay connection
+ if (!isLoggedIn || !userPubkey) {
+ throw new Error('Must be logged in to fetch configuration');
+ }
+
+ if (!isRelayConnected || !relayPubkey) {
+ throw new Error('Must be connected to relay to fetch configuration. Please use the Relay Connection section first.');
+ }
+
+ // First establish subscription to receive responses
+ const subscriptionResult = await subscribeToConfiguration();
+ if (!subscriptionResult) {
+ throw new Error('Failed to establish admin response subscription');
+ }
+
+ // Wait a moment for subscription to be established
+ await new Promise(resolve => setTimeout(resolve, 500));
+
+ // Send config query command if logged in
+ if (isLoggedIn && userPubkey && relayPool) {
+ console.log('Sending config query command...');
+
+ // Create command array for getting configuration
+ const command_array = ["config_query", "all"];
+
+ // Encrypt the command array directly using NIP-44
+ const encrypted_content = await encryptForRelay(JSON.stringify(command_array));
+ if (!encrypted_content) {
+ throw new Error('Failed to encrypt command array');
}
- if (!currentConfig) {
- log('No current configuration to update', 'ERROR');
- return;
+ // Create single kind 23456 admin event
+ const configEvent = {
+ kind: 23456,
+ pubkey: userPubkey,
+ created_at: Math.floor(Date.now() / 1000),
+ tags: [["p", getRelayPubkey()]],
+ content: encrypted_content
+ };
+
+ // Sign the event
+ const signedEvent = await window.nostr.signEvent(configEvent);
+ if (!signedEvent || !signedEvent.sig) {
+ throw new Error('Event signing failed');
}
- // Don't save if value hasn't changed
- if (newValue === originalValue) {
- return;
- }
+ console.log('Config query event signed, publishing...');
- try {
- log(`Saving individual config: ${key} = ${newValue}`, 'INFO');
+ // Publish via SimplePool with detailed error diagnostics
+ const url = relayConnectionUrl.value.trim();
+ const publishPromises = relayPool.publish([url], signedEvent);
- // Determine data type based on key name
- let dataType = 'string';
- if (['max_connections', 'pow_min_difficulty', 'nip42_challenge_timeout', 'max_subscriptions_per_client', 'max_event_tags', 'max_content_length'].includes(key)) {
- dataType = 'integer';
- } else if (['auth_enabled', 'nip42_auth_required', 'nip40_expiration_enabled'].includes(key)) {
- dataType = 'boolean';
- }
+ // Use Promise.allSettled to capture per-relay outcomes instead of Promise.any
+ const results = await Promise.allSettled(publishPromises);
- // Determine category based on key name
- let category = 'general';
- if (key.startsWith('relay_')) {
- category = 'relay';
- } else if (key.startsWith('nip40_')) {
- category = 'expiration';
- } else if (key.startsWith('nip42_') || key.startsWith('auth_')) {
- category = 'authentication';
- } else if (key.startsWith('pow_')) {
- category = 'proof_of_work';
- } else if (key.startsWith('max_')) {
- category = 'limits';
- }
-
- const configObj = {
- key: key,
- value: newValue,
- data_type: dataType,
- category: category
- };
-
- // Update cell during save
- actionsCell.textContent = 'SAVING...';
- actionsCell.style.color = 'var(--accent-color)';
- actionsCell.style.cursor = 'not-allowed';
- actionsCell.onclick = null;
-
- // Send single config update
- await sendConfigUpdateCommand([configObj]);
-
- // Update the original value on success
- const input = actionsCell.parentElement.cells[1].querySelector('input');
- if (input) {
- input.dataset.originalValue = newValue;
- // Hide SAVE text since value now matches original
- actionsCell.style.color = 'transparent';
- actionsCell.style.cursor = 'default';
- actionsCell.onclick = null;
- }
-
- actionsCell.textContent = 'SAVED';
- actionsCell.style.color = 'var(--accent-color)';
- setTimeout(() => {
- actionsCell.textContent = 'SAVE';
- // Keep transparent if value matches original
- if (input && input.value === input.dataset.originalValue) {
- actionsCell.style.color = 'transparent';
+ // Log detailed publish results for diagnostics
+ let successCount = 0;
+ results.forEach((result, index) => {
+ if (result.status === 'fulfilled') {
+ successCount++;
+ console.log(`✅ Relay ${index} (${url}): Event published successfully`);
+ if (typeof logTestEvent === 'function') {
+ logTestEvent('INFO', `Relay ${index} publish success`, 'PUBLISH');
}
- }, 2000);
+ } else {
+ console.error(`❌ Relay ${index} (${url}): Publish failed:`, result.reason);
+ if (typeof logTestEvent === 'function') {
+ logTestEvent('ERROR', `Relay ${index} publish failed: ${result.reason?.message || result.reason}`, 'PUBLISH');
+ }
+ }
+ });
- log(`Successfully saved config: ${key} = ${newValue}`, 'INFO');
+ // Throw error if all relays failed
+ if (successCount === 0) {
+ const errorDetails = results.map((r, i) => `Relay ${i}: ${r.reason?.message || r.reason}`).join('; ');
+ throw new Error(`All relays rejected the event. Details: ${errorDetails}`);
+ }
- } catch (error) {
- log(`Failed to save individual config ${key}: ${error.message}`, 'ERROR');
+ console.log('Config query command sent successfully - waiting for response...');
+
+ } else {
+ console.log('Not logged in - only subscription established for testing');
+ }
+
+ return true;
+
+ } catch (error) {
+ console.error('Failed to fetch configuration:', error);
+ return false;
+ }
+}
+
+function displayConfiguration(event) {
+ try {
+ console.log('=== DISPLAYING CONFIGURATION EVENT ===');
+ console.log('Event received for display:', event);
+
+ currentConfig = event;
+
+ // Clear existing table
+ configTableBody.innerHTML = '';
+
+ // Display tags (editable configuration parameters only)
+ console.log(`Processing ${event.tags.length} configuration parameters`);
+ event.tags.forEach((tag, index) => {
+ if (tag.length >= 2) {
+ const row = document.createElement('tr');
+ const key = tag[0];
+ const value = tag[1];
+
+ // Create editable input for value
+ const valueInput = document.createElement('input');
+ valueInput.type = 'text';
+ valueInput.value = value;
+ valueInput.className = 'config-value-input';
+ valueInput.dataset.key = key;
+ valueInput.dataset.originalValue = value;
+ valueInput.dataset.rowIndex = index;
+
+ // Create clickable Actions cell
+ const actionsCell = document.createElement('td');
+ actionsCell.className = 'config-actions-cell';
actionsCell.textContent = 'SAVE';
- actionsCell.style.color = 'var(--primary-color)';
- actionsCell.style.cursor = 'pointer';
- actionsCell.onclick = () => saveIndividualConfig(key, actionsCell.parentElement.cells[1].querySelector('input').value, originalValue, actionsCell);
- }
- }
+ actionsCell.dataset.key = key;
+ actionsCell.dataset.originalValue = value;
+ actionsCell.dataset.rowIndex = index;
+ // Initially hide the SAVE text
+ actionsCell.style.color = 'transparent';
-
-
- // Send config update command using kind 23456 with Administrator API (inner events)
- async function sendConfigUpdateCommand(configObjects) {
- try {
- if (!relayPool) {
- throw new Error('SimplePool connection not available');
- }
-
- console.log(`Sending config_update command with ${configObjects.length} configuration object(s)`);
-
- // Create command array for config update
- const command_array = ["config_update", configObjects];
-
- // Encrypt the command array directly using NIP-44
- const encrypted_content = await encryptForRelay(JSON.stringify(command_array));
- if (!encrypted_content) {
- throw new Error('Failed to encrypt command array');
- }
-
- // Create single kind 23456 admin event
- const configEvent = {
- kind: 23456,
- pubkey: userPubkey,
- created_at: Math.floor(Date.now() / 1000),
- tags: [["p", getRelayPubkey()]],
- content: encrypted_content
- };
-
- // Sign the event
- const signedEvent = await window.nostr.signEvent(configEvent);
- if (!signedEvent || !signedEvent.sig) {
- throw new Error('Event signing failed');
- }
-
- console.log(`Config update event signed with ${configObjects.length} object(s)`);
-
- // Publish via SimplePool with detailed error diagnostics
- const url = relayConnectionUrl.value.trim();
- const publishPromises = relayPool.publish([url], signedEvent);
-
- // Use Promise.allSettled to capture per-relay outcomes instead of Promise.any
- const results = await Promise.allSettled(publishPromises);
-
- // Log detailed publish results for diagnostics
- let successCount = 0;
- results.forEach((result, index) => {
- if (result.status === 'fulfilled') {
- successCount++;
- console.log(`✅ Config Update Relay ${index} (${url}): Event published successfully`);
- if (typeof logTestEvent === 'function') {
- logTestEvent('INFO', `Config update relay ${index} publish success`, 'PUBLISH');
- }
+ // Show SAVE text and make clickable when value changes
+ valueInput.addEventListener('input', function () {
+ if (this.value !== this.dataset.originalValue) {
+ actionsCell.style.color = 'var(--primary-color)';
+ actionsCell.style.cursor = 'pointer';
+ actionsCell.onclick = () => saveIndividualConfig(key, valueInput.value, valueInput.dataset.originalValue, actionsCell);
} else {
- console.error(`❌ Config Update Relay ${index} (${url}): Publish failed:`, result.reason);
- if (typeof logTestEvent === 'function') {
- logTestEvent('ERROR', `Config update relay ${index} publish failed: ${result.reason?.message || result.reason}`, 'PUBLISH');
- }
+ actionsCell.style.color = 'transparent';
+ actionsCell.style.cursor = 'default';
+ actionsCell.onclick = null;
}
});
- // Throw error if all relays failed
- if (successCount === 0) {
- const errorDetails = results.map((r, i) => `Relay ${i}: ${r.reason?.message || r.reason}`).join('; ');
- throw new Error(`All relays rejected config update event. Details: ${errorDetails}`);
- }
-
- console.log(`Config update command sent successfully with ${configObjects.length} configuration object(s)`);
-
- // Log for testing
- if (typeof logTestEvent === 'function') {
- logTestEvent('SENT', `Config update command: ${configObjects.length} object(s)`, 'CONFIG_UPDATE');
- configObjects.forEach((config, index) => {
- logTestEvent('SENT', `Config ${index + 1}: ${config.key} = ${config.value} (${config.data_type})`, 'CONFIG');
- });
- }
-
- } catch (error) {
- console.error(`Failed to send config_update command:`, error);
- throw error;
+ row.innerHTML = `${key} `;
+ row.cells[1].appendChild(valueInput);
+ row.appendChild(actionsCell);
+ configTableBody.appendChild(row);
}
+ });
+
+ // Show message if no configuration parameters found
+ if (event.tags.length === 0) {
+ const row = document.createElement('tr');
+ row.innerHTML = `No configuration parameters found `;
+ configTableBody.appendChild(row);
}
+ console.log('Configuration display completed successfully');
+ updateConfigStatus(true);
+
+ } catch (error) {
+ console.error('Error in displayConfiguration:', error.message);
+ console.error('Display configuration error:', error);
+ }
+}
+
+// Save individual configuration parameter
+async function saveIndividualConfig(key, newValue, originalValue, actionsCell) {
+ if (!isLoggedIn || !userPubkey) {
+ log('Must be logged in to save configuration', 'ERROR');
+ return;
+ }
+
+ if (!currentConfig) {
+ log('No current configuration to update', 'ERROR');
+ return;
+ }
+
+ // Don't save if value hasn't changed
+ if (newValue === originalValue) {
+ return;
+ }
+
+ try {
+ log(`Saving individual config: ${key} = ${newValue}`, 'INFO');
+
+ // Determine data type based on key name
+ let dataType = 'string';
+ if (['max_connections', 'pow_min_difficulty', 'nip42_challenge_timeout', 'max_subscriptions_per_client', 'max_event_tags', 'max_content_length'].includes(key)) {
+ dataType = 'integer';
+ } else if (['auth_enabled', 'nip42_auth_required', 'nip40_expiration_enabled'].includes(key)) {
+ dataType = 'boolean';
+ }
+
+ // Determine category based on key name
+ let category = 'general';
+ if (key.startsWith('relay_')) {
+ category = 'relay';
+ } else if (key.startsWith('nip40_')) {
+ category = 'expiration';
+ } else if (key.startsWith('nip42_') || key.startsWith('auth_')) {
+ category = 'authentication';
+ } else if (key.startsWith('pow_')) {
+ category = 'proof_of_work';
+ } else if (key.startsWith('max_')) {
+ category = 'limits';
+ }
+
+ const configObj = {
+ key: key,
+ value: newValue,
+ data_type: dataType,
+ category: category
+ };
+
+ // Update cell during save
+ actionsCell.textContent = 'SAVING...';
+ actionsCell.style.color = 'var(--accent-color)';
+ actionsCell.style.cursor = 'not-allowed';
+ actionsCell.onclick = null;
+
+ // Send single config update
+ await sendConfigUpdateCommand([configObj]);
+
+ // Update the original value on success
+ const input = actionsCell.parentElement.cells[1].querySelector('input');
+ if (input) {
+ input.dataset.originalValue = newValue;
+ // Hide SAVE text since value now matches original
+ actionsCell.style.color = 'transparent';
+ actionsCell.style.cursor = 'default';
+ actionsCell.onclick = null;
+ }
+
+ actionsCell.textContent = 'SAVED';
+ actionsCell.style.color = 'var(--accent-color)';
+ setTimeout(() => {
+ actionsCell.textContent = 'SAVE';
+ // Keep transparent if value matches original
+ if (input && input.value === input.dataset.originalValue) {
+ actionsCell.style.color = 'transparent';
+ }
+ }, 2000);
+
+ log(`Successfully saved config: ${key} = ${newValue}`, 'INFO');
+
+ } catch (error) {
+ log(`Failed to save individual config ${key}: ${error.message}`, 'ERROR');
+ actionsCell.textContent = 'SAVE';
+ actionsCell.style.color = 'var(--primary-color)';
+ actionsCell.style.cursor = 'pointer';
+ actionsCell.onclick = () => saveIndividualConfig(key, actionsCell.parentElement.cells[1].querySelector('input').value, originalValue, actionsCell);
+ }
+}
- // Login/Logout button functionality
- function updateLoginLogoutButton() {
- const loginLogoutBtn = document.getElementById('login-logout-btn');
- if (!loginLogoutBtn) return;
- if (isLoggedIn) {
- loginLogoutBtn.textContent = 'LOGOUT';
- loginLogoutBtn.className = 'login-logout-btn logout-state';
- loginLogoutBtn.onclick = logout;
- // Show user details when logged in
- if (persistentUserDetails) {
- persistentUserDetails.style.display = 'block';
+
+// Send config update command using kind 23456 with Administrator API (inner events)
+async function sendConfigUpdateCommand(configObjects) {
+ try {
+ if (!relayPool) {
+ throw new Error('SimplePool connection not available');
+ }
+
+ console.log(`Sending config_update command with ${configObjects.length} configuration object(s)`);
+
+ // Create command array for config update
+ const command_array = ["config_update", configObjects];
+
+ // Encrypt the command array directly using NIP-44
+ const encrypted_content = await encryptForRelay(JSON.stringify(command_array));
+ if (!encrypted_content) {
+ throw new Error('Failed to encrypt command array');
+ }
+
+ // Create single kind 23456 admin event
+ const configEvent = {
+ kind: 23456,
+ pubkey: userPubkey,
+ created_at: Math.floor(Date.now() / 1000),
+ tags: [["p", getRelayPubkey()]],
+ content: encrypted_content
+ };
+
+ // Sign the event
+ const signedEvent = await window.nostr.signEvent(configEvent);
+ if (!signedEvent || !signedEvent.sig) {
+ throw new Error('Event signing failed');
+ }
+
+ console.log(`Config update event signed with ${configObjects.length} object(s)`);
+
+ // Publish via SimplePool with detailed error diagnostics
+ const url = relayConnectionUrl.value.trim();
+ const publishPromises = relayPool.publish([url], signedEvent);
+
+ // Use Promise.allSettled to capture per-relay outcomes instead of Promise.any
+ const results = await Promise.allSettled(publishPromises);
+
+ // Log detailed publish results for diagnostics
+ let successCount = 0;
+ results.forEach((result, index) => {
+ if (result.status === 'fulfilled') {
+ successCount++;
+ console.log(`✅ Config Update Relay ${index} (${url}): Event published successfully`);
+ if (typeof logTestEvent === 'function') {
+ logTestEvent('INFO', `Config update relay ${index} publish success`, 'PUBLISH');
}
} else {
- loginLogoutBtn.textContent = 'ADMIN NOSTR LOGIN';
- loginLogoutBtn.className = 'login-logout-btn';
- loginLogoutBtn.onclick = () => {
- if (window.NOSTR_LOGIN_LITE && window.NOSTR_LOGIN_LITE.launch) {
- window.NOSTR_LOGIN_LITE.launch('login');
- } else {
- console.log('NOSTR_LOGIN_LITE not available');
- }
- };
- // Hide user details when logged out
- if (persistentUserDetails) {
- persistentUserDetails.style.display = 'none';
+ console.error(`❌ Config Update Relay ${index} (${url}): Publish failed:`, result.reason);
+ if (typeof logTestEvent === 'function') {
+ logTestEvent('ERROR', `Config update relay ${index} publish failed: ${result.reason?.message || result.reason}`, 'PUBLISH');
}
}
+ });
+
+ // Throw error if all relays failed
+ if (successCount === 0) {
+ const errorDetails = results.map((r, i) => `Relay ${i}: ${r.reason?.message || r.reason}`).join('; ');
+ throw new Error(`All relays rejected config update event. Details: ${errorDetails}`);
}
- // Event handlers
- // Initialize login/logout button
- updateLoginLogoutButton();
- fetchConfigBtn.addEventListener('click', function (e) {
- e.preventDefault();
- e.stopPropagation();
- fetchConfiguration().catch(error => {
- console.log('Manual fetch configuration failed: ' + error.message);
+ console.log(`Config update command sent successfully with ${configObjects.length} configuration object(s)`);
+
+ // Log for testing
+ if (typeof logTestEvent === 'function') {
+ logTestEvent('SENT', `Config update command: ${configObjects.length} object(s)`, 'CONFIG_UPDATE');
+ configObjects.forEach((config, index) => {
+ logTestEvent('SENT', `Config ${index + 1}: ${config.key} = ${config.value} (${config.data_type})`, 'CONFIG');
});
- });
-
-
-
-
- // Relay connection event handlers
- connectRelayBtn.addEventListener('click', function (e) {
- e.preventDefault();
- e.stopPropagation();
- connectToRelay().catch(error => {
- console.log('Relay connection failed: ' + error.message);
- });
- });
-
- disconnectRelayBtn.addEventListener('click', function (e) {
- e.preventDefault();
- e.stopPropagation();
- disconnectFromRelay();
- });
-
- restartRelayBtn.addEventListener('click', function (e) {
- e.preventDefault();
- e.stopPropagation();
- sendRestartCommand().catch(error => {
- log(`Restart command failed: ${error.message}`, 'ERROR');
- });
- });
-
- // ================================
- // AUTH RULES MANAGEMENT FUNCTIONS
- // ================================
-
- // Global auth rules state
- let currentAuthRules = [];
- let editingAuthRule = null;
-
- // DOM elements for auth rules
- const authRulesSection = document.getElementById('authRulesSection');
- const refreshAuthRulesBtn = document.getElementById('refreshAuthRulesBtn');
- const authRulesTableContainer = document.getElementById('authRulesTableContainer');
- const authRulesTableBody = document.getElementById('authRulesTableBody');
- const authRuleFormContainer = document.getElementById('authRuleFormContainer');
- const authRuleForm = document.getElementById('authRuleForm');
- const authRuleFormTitle = document.getElementById('authRuleFormTitle');
- const saveAuthRuleBtn = document.getElementById('saveAuthRuleBtn');
- const cancelAuthRuleBtn = document.getElementById('cancelAuthRuleBtn');
-
- // Show auth rules section after login
- function showAuthRulesSection() {
- if (authRulesSection) {
- authRulesSection.style.display = 'block';
- updateAuthRulesStatus('ready');
- log('Auth rules section is now available', 'INFO');
- }
}
- // Hide auth rules section on logout
- function hideAuthRulesSection() {
- if (authRulesSection) {
- authRulesSection.style.display = 'none';
+ } catch (error) {
+ console.error(`Failed to send config_update command:`, error);
+ throw error;
+ }
+}
- // Add null checks for all elements
- if (authRulesTableContainer) {
- authRulesTableContainer.style.display = 'none';
- }
- if (authRuleFormContainer) {
- authRuleFormContainer.style.display = 'none';
- }
- currentAuthRules = [];
- editingAuthRule = null;
- log('Auth rules section hidden', 'INFO');
- }
+
+// Profile area click handler for logout dropdown
+function toggleLogoutDropdown(event) {
+ if (!logoutDropdown) return;
+
+ // Only toggle if clicking on the image, not the text or container
+ if (event.target === headerUserImage) {
+ const isVisible = logoutDropdown.style.display === 'block';
+ logoutDropdown.style.display = isVisible ? 'none' : 'block';
+ }
+}
+
+// Close logout dropdown when clicking outside
+document.addEventListener('click', function(event) {
+ if (profileArea && logoutDropdown && !profileArea.contains(event.target)) {
+ logoutDropdown.style.display = 'none';
+ }
+});
+
+// Initialize profile area click handler
+if (profileArea) {
+ profileArea.addEventListener('click', toggleLogoutDropdown);
+}
+
+// Initialize logout button handler
+if (logoutBtn) {
+ logoutBtn.addEventListener('click', function(e) {
+ e.stopPropagation(); // Prevent profile area click
+ logout();
+ });
+}
+
+// Event handlers
+fetchConfigBtn.addEventListener('click', function (e) {
+ e.preventDefault();
+ e.stopPropagation();
+ fetchConfiguration().catch(error => {
+ console.log('Manual fetch configuration failed: ' + error.message);
+ });
+});
+
+
+
+
+// Relay connection event handlers
+connectRelayBtn.addEventListener('click', function (e) {
+ e.preventDefault();
+ e.stopPropagation();
+ connectToRelay().catch(error => {
+ console.log('Relay connection failed: ' + error.message);
+ });
+});
+
+disconnectRelayBtn.addEventListener('click', function (e) {
+ e.preventDefault();
+ e.stopPropagation();
+ disconnectFromRelay();
+});
+
+restartRelayBtn.addEventListener('click', function (e) {
+ e.preventDefault();
+ e.stopPropagation();
+ sendRestartCommand().catch(error => {
+ log(`Restart command failed: ${error.message}`, 'ERROR');
+ });
+});
+
+// ================================
+// AUTH RULES MANAGEMENT FUNCTIONS
+// ================================
+
+// Global auth rules state
+let currentAuthRules = [];
+let editingAuthRule = null;
+
+// DOM elements for auth rules
+const authRulesSection = document.getElementById('authRulesSection');
+const refreshAuthRulesBtn = document.getElementById('refreshAuthRulesBtn');
+const authRulesTableContainer = document.getElementById('authRulesTableContainer');
+const authRulesTableBody = document.getElementById('authRulesTableBody');
+const authRuleFormContainer = document.getElementById('authRuleFormContainer');
+const authRuleForm = document.getElementById('authRuleForm');
+const authRuleFormTitle = document.getElementById('authRuleFormTitle');
+const saveAuthRuleBtn = document.getElementById('saveAuthRuleBtn');
+const cancelAuthRuleBtn = document.getElementById('cancelAuthRuleBtn');
+
+// Show auth rules section after login
+function showAuthRulesSection() {
+ if (authRulesSection) {
+ authRulesSection.style.display = 'block';
+ updateAuthRulesStatus('ready');
+ log('Auth rules section is now available', 'INFO');
+ }
+}
+
+// Hide auth rules section on logout
+function hideAuthRulesSection() {
+ if (authRulesSection) {
+ authRulesSection.style.display = 'none';
+
+ // Add null checks for all elements
+ if (authRulesTableContainer) {
+ authRulesTableContainer.style.display = 'none';
+ }
+ if (authRuleFormContainer) {
+ authRuleFormContainer.style.display = 'none';
}
- // Update auth rules status indicator (removed - no status element)
- function updateAuthRulesStatus(status) {
- // Status element removed - no-op
+ currentAuthRules = [];
+ editingAuthRule = null;
+ log('Auth rules section hidden', 'INFO');
+ }
+}
+
+// Update auth rules status indicator (removed - no status element)
+function updateAuthRulesStatus(status) {
+ // Status element removed - no-op
+}
+
+// Load auth rules from relay using admin API
+async function loadAuthRules() {
+ try {
+ log('Loading auth rules via admin API...', 'INFO');
+ updateAuthRulesStatus('loading');
+
+ if (!isLoggedIn || !userPubkey) {
+ throw new Error('Must be logged in to load auth rules');
}
- // Load auth rules from relay using admin API
- async function loadAuthRules() {
- try {
- log('Loading auth rules via admin API...', 'INFO');
- updateAuthRulesStatus('loading');
-
- if (!isLoggedIn || !userPubkey) {
- throw new Error('Must be logged in to load auth rules');
- }
-
- if (!relayPool) {
- throw new Error('SimplePool connection not available');
- }
-
- // Create command array for getting all auth rules
- const command_array = ["auth_query", "all"];
-
- // Encrypt the command array directly using NIP-44
- const encrypted_content = await encryptForRelay(JSON.stringify(command_array));
- if (!encrypted_content) {
- throw new Error('Failed to encrypt command array');
- }
-
- // Create single kind 23456 admin event
- const authEvent = {
- kind: 23456,
- pubkey: userPubkey,
- created_at: Math.floor(Date.now() / 1000),
- tags: [["p", getRelayPubkey()]],
- content: encrypted_content
- };
-
- // Sign the event
- const signedEvent = await window.nostr.signEvent(authEvent);
- if (!signedEvent || !signedEvent.sig) {
- throw new Error('Event signing failed');
- }
-
- log('Sending auth rules query to relay...', 'INFO');
-
- // Publish via SimplePool with detailed error diagnostics
- const url = relayConnectionUrl.value.trim();
- const publishPromises = relayPool.publish([url], signedEvent);
-
- // Use Promise.allSettled to capture per-relay outcomes instead of Promise.any
- const results = await Promise.allSettled(publishPromises);
-
- // Log detailed publish results for diagnostics
- let successCount = 0;
- results.forEach((result, index) => {
- if (result.status === 'fulfilled') {
- successCount++;
- console.log(`✅ Auth Rules Query Relay ${index} (${url}): Event published successfully`);
- if (typeof logTestEvent === 'function') {
- logTestEvent('INFO', `Auth rules query relay ${index} publish success`, 'PUBLISH');
- }
- } else {
- console.error(`❌ Auth Rules Query Relay ${index} (${url}): Publish failed:`, result.reason);
- if (typeof logTestEvent === 'function') {
- logTestEvent('ERROR', `Auth rules query relay ${index} publish failed: ${result.reason?.message || result.reason}`, 'PUBLISH');
- }
- }
- });
-
- // Throw error if all relays failed
- if (successCount === 0) {
- const errorDetails = results.map((r, i) => `Relay ${i}: ${r.reason?.message || r.reason}`).join('; ');
- throw new Error(`All relays rejected auth rules query event. Details: ${errorDetails}`);
- }
-
- log('Auth rules query sent successfully - waiting for response...', 'INFO');
- updateAuthRulesStatus('loaded');
-
- } catch (error) {
- log(`Failed to load auth rules: ${error.message}`, 'ERROR');
- updateAuthRulesStatus('error');
- currentAuthRules = [];
- displayAuthRules(currentAuthRules);
- }
+ if (!relayPool) {
+ throw new Error('SimplePool connection not available');
}
- // Display auth rules in the table
- function displayAuthRules(rules) {
- console.log('=== DISPLAY AUTH RULES DEBUG ===');
- console.log('authRulesTableBody element:', authRulesTableBody);
- console.log('Rules to display:', rules);
- console.log('Rules length:', rules ? rules.length : 'undefined');
- console.log('authRulesTableContainer display:', authRulesTableContainer ? authRulesTableContainer.style.display : 'element not found');
+ // Create command array for getting all auth rules
+ const command_array = ["auth_query", "all"];
- if (!authRulesTableBody) {
- console.log('ERROR: authRulesTableBody element not found');
- return;
+ // Encrypt the command array directly using NIP-44
+ const encrypted_content = await encryptForRelay(JSON.stringify(command_array));
+ if (!encrypted_content) {
+ throw new Error('Failed to encrypt command array');
+ }
+
+ // Create single kind 23456 admin event
+ const authEvent = {
+ kind: 23456,
+ pubkey: userPubkey,
+ created_at: Math.floor(Date.now() / 1000),
+ tags: [["p", getRelayPubkey()]],
+ content: encrypted_content
+ };
+
+ // Sign the event
+ const signedEvent = await window.nostr.signEvent(authEvent);
+ if (!signedEvent || !signedEvent.sig) {
+ throw new Error('Event signing failed');
+ }
+
+ log('Sending auth rules query to relay...', 'INFO');
+
+ // Publish via SimplePool with detailed error diagnostics
+ const url = relayConnectionUrl.value.trim();
+ const publishPromises = relayPool.publish([url], signedEvent);
+
+ // Use Promise.allSettled to capture per-relay outcomes instead of Promise.any
+ const results = await Promise.allSettled(publishPromises);
+
+ // Log detailed publish results for diagnostics
+ let successCount = 0;
+ results.forEach((result, index) => {
+ if (result.status === 'fulfilled') {
+ successCount++;
+ console.log(`✅ Auth Rules Query Relay ${index} (${url}): Event published successfully`);
+ if (typeof logTestEvent === 'function') {
+ logTestEvent('INFO', `Auth rules query relay ${index} publish success`, 'PUBLISH');
+ }
+ } else {
+ console.error(`❌ Auth Rules Query Relay ${index} (${url}): Publish failed:`, result.reason);
+ if (typeof logTestEvent === 'function') {
+ logTestEvent('ERROR', `Auth rules query relay ${index} publish failed: ${result.reason?.message || result.reason}`, 'PUBLISH');
+ }
}
+ });
- authRulesTableBody.innerHTML = '';
- console.log('Cleared existing table content');
+ // Throw error if all relays failed
+ if (successCount === 0) {
+ const errorDetails = results.map((r, i) => `Relay ${i}: ${r.reason?.message || r.reason}`).join('; ');
+ throw new Error(`All relays rejected auth rules query event. Details: ${errorDetails}`);
+ }
- if (!rules || rules.length === 0) {
- console.log('No rules to display, showing empty message');
- const row = document.createElement('tr');
- row.innerHTML = `No auth rules configured `;
- authRulesTableBody.appendChild(row);
- console.log('Added empty rules message row');
- return;
+ log('Auth rules query sent successfully - waiting for response...', 'INFO');
+ updateAuthRulesStatus('loaded');
+
+ } catch (error) {
+ log(`Failed to load auth rules: ${error.message}`, 'ERROR');
+ updateAuthRulesStatus('error');
+ currentAuthRules = [];
+ displayAuthRules(currentAuthRules);
+ }
+}
+
+// Display auth rules in the table
+function displayAuthRules(rules) {
+ console.log('=== DISPLAY AUTH RULES DEBUG ===');
+ console.log('authRulesTableBody element:', authRulesTableBody);
+ console.log('Rules to display:', rules);
+ console.log('Rules length:', rules ? rules.length : 'undefined');
+ console.log('authRulesTableContainer display:', authRulesTableContainer ? authRulesTableContainer.style.display : 'element not found');
+
+ if (!authRulesTableBody) {
+ console.log('ERROR: authRulesTableBody element not found');
+ return;
+ }
+
+ authRulesTableBody.innerHTML = '';
+ console.log('Cleared existing table content');
+
+ if (!rules || rules.length === 0) {
+ console.log('No rules to display, showing empty message');
+ const row = document.createElement('tr');
+ row.innerHTML = `No auth rules configured `;
+ authRulesTableBody.appendChild(row);
+ console.log('Added empty rules message row');
+ return;
+ }
+
+ console.log(`Displaying ${rules.length} auth rules`);
+ rules.forEach((rule, index) => {
+ console.log(`Adding rule ${index + 1}:`, rule);
+ const row = document.createElement('tr');
+
+ // Convert hex pubkey to npub for display in pattern_value
+ let displayPatternValue = rule.pattern_value || rule.rule_target || '-';
+ let patternValueLink = displayPatternValue;
+ try {
+ if (rule.pattern_value && rule.pattern_value.length === 64 && /^[0-9a-fA-F]+$/.test(rule.pattern_value)) {
+ const npub = window.NostrTools.nip19.npubEncode(rule.pattern_value);
+ displayPatternValue = npub;
+ patternValueLink = `${npub}`;
}
+ } catch (error) {
+ console.log('Failed to encode pattern_value to npub:', error.message);
+ }
- console.log(`Displaying ${rules.length} auth rules`);
- rules.forEach((rule, index) => {
- console.log(`Adding rule ${index + 1}:`, rule);
- const row = document.createElement('tr');
- row.innerHTML = `
+ row.innerHTML = `
${rule.rule_type}
${rule.pattern_type || rule.operation || '-'}
- ${rule.pattern_value || rule.rule_target || '-'}
+ ${patternValueLink}
${rule.enabled !== false ? 'Active' : 'Inactive'}
`;
- authRulesTableBody.appendChild(row);
- });
+ authRulesTableBody.appendChild(row);
+ });
- // Update status display
- console.log(`Total Rules: ${rules.length}, Active Rules: ${rules.filter(r => r.enabled !== false).length}`);
+ // Update status display
+ console.log(`Total Rules: ${rules.length}, Active Rules: ${rules.filter(r => r.enabled !== false).length}`);
- console.log('=== END DISPLAY AUTH RULES DEBUG ===');
+ console.log('=== END DISPLAY AUTH RULES DEBUG ===');
+}
+
+// Show auth rules table (automatically called when auth rules are loaded)
+function showAuthRulesTable() {
+ console.log('=== SHOW AUTH RULES TABLE DEBUG ===');
+ console.log('authRulesTableContainer element:', authRulesTableContainer);
+ console.log('Current display style:', authRulesTableContainer ? authRulesTableContainer.style.display : 'element not found');
+
+ if (authRulesTableContainer) {
+ authRulesTableContainer.style.display = 'block';
+ console.log('Set authRulesTableContainer display to block');
+
+ // If we already have cached auth rules, display them immediately
+ if (currentAuthRules && currentAuthRules.length >= 0) {
+ console.log('Displaying cached auth rules:', currentAuthRules.length, 'rules');
+ displayAuthRules(currentAuthRules);
+ updateAuthRulesStatus('loaded');
+ log(`Auth rules table displayed with ${currentAuthRules.length} cached rules`, 'INFO');
+ } else {
+ // No cached rules, load from relay
+ console.log('No cached auth rules, loading from relay...');
+ loadAuthRules();
+ log('Auth rules table displayed - loading from relay', 'INFO');
+ }
+ } else {
+ console.log('ERROR: authRulesTableContainer element not found');
+ }
+ console.log('=== END SHOW AUTH RULES TABLE DEBUG ===');
+}
+
+// Show add auth rule form
+function showAddAuthRuleForm() {
+ if (authRuleFormContainer && authRuleFormTitle) {
+ editingAuthRule = null;
+ authRuleFormTitle.textContent = 'Add Auth Rule';
+ authRuleForm.reset();
+ authRuleFormContainer.style.display = 'block';
+ log('Opened add auth rule form', 'INFO');
+ }
+}
+
+// Show edit auth rule form
+function editAuthRule(index) {
+ if (index < 0 || index >= currentAuthRules.length) return;
+
+ const rule = currentAuthRules[index];
+ editingAuthRule = { ...rule, index: index };
+
+ if (authRuleFormTitle && authRuleForm) {
+ authRuleFormTitle.textContent = 'Edit Auth Rule';
+
+ // Populate form fields
+ document.getElementById('authRuleType').value = rule.rule_type || '';
+ document.getElementById('authPatternType').value = rule.pattern_type || rule.operation || '';
+ document.getElementById('authPatternValue').value = rule.pattern_value || rule.rule_target || '';
+ document.getElementById('authRuleAction').value = rule.action || 'allow';
+ document.getElementById('authRuleDescription').value = rule.description || '';
+
+ authRuleFormContainer.style.display = 'block';
+ log(`Editing auth rule: ${rule.rule_type} - ${rule.pattern_value || rule.rule_target}`, 'INFO');
+ }
+}
+
+// Delete auth rule using Administrator API (inner events)
+async function deleteAuthRule(index) {
+ if (index < 0 || index >= currentAuthRules.length) return;
+
+ const rule = currentAuthRules[index];
+ const confirmMsg = `Delete auth rule: ${rule.rule_type} - ${rule.pattern_value || rule.rule_target}?`;
+
+ if (!confirm(confirmMsg)) return;
+
+ try {
+ log(`Deleting auth rule: ${rule.rule_type} - ${rule.pattern_value || rule.rule_target}`, 'INFO');
+
+ if (!isLoggedIn || !userPubkey) {
+ throw new Error('Must be logged in to delete auth rules');
}
- // Show auth rules table (automatically called when auth rules are loaded)
- function showAuthRulesTable() {
- console.log('=== SHOW AUTH RULES TABLE DEBUG ===');
- console.log('authRulesTableContainer element:', authRulesTableContainer);
- console.log('Current display style:', authRulesTableContainer ? authRulesTableContainer.style.display : 'element not found');
+ if (!relayPool) {
+ throw new Error('SimplePool connection not available');
+ }
- if (authRulesTableContainer) {
- authRulesTableContainer.style.display = 'block';
- console.log('Set authRulesTableContainer display to block');
+ // Create command array for deleting auth rule
+ // Format: ["system_command", "delete_auth_rule", rule_type, pattern_type, pattern_value]
+ const rule_type = rule.rule_type;
+ const pattern_type = rule.pattern_type || 'pubkey';
+ const pattern_value = rule.pattern_value || rule.rule_target;
- // If we already have cached auth rules, display them immediately
- if (currentAuthRules && currentAuthRules.length >= 0) {
- console.log('Displaying cached auth rules:', currentAuthRules.length, 'rules');
- displayAuthRules(currentAuthRules);
- updateAuthRulesStatus('loaded');
- log(`Auth rules table displayed with ${currentAuthRules.length} cached rules`, 'INFO');
- } else {
- // No cached rules, load from relay
- console.log('No cached auth rules, loading from relay...');
- loadAuthRules();
- log('Auth rules table displayed - loading from relay', 'INFO');
+ const command_array = ["system_command", "delete_auth_rule", rule_type, pattern_type, pattern_value];
+
+ // Encrypt the command array directly using NIP-44
+ const encrypted_content = await encryptForRelay(JSON.stringify(command_array));
+ if (!encrypted_content) {
+ throw new Error('Failed to encrypt command array');
+ }
+
+ // Create single kind 23456 admin event
+ const authEvent = {
+ kind: 23456,
+ pubkey: userPubkey,
+ created_at: Math.floor(Date.now() / 1000),
+ tags: [["p", getRelayPubkey()]],
+ content: encrypted_content
+ };
+
+ // Sign the event
+ const signedEvent = await window.nostr.signEvent(authEvent);
+ if (!signedEvent || !signedEvent.sig) {
+ throw new Error('Event signing failed');
+ }
+
+ log('Sending delete auth rule command to relay...', 'INFO');
+
+ // Publish via SimplePool with detailed error diagnostics
+ const url = relayConnectionUrl.value.trim();
+ const publishPromises = relayPool.publish([url], signedEvent);
+
+ // Use Promise.allSettled to capture per-relay outcomes instead of Promise.any
+ const results = await Promise.allSettled(publishPromises);
+
+ // Log detailed publish results for diagnostics
+ let successCount = 0;
+ results.forEach((result, index) => {
+ if (result.status === 'fulfilled') {
+ successCount++;
+ console.log(`✅ Delete Auth Rule Relay ${index} (${url}): Event published successfully`);
+ if (typeof logTestEvent === 'function') {
+ logTestEvent('INFO', `Delete auth rule relay ${index} publish success`, 'PUBLISH');
}
} else {
- console.log('ERROR: authRulesTableContainer element not found');
+ console.error(`❌ Delete Auth Rule Relay ${index} (${url}): Publish failed:`, result.reason);
+ if (typeof logTestEvent === 'function') {
+ logTestEvent('ERROR', `Delete auth rule relay ${index} publish failed: ${result.reason?.message || result.reason}`, 'PUBLISH');
+ }
}
- console.log('=== END SHOW AUTH RULES TABLE DEBUG ===');
+ });
+
+ // Throw error if all relays failed
+ if (successCount === 0) {
+ const errorDetails = results.map((r, i) => `Relay ${i}: ${r.reason?.message || r.reason}`).join('; ');
+ throw new Error(`All relays rejected delete auth rule event. Details: ${errorDetails}`);
}
- // Show add auth rule form
- function showAddAuthRuleForm() {
- if (authRuleFormContainer && authRuleFormTitle) {
- editingAuthRule = null;
- authRuleFormTitle.textContent = 'Add Auth Rule';
- authRuleForm.reset();
- authRuleFormContainer.style.display = 'block';
- log('Opened add auth rule form', 'INFO');
- }
+ log('Delete auth rule command sent successfully - waiting for response...', 'INFO');
+
+ // Remove from local array immediately for UI responsiveness
+ currentAuthRules.splice(index, 1);
+ displayAuthRules(currentAuthRules);
+
+ } catch (error) {
+ log(`Failed to delete auth rule: ${error.message}`, 'ERROR');
+ }
+}
+
+// Hide auth rule form
+function hideAuthRuleForm() {
+ if (authRuleFormContainer) {
+ authRuleFormContainer.style.display = 'none';
+ editingAuthRule = null;
+ log('Auth rule form hidden', 'INFO');
+ }
+}
+
+// Validate auth rule form
+function validateAuthRuleForm() {
+ const ruleType = document.getElementById('authRuleType').value;
+ const patternType = document.getElementById('authPatternType').value;
+ const patternValue = document.getElementById('authPatternValue').value.trim();
+ const action = document.getElementById('authRuleAction').value;
+
+ if (!ruleType) {
+ alert('Please select a rule type');
+ return false;
+ }
+
+ if (!patternType) {
+ alert('Please select a pattern type');
+ return false;
+ }
+
+ if (!patternValue) {
+ alert('Please enter a pattern value');
+ return false;
+ }
+
+ if (!action) {
+ alert('Please select an action');
+ return false;
+ }
+
+ // Validate pubkey format for pubkey rules
+ if ((ruleType === 'pubkey_whitelist' || ruleType === 'pubkey_blacklist') &&
+ patternValue.length !== 64) {
+ alert('Pubkey must be exactly 64 hex characters');
+ return false;
+ }
+
+ // Validate hex format for pubkey rules
+ if ((ruleType === 'pubkey_whitelist' || ruleType === 'pubkey_blacklist')) {
+ const hexPattern = /^[0-9a-fA-F]+$/;
+ if (!hexPattern.test(patternValue)) {
+ alert('Pubkey must contain only hex characters (0-9, a-f, A-F)');
+ return false;
+ }
+ }
+
+ return true;
+}
+
+// Save auth rule (add or update)
+async function saveAuthRule(event) {
+ event.preventDefault();
+
+ if (!validateAuthRuleForm()) return;
+
+ try {
+ const ruleData = {
+ rule_type: document.getElementById('authRuleType').value,
+ pattern_type: document.getElementById('authPatternType').value,
+ pattern_value: document.getElementById('authPatternValue').value.trim(),
+ action: document.getElementById('authRuleAction').value,
+ description: document.getElementById('authRuleDescription').value.trim() || null,
+ enabled: true
+ };
+
+ if (editingAuthRule) {
+ log(`Updating auth rule: ${ruleData.rule_type} - ${ruleData.pattern_value}`, 'INFO');
+
+ // TODO: Implement actual rule update via WebSocket kind 23456 event
+ // For now, just update local array
+ currentAuthRules[editingAuthRule.index] = { ...ruleData, id: editingAuthRule.id || Date.now() };
+
+ log('Auth rule updated (placeholder implementation)', 'INFO');
+ } else {
+ log(`Adding new auth rule: ${ruleData.rule_type} - ${ruleData.pattern_value}`, 'INFO');
+
+ // TODO: Implement actual rule creation via WebSocket kind 23456 event
+ // For now, just add to local array
+ currentAuthRules.push({ ...ruleData, id: Date.now() });
+
+ log('Auth rule added (placeholder implementation)', 'INFO');
}
- // Show edit auth rule form
- function editAuthRule(index) {
- if (index < 0 || index >= currentAuthRules.length) return;
+ displayAuthRules(currentAuthRules);
+ hideAuthRuleForm();
- const rule = currentAuthRules[index];
- editingAuthRule = { ...rule, index: index };
+ } catch (error) {
+ log(`Failed to save auth rule: ${error.message}`, 'ERROR');
+ }
+}
- if (authRuleFormTitle && authRuleForm) {
- authRuleFormTitle.textContent = 'Edit Auth Rule';
+// Update existing logout and showMainInterface functions to handle auth rules and NIP-17 DMs
+const originalLogout = logout;
+logout = async function () {
+ hideAuthRulesSection();
+ // Clear DM inbox and outbox on logout
+ if (dmInbox) {
+ dmInbox.innerHTML = '
tags for proper HTML display - const formattedMessage = message.replace(/\n/g, '
'); + // Use a default test pubkey if none provided + if (!testPubkey) { + testPubkey = 'abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890'; + logTestEvent('INFO', `Using default test pubkey: ${testPubkey}`, 'INFO'); + } - // Add pubkey display for received messages - let pubkeyDisplay = ''; - if (pubkey && direction === 'received') { - try { - const npub = window.NostrTools.nip19.npubEncode(pubkey); - pubkeyDisplay = ` (${npub})`; - } catch (error) { - console.error('Failed to encode pubkey to npub:', error); - } + if (!isLoggedIn || !userPubkey) { + logTestEvent('ERROR', 'Must be logged in to test admin API', 'ERROR'); + return; + } + + if (!relayPool) { + logTestEvent('ERROR', 'SimplePool connection not available', 'ERROR'); + return; + } + + try { + logTestEvent('INFO', `Testing Add Whitelist for pubkey: ${testPubkey.substring(0, 16)}...`, 'TEST'); + + // Create command array for adding whitelist rule + const command_array = `["whitelist", "pubkey", "${testPubkey}"]`; + + // Encrypt the command content using NIP-44 + const encrypted_content = await encryptForRelay(command_array); + if (!encrypted_content) { + throw new Error('Failed to encrypt whitelist command'); + } + + // Create kind 23456 admin event + const authEvent = { + kind: 23456, + pubkey: userPubkey, + created_at: Math.floor(Date.now() / 1000), + tags: [ + ["p", getRelayPubkey()] + ], + content: encrypted_content + }; + + // Sign the event + const signedEvent = await window.nostr.signEvent(authEvent); + if (!signedEvent || !signedEvent.sig) { + throw new Error('Event signing failed'); + } + + logTestEvent('SENT', `Add Whitelist event: ${JSON.stringify(signedEvent)}`, 'EVENT'); + + // Publish via SimplePool + const url = relayConnectionUrl.value.trim(); + const publishPromises = relayPool.publish([url], signedEvent); + + // Use Promise.allSettled to capture per-relay outcomes instead of Promise.any + const results = await Promise.allSettled(publishPromises); + + // Log detailed publish results for diagnostics + let successCount = 0; + results.forEach((result, index) => { + if (result.status === 'fulfilled') { + successCount++; + logTestEvent('INFO', `Test Post Event relay ${index} publish success`, 'PUBLISH'); + } else { + logTestEvent('ERROR', `Test Post Event relay ${index} publish failed: ${result.reason?.message || result.reason}`, 'PUBLISH'); + } + }); + + // Throw error if all relays failed + if (successCount === 0) { + const errorDetails = results.map((r, i) => `Relay ${i}: ${r.reason?.message || r.reason}`).join('; '); + throw new Error(`All relays rejected test post event. Details: ${errorDetails}`); + } + + logTestEvent('INFO', 'Add Whitelist command sent successfully', 'SUCCESS'); + + } catch (error) { + logTestEvent('ERROR', `Add Whitelist test failed: ${error.message}`, 'ERROR'); + } +} + +// Test: Config Query +async function testConfigQuery() { + if (!isLoggedIn || !userPubkey) { + logTestEvent('ERROR', 'Must be logged in to test admin API', 'ERROR'); + return; + } + + if (!relayPool) { + logTestEvent('ERROR', 'SimplePool connection not available', 'ERROR'); + return; + } + + try { + logTestEvent('INFO', 'Testing Config Query command...', 'TEST'); + + // Create command array for getting configuration + const command_array = '["config_query", "all"]'; + + // Encrypt the command content using NIP-44 + const encrypted_content = await encryptForRelay(command_array); + if (!encrypted_content) { + throw new Error('Failed to encrypt config query command'); + } + + // Create kind 23456 admin event + const configEvent = { + kind: 23456, + pubkey: userPubkey, + created_at: Math.floor(Date.now() / 1000), + tags: [ + ["p", getRelayPubkey()] + ], + content: encrypted_content + }; + + // Sign the event + const signedEvent = await window.nostr.signEvent(configEvent); + if (!signedEvent || !signedEvent.sig) { + throw new Error('Event signing failed'); + } + + logTestEvent('SENT', `Config Query event: ${JSON.stringify(signedEvent)}`, 'EVENT'); + + // Publish via SimplePool with detailed error diagnostics + const url = relayUrl.value.trim(); + const publishPromises = relayPool.publish([url], signedEvent); + + // Use Promise.allSettled to capture per-relay outcomes instead of Promise.any + const results = await Promise.allSettled(publishPromises); + + // Log detailed publish results for diagnostics + let successCount = 0; + results.forEach((result, index) => { + if (result.status === 'fulfilled') { + successCount++; + logTestEvent('INFO', `Test Config Query relay ${index} publish success`, 'PUBLISH'); + } else { + logTestEvent('ERROR', `Test Config Query relay ${index} publish failed: ${result.reason?.message || result.reason}`, 'PUBLISH'); + } + }); + + // Throw error if all relays failed + if (successCount === 0) { + const errorDetails = results.map((r, i) => `Relay ${i}: ${r.reason?.message || r.reason}`).join('; '); + throw new Error(`All relays rejected test config query event. Details: ${errorDetails}`); + } + + logTestEvent('INFO', 'Config Query command sent successfully', 'SUCCESS'); + + } catch (error) { + logTestEvent('ERROR', `Config Query test failed: ${error.message}`, 'ERROR'); + } +} + +// Test: Post Basic Event +async function testPostEvent() { + if (!isLoggedIn || !userPubkey) { + logTestEvent('ERROR', 'Must be logged in to test event posting', 'ERROR'); + return; + } + + if (!relayPool) { + logTestEvent('ERROR', 'SimplePool connection not available', 'ERROR'); + return; + } + + try { + logTestEvent('INFO', 'Testing basic event posting...', 'TEST'); + + // Create a simple kind 1 text note event + const testEvent = { + kind: 1, + pubkey: userPubkey, + created_at: Math.floor(Date.now() / 1000), + tags: [ + ["t", "test"], + ["client", "c-relay-admin-api"] + ], + content: `Test event from C-Relay Admin API at ${new Date().toISOString()}` + }; + + logTestEvent('SENT', `Test event (before signing): ${JSON.stringify(testEvent)}`, 'EVENT'); + + // Sign the event using NIP-07 + const signedEvent = await window.nostr.signEvent(testEvent); + if (!signedEvent || !signedEvent.sig) { + throw new Error('Event signing failed'); + } + + logTestEvent('SENT', `Signed test event: ${JSON.stringify(signedEvent)}`, 'EVENT'); + + // Publish via SimplePool to the same relay with detailed error diagnostics + const url = relayConnectionUrl.value.trim(); + logTestEvent('INFO', `Publishing to relay: ${url}`, 'INFO'); + + const publishPromises = relayPool.publish([url], signedEvent); + + // Use Promise.allSettled to capture per-relay outcomes instead of Promise.any + const results = await Promise.allSettled(publishPromises); + + // Log detailed publish results for diagnostics + let successCount = 0; + results.forEach((result, index) => { + if (result.status === 'fulfilled') { + successCount++; + logTestEvent('INFO', `Test Post Event relay ${index} publish success`, 'PUBLISH'); + } else { + logTestEvent('ERROR', `Test Post Event relay ${index} publish failed: ${result.reason?.message || result.reason}`, 'PUBLISH'); + } + }); + + // Throw error if all relays failed + if (successCount === 0) { + const errorDetails = results.map((r, i) => `Relay ${i}: ${r.reason?.message || r.reason}`).join('; '); + throw new Error(`All relays rejected test post event. Details: ${errorDetails}`); + } + + logTestEvent('INFO', 'Test event published successfully!', 'SUCCESS'); + logTestEvent('INFO', 'Check if the event appears in the subscription above...', 'INFO'); + + } catch (error) { + logTestEvent('ERROR', `Post Event test failed: ${error.message}`, 'ERROR'); + console.error('Post Event test error:', error); + } +} + +// Helper function to encrypt content for relay using NIP-44 +async function encryptForRelay(content) { + try { + logTestEvent('INFO', `Encrypting content: ${content}`, 'DEBUG'); + + // Get the relay public key for encryption + const relayPubkey = getRelayPubkey(); + + // Check if we have access to NIP-44 encryption via nostr-tools + if (!window.NostrTools || !window.NostrTools.nip44) { + throw new Error('NIP-44 encryption not available - nostr-tools library missing'); + } + + // Get user's private key for encryption + // We need to use the NIP-07 extension to get the private key + if (!window.nostr || !window.nostr.nip44) { + throw new Error('NIP-44 encryption not available via NIP-07 extension'); + } + + // Use NIP-07 extension's NIP-44 encrypt method + const encrypted_content = await window.nostr.nip44.encrypt(relayPubkey, content); + + if (!encrypted_content) { + throw new Error('NIP-44 encryption returned empty result'); + } + + logTestEvent('INFO', `Successfully encrypted content using NIP-44`, 'DEBUG'); + logTestEvent('INFO', `Encrypted content: ${encrypted_content.substring(0, 50)}...`, 'DEBUG'); + + return encrypted_content; + } catch (error) { + logTestEvent('ERROR', `NIP-44 encryption failed: ${error.message}`, 'ERROR'); + + // Fallback: Try using nostr-tools directly if NIP-07 fails + try { + logTestEvent('INFO', 'Attempting fallback encryption with nostr-tools...', 'DEBUG'); + + if (!window.NostrTools || !window.NostrTools.nip44) { + throw new Error('nostr-tools NIP-44 not available'); } - messageDiv.innerHTML = ` + // We need the user's private key, but we can't get it directly + // This is a security limitation - we should use NIP-07 + throw new Error('Cannot access private key for direct encryption - use NIP-07 extension'); + + } catch (fallbackError) { + logTestEvent('ERROR', `Fallback encryption failed: ${fallbackError.message}`, 'ERROR'); + return null; + } + } +} + +// Send NIP-17 Direct Message to relay using NIP-59 layering +async function sendNIP17DM() { + if (!isLoggedIn || !userPubkey) { + log('Must be logged in to send DM', 'ERROR'); + return; + } + + if (!isRelayConnected || !relayPubkey) { + log('Must be connected to relay to send DM', 'ERROR'); + return; + } + + const message = dmOutbox.value.trim(); + if (!message) { + log('Please enter a message to send', 'ERROR'); + return; + } + + // Capability checks + if (!window.nostr || !window.nostr.nip44 || !window.nostr.signEvent) { + log('NIP-17 DMs require a NIP-07 extension with NIP-44 support', 'ERROR'); + alert('NIP-17 DMs require a NIP-07 extension with NIP-44 support. Please install and configure a compatible extension.'); + return; + } + + if (!window.NostrTools || !window.NostrTools.generateSecretKey || !window.NostrTools.getPublicKey || !window.NostrTools.finalizeEvent) { + log('NostrTools library not available for ephemeral key operations', 'ERROR'); + alert('NostrTools library not available. Please ensure nostr.bundle.js is loaded.'); + return; + } + + try { + log(`Sending NIP-17 DM to relay: ${message.substring(0, 50)}...`, 'INFO'); + + // Step 1: Build unsigned rumor (kind 14) + const rumor = { + kind: 14, + pubkey: userPubkey, + created_at: Math.floor(Date.now() / 1000), // Canonical time for rumor + tags: [["p", relayPubkey]], + content: message + }; + // NOTE: Rumor remains unsigned per NIP-59 + + log('Rumor built (unsigned), creating seal...', 'INFO'); + + // Step 2: Create seal (kind 13) + const seal = { + kind: 13, + pubkey: userPubkey, + created_at: randomNow(), // Randomized to past for metadata protection + tags: [], // Empty tags per NIP-59 + content: await window.nostr.nip44.encrypt(relayPubkey, JSON.stringify(rumor)) + }; + + // Sign seal with long-term key + const signedSeal = await window.nostr.signEvent(seal); + if (!signedSeal || !signedSeal.sig) { + throw new Error('Failed to sign seal event'); + } + + log('Seal created and signed, creating gift wrap...', 'INFO'); + + // Step 3: Create gift wrap (kind 1059) with ephemeral key + const ephemeralPriv = window.NostrTools.generateSecretKey(); + const ephemeralPub = window.NostrTools.getPublicKey(ephemeralPriv); + + const giftWrap = { + kind: 1059, + pubkey: ephemeralPub, + created_at: randomNow(), // Randomized to past for metadata protection + tags: [["p", relayPubkey]], + content: await window.NostrTools.nip44.encrypt( + JSON.stringify(signedSeal), + window.NostrTools.nip44.getConversationKey(ephemeralPriv, relayPubkey) + ) + }; + + // Sign gift wrap with ephemeral key using finalizeEvent + const signedGiftWrap = window.NostrTools.finalizeEvent(giftWrap, ephemeralPriv); + if (!signedGiftWrap || !signedGiftWrap.sig) { + throw new Error('Failed to sign gift wrap event'); + } + + log('NIP-17 DM event created and signed with ephemeral key, publishing...', 'INFO'); + + // Publish via SimplePool + const url = relayConnectionUrl.value.trim(); + const publishPromises = relayPool.publish([url], signedGiftWrap); + + // Use Promise.allSettled to capture per-relay outcomes + const results = await Promise.allSettled(publishPromises); + + // Log detailed publish results + let successCount = 0; + results.forEach((result, index) => { + if (result.status === 'fulfilled') { + successCount++; + log(`✅ NIP-17 DM published successfully to relay ${index}`, 'INFO'); + } else { + log(`❌ NIP-17 DM failed on relay ${index}: ${result.reason?.message || result.reason}`, 'ERROR'); + } + }); + + if (successCount === 0) { + const errorDetails = results.map((r, i) => `Relay ${i}: ${r.reason?.message || r.reason}`).join('; '); + throw new Error(`All relays rejected NIP-17 DM event. Details: ${errorDetails}`); + } + + // Clear the outbox and show success + dmOutbox.value = ''; + log('NIP-17 DM sent successfully', 'INFO'); + + // Add to inbox for display + addMessageToInbox('sent', message, new Date().toLocaleString()); + + } catch (error) { + log(`Failed to send NIP-17 DM: ${error.message}`, 'ERROR'); + } +} + +// Add message to inbox display +function addMessageToInbox(direction, message, timestamp, pubkey = null) { + if (!dmInbox) return; + + const messageDiv = document.createElement('div'); + messageDiv.className = 'log-entry'; + + const directionColor = direction === 'sent' ? '#007bff' : '#28a745'; + + // Convert newlines to
tags for proper HTML display + const formattedMessage = message.replace(/\n/g, '
'); + + // Add pubkey display for received messages + let pubkeyDisplay = ''; + if (pubkey && direction === 'received') { + try { + const npub = window.NostrTools.nip19.npubEncode(pubkey); + pubkeyDisplay = ` (${npub})`; + } catch (error) { + console.error('Failed to encode pubkey to npub:', error); + } + } + + messageDiv.innerHTML = ` ${timestamp} [${direction.toUpperCase()}] ${formattedMessage}${pubkeyDisplay} `; - // Remove the "No messages received yet" placeholder if it exists - const placeholder = dmInbox.querySelector('.log-entry'); - if (placeholder && placeholder.textContent === 'No messages received yet.') { - dmInbox.innerHTML = ''; - } + // Remove the "No messages received yet" placeholder if it exists + const placeholder = dmInbox.querySelector('.log-entry'); + if (placeholder && placeholder.textContent === 'No messages received yet.') { + dmInbox.innerHTML = ''; + } - // Add new message at the top - dmInbox.insertBefore(messageDiv, dmInbox.firstChild); + // Add new message at the top + dmInbox.insertBefore(messageDiv, dmInbox.firstChild); - // Limit to last 50 messages - while (dmInbox.children.length > 50) { - dmInbox.removeChild(dmInbox.lastChild); - } + // Limit to last 50 messages + while (dmInbox.children.length > 50) { + dmInbox.removeChild(dmInbox.lastChild); + } +} + +// Helper function to get relay pubkey +function getRelayPubkey() { + // Use the dynamically fetched relay pubkey if available + if (relayPubkey && isRelayConnected) { + return relayPubkey; + } + + // Fallback to hardcoded value for testing/development + log('Warning: Using hardcoded relay pubkey. Please connect to relay first.', 'WARNING'); + return '4f355bdcb7cc0af728ef3cceb9615d90684bb5b2ca5f859ab0f0b704075871aa'; +} + +// Enhanced SimplePool message handler to capture test responses +function enhancePoolForTesting() { + // SimplePool handles message parsing automatically, so we just need to + // ensure our event handlers log appropriately. This is already done + // in the subscription onevent callback. + console.log('SimplePool enhanced for testing - automatic message handling enabled'); +} + +// Generate random test pubkey function +function generateRandomTestKey() { + // Generate 32 random bytes (64 hex characters) for a valid pubkey + const randomBytes = new Uint8Array(32); + crypto.getRandomValues(randomBytes); + + // Convert to hex string + const hexPubkey = Array.from(randomBytes) + .map(b => b.toString(16).padStart(2, '0')) + .join(''); + + // Set the generated key in the input field + const testPubkeyInput = document.getElementById('test-pubkey-input'); + if (testPubkeyInput) { + testPubkeyInput.value = hexPubkey; + logTestEvent('INFO', `Generated random test pubkey: ${hexPubkey.substring(0, 16)}...`, 'KEYGEN'); + } + + return hexPubkey; +} + +// ================================ +// DATABASE STATISTICS FUNCTIONS +// ================================ + +// Send restart command to restart the relay using Administrator API +async function sendRestartCommand() { + if (!isLoggedIn || !userPubkey) { + log('Must be logged in to restart relay', 'ERROR'); + return; + } + + if (!relayPool) { + log('SimplePool connection not available', 'ERROR'); + return; + } + + try { + log('Sending restart command to relay...', 'INFO'); + + // Create command array for restart + const command_array = ["system_command", "restart"]; + + // Encrypt the command array directly using NIP-44 + const encrypted_content = await encryptForRelay(JSON.stringify(command_array)); + if (!encrypted_content) { + throw new Error('Failed to encrypt command array'); } - // Helper function to get relay pubkey - function getRelayPubkey() { - // Use the dynamically fetched relay pubkey if available - if (relayPubkey && isRelayConnected) { - return relayPubkey; - } + // Create single kind 23456 admin event + const restartEvent = { + kind: 23456, + pubkey: userPubkey, + created_at: Math.floor(Date.now() / 1000), + tags: [["p", getRelayPubkey()]], + content: encrypted_content + }; - // Fallback to hardcoded value for testing/development - log('Warning: Using hardcoded relay pubkey. Please connect to relay first.', 'WARNING'); - return '4f355bdcb7cc0af728ef3cceb9615d90684bb5b2ca5f859ab0f0b704075871aa'; + // Sign the event + const signedEvent = await window.nostr.signEvent(restartEvent); + if (!signedEvent || !signedEvent.sig) { + throw new Error('Event signing failed'); } - // Enhanced SimplePool message handler to capture test responses - function enhancePoolForTesting() { - // SimplePool handles message parsing automatically, so we just need to - // ensure our event handlers log appropriately. This is already done - // in the subscription onevent callback. - console.log('SimplePool enhanced for testing - automatic message handling enabled'); + // Publish via SimplePool + const url = relayConnectionUrl.value.trim(); + const publishPromises = relayPool.publish([url], signedEvent); + + // Use Promise.allSettled to capture per-relay outcomes + const results = await Promise.allSettled(publishPromises); + + // Check if any relay accepted the event + let successCount = 0; + results.forEach((result, index) => { + if (result.status === 'fulfilled') { + successCount++; + log(`Restart command published successfully to relay ${index}`, 'INFO'); + } else { + log(`Restart command failed on relay ${index}: ${result.reason?.message || result.reason}`, 'ERROR'); + } + }); + + if (successCount === 0) { + const errorDetails = results.map((r, i) => `Relay ${i}: ${r.reason?.message || r.reason}`).join('; '); + throw new Error(`All relays rejected restart command. Details: ${errorDetails}`); } - // Generate random test pubkey function - function generateRandomTestKey() { - // Generate 32 random bytes (64 hex characters) for a valid pubkey - const randomBytes = new Uint8Array(32); - crypto.getRandomValues(randomBytes); + log('Restart command sent successfully - relay should restart shortly...', 'INFO'); - // Convert to hex string - const hexPubkey = Array.from(randomBytes) - .map(b => b.toString(16).padStart(2, '0')) - .join(''); + // Update connection status to indicate restart is in progress + updateRelayConnectionStatus('connecting'); + relayConnectionStatus.textContent = 'RESTARTING...'; - // Set the generated key in the input field - const testPubkeyInput = document.getElementById('test-pubkey-input'); - if (testPubkeyInput) { - testPubkeyInput.value = hexPubkey; - logTestEvent('INFO', `Generated random test pubkey: ${hexPubkey.substring(0, 16)}...`, 'KEYGEN'); - } + // The relay will disconnect and need to be reconnected after restart + // This will be handled by the WebSocket disconnection event - return hexPubkey; + } catch (error) { + log(`Failed to send restart command: ${error.message}`, 'ERROR'); + updateRelayConnectionStatus('error'); + } +} + +// Send stats_query command to get database statistics using Administrator API (inner events) +async function sendStatsQuery() { + if (!isLoggedIn || !userPubkey) { + log('Must be logged in to query database statistics', 'ERROR'); + updateStatsStatus('error', 'Not logged in'); + return; + } + + if (!relayPool) { + log('SimplePool connection not available', 'ERROR'); + updateStatsStatus('error', 'No relay connection'); + return; + } + + try { + updateStatsStatus('loading', 'Querying database...'); + + // Create command array for stats query + const command_array = ["stats_query", "all"]; + + // Encrypt the command array directly using NIP-44 + const encrypted_content = await encryptForRelay(JSON.stringify(command_array)); + if (!encrypted_content) { + throw new Error('Failed to encrypt command array'); } - // ================================ - // DATABASE STATISTICS FUNCTIONS - // ================================ + // Create single kind 23456 admin event + const statsEvent = { + kind: 23456, + pubkey: userPubkey, + created_at: Math.floor(Date.now() / 1000), + tags: [["p", getRelayPubkey()]], + content: encrypted_content + }; - // Send restart command to restart the relay using Administrator API - async function sendRestartCommand() { - if (!isLoggedIn || !userPubkey) { - log('Must be logged in to restart relay', 'ERROR'); - return; - } - - if (!relayPool) { - log('SimplePool connection not available', 'ERROR'); - return; - } - - try { - log('Sending restart command to relay...', 'INFO'); - - // Create command array for restart - const command_array = ["system_command", "restart"]; - - // Encrypt the command array directly using NIP-44 - const encrypted_content = await encryptForRelay(JSON.stringify(command_array)); - if (!encrypted_content) { - throw new Error('Failed to encrypt command array'); - } - - // Create single kind 23456 admin event - const restartEvent = { - kind: 23456, - pubkey: userPubkey, - created_at: Math.floor(Date.now() / 1000), - tags: [["p", getRelayPubkey()]], - content: encrypted_content - }; - - // Sign the event - const signedEvent = await window.nostr.signEvent(restartEvent); - if (!signedEvent || !signedEvent.sig) { - throw new Error('Event signing failed'); - } - - // Publish via SimplePool - const url = relayConnectionUrl.value.trim(); - const publishPromises = relayPool.publish([url], signedEvent); - - // Use Promise.allSettled to capture per-relay outcomes - const results = await Promise.allSettled(publishPromises); - - // Check if any relay accepted the event - let successCount = 0; - results.forEach((result, index) => { - if (result.status === 'fulfilled') { - successCount++; - log(`Restart command published successfully to relay ${index}`, 'INFO'); - } else { - log(`Restart command failed on relay ${index}: ${result.reason?.message || result.reason}`, 'ERROR'); - } - }); - - if (successCount === 0) { - const errorDetails = results.map((r, i) => `Relay ${i}: ${r.reason?.message || r.reason}`).join('; '); - throw new Error(`All relays rejected restart command. Details: ${errorDetails}`); - } - - log('Restart command sent successfully - relay should restart shortly...', 'INFO'); - - // Update connection status to indicate restart is in progress - updateRelayConnectionStatus('connecting'); - relayConnectionStatus.textContent = 'RESTARTING...'; - - // The relay will disconnect and need to be reconnected after restart - // This will be handled by the WebSocket disconnection event - - } catch (error) { - log(`Failed to send restart command: ${error.message}`, 'ERROR'); - updateRelayConnectionStatus('error'); - } + // Sign the event + const signedEvent = await window.nostr.signEvent(statsEvent); + if (!signedEvent || !signedEvent.sig) { + throw new Error('Event signing failed'); } - // Send stats_query command to get database statistics using Administrator API (inner events) - async function sendStatsQuery() { - if (!isLoggedIn || !userPubkey) { - log('Must be logged in to query database statistics', 'ERROR'); - updateStatsStatus('error', 'Not logged in'); - return; + log('Sending stats query command...', 'INFO'); + + // Publish via SimplePool + const url = relayConnectionUrl.value.trim(); + const publishPromises = relayPool.publish([url], signedEvent); + + // Use Promise.allSettled to capture per-relay outcomes + const results = await Promise.allSettled(publishPromises); + + // Check if any relay accepted the event + let successCount = 0; + results.forEach((result, index) => { + if (result.status === 'fulfilled') { + successCount++; + log(`Stats query published successfully to relay ${index}`, 'INFO'); + } else { + log(`Stats query failed on relay ${index}: ${result.reason?.message || result.reason}`, 'ERROR'); } + }); - if (!relayPool) { - log('SimplePool connection not available', 'ERROR'); - updateStatsStatus('error', 'No relay connection'); - return; - } - - try { - updateStatsStatus('loading', 'Querying database...'); - - // Create command array for stats query - const command_array = ["stats_query", "all"]; - - // Encrypt the command array directly using NIP-44 - const encrypted_content = await encryptForRelay(JSON.stringify(command_array)); - if (!encrypted_content) { - throw new Error('Failed to encrypt command array'); - } - - // Create single kind 23456 admin event - const statsEvent = { - kind: 23456, - pubkey: userPubkey, - created_at: Math.floor(Date.now() / 1000), - tags: [["p", getRelayPubkey()]], - content: encrypted_content - }; - - // Sign the event - const signedEvent = await window.nostr.signEvent(statsEvent); - if (!signedEvent || !signedEvent.sig) { - throw new Error('Event signing failed'); - } - - log('Sending stats query command...', 'INFO'); - - // Publish via SimplePool - const url = relayConnectionUrl.value.trim(); - const publishPromises = relayPool.publish([url], signedEvent); - - // Use Promise.allSettled to capture per-relay outcomes - const results = await Promise.allSettled(publishPromises); - - // Check if any relay accepted the event - let successCount = 0; - results.forEach((result, index) => { - if (result.status === 'fulfilled') { - successCount++; - log(`Stats query published successfully to relay ${index}`, 'INFO'); - } else { - log(`Stats query failed on relay ${index}: ${result.reason?.message || result.reason}`, 'ERROR'); - } - }); - - if (successCount === 0) { - const errorDetails = results.map((r, i) => `Relay ${i}: ${r.reason?.message || r.reason}`).join('; '); - throw new Error(`All relays rejected stats query event. Details: ${errorDetails}`); - } - - log('Stats query command sent successfully - waiting for response...', 'INFO'); - updateStatsStatus('waiting', 'Waiting for response...'); - - } catch (error) { - log(`Failed to send stats query: ${error.message}`, 'ERROR'); - updateStatsStatus('error', error.message); - } + if (successCount === 0) { + const errorDetails = results.map((r, i) => `Relay ${i}: ${r.reason?.message || r.reason}`).join('; '); + throw new Error(`All relays rejected stats query event. Details: ${errorDetails}`); } - // Handle stats_query response and populate tables - function handleStatsQueryResponse(responseData) { - try { - log('Processing stats query response...', 'INFO'); - console.log('Stats response data:', responseData); + log('Stats query command sent successfully - waiting for response...', 'INFO'); + updateStatsStatus('waiting', 'Waiting for response...'); - if (responseData.query_type !== 'stats_query') { - log('Ignoring non-stats response', 'WARNING'); - return; - } + } catch (error) { + log(`Failed to send stats query: ${error.message}`, 'ERROR'); + updateStatsStatus('error', error.message); + } +} - // Populate overview table - populateStatsOverview(responseData); +// Handle stats_query response and populate tables +function handleStatsQueryResponse(responseData) { + try { + log('Processing stats query response...', 'INFO'); + console.log('Stats response data:', responseData); - // Populate event kinds table - populateStatsKinds(responseData); - - // Populate time-based statistics - populateStatsTime(responseData); - - // Populate top pubkeys table - populateStatsPubkeys(responseData); - - updateStatsStatus('loaded'); - log('Database statistics updated successfully', 'INFO'); - - } catch (error) { - log(`Error processing stats response: ${error.message}`, 'ERROR'); - updateStatsStatus('error', 'Failed to process response'); - } + if (responseData.query_type !== 'stats_query') { + log('Ignoring non-stats response', 'WARNING'); + return; } - // Populate database overview table - function populateStatsOverview(data) { - if (!data) return; + // Populate overview table + populateStatsOverview(responseData); - // Update individual cells - const dbSize = document.getElementById('db-size'); - const totalEvents = document.getElementById('total-events'); - const oldestEvent = document.getElementById('oldest-event'); - const newestEvent = document.getElementById('newest-event'); + // Populate event kinds table + populateStatsKinds(responseData); - if (dbSize) dbSize.textContent = data.database_size_bytes ? formatFileSize(data.database_size_bytes) : '-'; - if (totalEvents) totalEvents.textContent = data.total_events || '-'; - if (oldestEvent) oldestEvent.textContent = data.database_created_at ? formatTimestamp(data.database_created_at) : '-'; - if (newestEvent) newestEvent.textContent = data.latest_event_at ? formatTimestamp(data.latest_event_at) : '-'; - } + // Populate time-based statistics + populateStatsTime(responseData); - // Populate event kinds distribution table - function populateStatsKinds(data) { - const tableBody = document.getElementById('stats-kinds-table-body'); - if (!tableBody || !data.event_kinds) return; + // Populate top pubkeys table + populateStatsPubkeys(responseData); - tableBody.innerHTML = ''; + updateStatsStatus('loaded'); + log('Database statistics updated successfully', 'INFO'); - if (data.event_kinds.length === 0) { - const row = document.createElement('tr'); - row.innerHTML = 'No event data ';
- tableBody.appendChild(row);
- return;
- }
+ } catch (error) {
+ log(`Error processing stats response: ${error.message}`, 'ERROR');
+ updateStatsStatus('error', 'Failed to process response');
+ }
+}
- data.event_kinds.forEach(kind => {
- const row = document.createElement('tr');
- row.innerHTML = `
+// Populate database overview table
+function populateStatsOverview(data) {
+ if (!data) return;
+
+ // Update individual cells with flash animation for changed values
+ updateStatsCell('db-size', data.database_size_bytes ? formatFileSize(data.database_size_bytes) : '-');
+ updateStatsCell('total-events', data.total_events || '-');
+ updateStatsCell('oldest-event', data.database_created_at ? formatTimestamp(data.database_created_at) : '-');
+ updateStatsCell('newest-event', data.latest_event_at ? formatTimestamp(data.latest_event_at) : '-');
+}
+
+// Populate event kinds distribution table
+function populateStatsKinds(data) {
+ const tableBody = document.getElementById('stats-kinds-table-body');
+ if (!tableBody || !data.event_kinds) return;
+
+ tableBody.innerHTML = '';
+
+ if (data.event_kinds.length === 0) {
+ const row = document.createElement('tr');
+ row.innerHTML = 'No event data ';
+ tableBody.appendChild(row);
+ return;
+ }
+
+ data.event_kinds.forEach(kind => {
+ const row = document.createElement('tr');
+ row.innerHTML = `
${kind.kind}
${kind.count}
${kind.percentage}%
`;
- tableBody.appendChild(row);
- });
- }
+ tableBody.appendChild(row);
+ });
+}
- // Populate time-based statistics table
- function populateStatsTime(data) {
- if (!data) return;
+// Populate time-based statistics table
+function populateStatsTime(data) {
+ if (!data) return;
- const events24h = document.getElementById('events-24h');
- const events7d = document.getElementById('events-7d');
- const events30d = document.getElementById('events-30d');
+ // Access the nested time_stats object from backend response
+ const timeStats = data.time_stats || {};
- // Access the nested time_stats object from backend response
- const timeStats = data.time_stats || {};
+ // Update cells with flash animation for changed values
+ updateStatsCell('events-24h', timeStats.last_24h || '0');
+ updateStatsCell('events-7d', timeStats.last_7d || '0');
+ updateStatsCell('events-30d', timeStats.last_30d || '0');
+}
- if (events24h) events24h.textContent = timeStats.last_24h || '0';
- if (events7d) events7d.textContent = timeStats.last_7d || '0';
- if (events30d) events30d.textContent = timeStats.last_30d || '0';
- }
+// Populate top pubkeys table
+function populateStatsPubkeys(data) {
+ const tableBody = document.getElementById('stats-pubkeys-table-body');
+ if (!tableBody || !data.top_pubkeys) return;
- // Populate top pubkeys table
- function populateStatsPubkeys(data) {
- const tableBody = document.getElementById('stats-pubkeys-table-body');
- if (!tableBody || !data.top_pubkeys) return;
+ tableBody.innerHTML = '';
- tableBody.innerHTML = '';
+ if (data.top_pubkeys.length === 0) {
+ const row = document.createElement('tr');
+ row.innerHTML = 'No pubkey data ';
+ tableBody.appendChild(row);
+ return;
+ }
- if (data.top_pubkeys.length === 0) {
- const row = document.createElement('tr');
- row.innerHTML = 'No pubkey data ';
- tableBody.appendChild(row);
- return;
+ data.top_pubkeys.forEach((pubkey, index) => {
+ const row = document.createElement('tr');
+ // Convert hex pubkey to npub for display
+ let displayPubkey = pubkey.pubkey || '-';
+ let npubLink = displayPubkey;
+ try {
+ if (pubkey.pubkey && pubkey.pubkey.length === 64 && /^[0-9a-fA-F]+$/.test(pubkey.pubkey)) {
+ const npub = window.NostrTools.nip19.npubEncode(pubkey.pubkey);
+ displayPubkey = npub;
+ npubLink = `${npub}`;
}
-
- data.top_pubkeys.forEach((pubkey, index) => {
- const row = document.createElement('tr');
- const npub = pubkey.pubkey ? window.NostrTools.nip19.npubEncode(pubkey.pubkey) : '-';
- row.innerHTML = `
+ } catch (error) {
+ console.log('Failed to encode pubkey to npub:', error.message);
+ }
+ row.innerHTML = `
${index + 1}
- ${npub}
+ ${npubLink}
${pubkey.event_count}
${pubkey.percentage}%
`;
- tableBody.appendChild(row);
- });
- }
+ tableBody.appendChild(row);
+ });
+}
- // Update statistics status indicator (disabled - status display removed)
- function updateStatsStatus(status, message = '') {
- // Status display has been removed from the UI
- return;
- }
+// Update statistics status indicator (disabled - status display removed)
+function updateStatsStatus(status, message = '') {
+ // Status display has been removed from the UI
+ return;
+}
- // Utility function to format file size
- function formatFileSize(bytes) {
- if (!bytes || bytes === 0) return '0 B';
- const k = 1024;
- const sizes = ['B', 'KB', 'MB', 'GB'];
- const i = Math.floor(Math.log(bytes) / Math.log(k));
- return parseFloat((bytes / Math.pow(k, i)).toFixed(1)) + ' ' + sizes[i];
- }
+// Utility function to format file size
+function formatFileSize(bytes) {
+ if (!bytes || bytes === 0) return '0 B';
+ const k = 1024;
+ const sizes = ['B', 'KB', 'MB', 'GB'];
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
+ return parseFloat((bytes / Math.pow(k, i)).toFixed(1)) + ' ' + sizes[i];
+}
- // Utility function to format timestamp
- function formatTimestamp(timestamp) {
- if (!timestamp) return '-';
- const date = new Date(timestamp * 1000);
- return date.toLocaleString();
- }
+// Utility function to format timestamp
+function formatTimestamp(timestamp) {
+ if (!timestamp) return '-';
+ const date = new Date(timestamp * 1000);
+ return date.toLocaleString();
+}
- // Event handlers for test buttons
- document.addEventListener('DOMContentLoaded', () => {
- // Test button event handlers
- const testGetAuthRulesBtn = document.getElementById('test-get-auth-rules-btn');
- const testClearAuthRulesBtn = document.getElementById('test-clear-auth-rules-btn');
- const testAddBlacklistBtn = document.getElementById('test-add-blacklist-btn');
- const testAddWhitelistBtn = document.getElementById('test-add-whitelist-btn');
- const testConfigQueryBtn = document.getElementById('test-config-query-btn');
- const testPostEventBtn = document.getElementById('test-post-event-btn');
- const clearTestLogBtn = document.getElementById('clear-test-log-btn');
- const generateTestKeyBtn = document.getElementById('generate-test-key-btn');
+// Update statistics cell with flash animation if value changed
+function updateStatsCell(cellId, newValue) {
+ const cell = document.getElementById(cellId);
+ if (!cell) return;
- if (testGetAuthRulesBtn) {
- testGetAuthRulesBtn.addEventListener('click', testGetAuthRules);
- }
+ const currentValue = cell.textContent;
+ cell.textContent = newValue;
- if (testClearAuthRulesBtn) {
- testClearAuthRulesBtn.addEventListener('click', testClearAuthRules);
- }
+ // Flash if value changed
+ if (currentValue !== newValue && currentValue !== '-') {
+ cell.classList.add('flash-value');
+ setTimeout(() => {
+ cell.classList.remove('flash-value');
+ }, 500);
+ }
+}
- if (testAddBlacklistBtn) {
- testAddBlacklistBtn.addEventListener('click', testAddBlacklist);
- }
+// Start auto-refreshing database statistics every 10 seconds
+function startStatsAutoRefresh() {
+ // Clear any existing interval
+ stopStatsAutoRefresh();
- if (testAddWhitelistBtn) {
- testAddWhitelistBtn.addEventListener('click', testAddWhitelist);
- }
+ // Reset countdown
+ countdownSeconds = 10;
+ updateCountdownDisplay();
- if (testConfigQueryBtn) {
- testConfigQueryBtn.addEventListener('click', testConfigQuery);
- }
+ // Start countdown interval - update every second
+ countdownInterval = setInterval(() => {
+ countdownSeconds--;
+ updateCountdownDisplay();
- if (testPostEventBtn) {
- testPostEventBtn.addEventListener('click', testPostEvent);
- }
-
- if (clearTestLogBtn) {
- clearTestLogBtn.addEventListener('click', () => {
- const testLog = document.getElementById('test-event-log');
- if (testLog) {
- testLog.innerHTML = '
+
+int main() {
+ debug_init(DEBUG_LEVEL_INFO);
+ DEBUG_INFO("Application started");
+ DEBUG_ERROR("Critical error: %s", error_msg);
+ return 0;
+}
+```
+
+### 2. Version Utilities (`version.h`, `version.c`)
+
+**Purpose**: Reusable versioning system for C projects using git tags.
+
+**Features**:
+- Automatic version extraction from git tags
+- Semantic versioning support (MAJOR.MINOR.PATCH)
+- Version comparison functions
+- Header file generation for embedding version info
+- Build number tracking
+
+**API**:
+```c
+// Version structure
+typedef struct {
+ int major;
+ int minor;
+ int patch;
+ char* git_hash;
+ char* build_date;
+} version_info_t;
+
+// Get version from git
+int version_get_from_git(version_info_t* version);
+
+// Generate version header file
+int version_generate_header(const char* output_path, const char* prefix);
+
+// Compare versions
+int version_compare(version_info_t* v1, version_info_t* v2);
+
+// Format version string
+char* version_to_string(version_info_t* version);
+```
+
+**Usage Example**:
+```c
+#include
+
+// In your build system:
+version_generate_header("src/version.h", "MY_APP");
+
+// In your code:
+#include "version.h"
+printf("Version: %s\n", MY_APP_VERSION);
+```
+
+**Integration with Projects**:
+```bash
+# In project Makefile
+version.h:
+ c_utils_lib/bin/generate_version src/version.h MY_PROJECT
+```
+
+## Build System
+
+### Static Library Output
+
+```
+libc_utils.a # Static library for linking
+```
+
+### Build Targets
+
+```bash
+make # Build static library
+make examples # Build examples
+make test # Run tests
+make install # Install to system (optional)
+make clean # Clean build artifacts
+```
+
+### Build Script (`build.sh`)
+
+```bash
+#!/bin/bash
+# Simplified build script similar to nostr_core_lib
+
+case "$1" in
+ lib|"")
+ make
+ ;;
+ examples)
+ make examples
+ ;;
+ test)
+ make test
+ ;;
+ clean)
+ make clean
+ ;;
+ install)
+ make install
+ ;;
+ *)
+ echo "Usage: ./build.sh [lib|examples|test|clean|install]"
+ exit 1
+ ;;
+esac
+```
+
+## Versioning System Design
+
+### How It Works
+
+1. **Git Tags as Source of Truth**
+ - Version tags: `v0.1.0`, `v0.2.0`, etc.
+ - Follows semantic versioning
+
+2. **Automatic Header Generation**
+ - Script reads git tags
+ - Generates header with version macros
+ - Includes build date and git hash
+
+3. **Reusable Across Projects**
+ - Each project calls `version_generate_header()`
+ - Customizable prefix (e.g., `C_RELAY_VERSION`, `NOSTR_CORE_VERSION`)
+ - No hardcoded version numbers in source
+
+### Example Generated Header
+
+```c
+// Auto-generated by c_utils_lib version system
+#ifndef MY_PROJECT_VERSION_H
+#define MY_PROJECT_VERSION_H
+
+#define MY_PROJECT_VERSION "v0.1.0"
+#define MY_PROJECT_VERSION_MAJOR 0
+#define MY_PROJECT_VERSION_MINOR 1
+#define MY_PROJECT_VERSION_PATCH 0
+#define MY_PROJECT_GIT_HASH "a1b2c3d"
+#define MY_PROJECT_BUILD_DATE "2025-10-15"
+
+#endif
+```
+
+### Integration Pattern
+
+```makefile
+# In consuming project's Makefile
+VERSION_SCRIPT = c_utils_lib/bin/generate_version
+
+src/version.h: .git/refs/tags/*
+ $(VERSION_SCRIPT) src/version.h MY_PROJECT
+
+my_app: src/version.h src/main.c
+ $(CC) src/main.c -o my_app -Ic_utils_lib/include -Lc_utils_lib -lc_utils
+```
+
+## Future Utilities (Roadmap)
+
+### String Utilities (`string_utils.h`)
+- Safe string operations (bounds checking)
+- String trimming, splitting, joining
+- Case conversion
+- Pattern matching helpers
+
+### Memory Utilities (`memory_utils.h`)
+- Safe allocation wrappers
+- Memory pool management
+- Leak detection helpers (debug builds)
+- Arena allocators
+
+### Configuration Utilities (`config_utils.h`)
+- INI file parsing
+- JSON configuration (using cJSON)
+- Environment variable helpers
+- Command-line argument parsing
+
+### File Utilities (`file_utils.h`)
+- Safe file operations
+- Directory traversal
+- Path manipulation
+- File watching (inotify wrapper)
+
+### Time Utilities (`time_utils.h`)
+- Timestamp formatting
+- Duration calculations
+- Timer utilities
+- Rate limiting helpers
+
+## Integration Guide
+
+### As Git Submodule
+
+```bash
+# In your project
+git submodule add https://github.com/yourusername/c_utils_lib.git
+git submodule update --init --recursive
+
+# Build the library
+cd c_utils_lib && ./build.sh lib && cd ..
+
+# Update your Makefile
+INCLUDES += -Ic_utils_lib/include
+LIBS += -Lc_utils_lib -lc_utils
+```
+
+### In Your Makefile
+
+```makefile
+# Check if c_utils_lib is built
+c_utils_lib/libc_utils.a:
+ cd c_utils_lib && ./build.sh lib
+
+# Link against it
+my_app: c_utils_lib/libc_utils.a src/main.c
+ $(CC) src/main.c -o my_app \
+ -Ic_utils_lib/include \
+ -Lc_utils_lib -lc_utils
+```
+
+### In Your Code
+
+```c
+// Option 1: Include everything
+#include
+
+// Option 2: Include specific utilities
+#include
+#include
+
+int main() {
+ debug_init(DEBUG_LEVEL_INFO);
+ DEBUG_INFO("Starting application version %s", MY_APP_VERSION);
+ return 0;
+}
+```
+
+## Migration Plan for c-relay
+
+### Phase 1: Extract Debug System
+1. Create `c_utils_lib` repository
+2. Move [`debug.c`](../src/debug.c) and [`debug.h`](../src/debug.h)
+3. Create build system
+4. Add basic tests
+
+### Phase 2: Add Versioning System
+1. Extract version generation logic from c-relay
+2. Create reusable version utilities
+3. Update c-relay to use new system
+4. Update nostr_core_lib to use new system
+
+### Phase 3: Add as Submodule
+1. Add `c_utils_lib` as submodule to c-relay
+2. Update c-relay Makefile
+3. Update includes in c-relay source files
+4. Remove old debug files from c-relay
+
+### Phase 4: Documentation & Examples
+1. Create comprehensive README
+2. Add usage examples
+3. Write integration guide
+4. Document API
+
+## Benefits
+
+### For c-relay
+- Cleaner separation of concerns
+- Reusable utilities across projects
+- Easier to maintain and test
+- Consistent logging across codebase
+
+### For Learning C
+- Real-world utility implementations
+- Best practices examples
+- Modular design patterns
+- Build system examples
+
+### For Future Projects
+- Drop-in utility library
+- Proven, tested code
+- Consistent patterns
+- Time savings
+
+## Testing Strategy
+
+### Unit Tests
+- Test each utility independently
+- Mock external dependencies
+- Edge case coverage
+- Memory leak detection (valgrind)
+
+### Integration Tests
+- Test with real projects (c-relay, nostr_core_lib)
+- Cross-platform testing
+- Performance benchmarks
+
+### Continuous Integration
+- GitHub Actions for automated testing
+- Multiple compiler versions (gcc, clang)
+- Multiple platforms (Linux, macOS)
+- Static analysis (cppcheck, clang-tidy)
+
+## Documentation Standards
+
+### Code Documentation
+- Doxygen-style comments
+- Function purpose and parameters
+- Return value descriptions
+- Usage examples in comments
+
+### API Documentation
+- Complete API reference in `docs/API.md`
+- Usage examples for each function
+- Common patterns and best practices
+- Migration guides
+
+### Learning Resources
+- Detailed explanations of implementations
+- Links to relevant C standards
+- Common pitfalls and how to avoid them
+- Performance considerations
+
+## License
+
+MIT License - permissive and suitable for learning and commercial use.
+
+## Version History
+
+- **v0.1.0** (Planned)
+ - Initial release
+ - Debug system
+ - Version utilities
+ - Basic documentation
+
+- **v0.2.0** (Future)
+ - String utilities
+ - Memory utilities
+ - Enhanced documentation
+
+- **v0.3.0** (Future)
+ - Configuration utilities
+ - File utilities
+ - Time utilities
+
+## Success Criteria
+
+1. ✅ Successfully integrated into c-relay
+2. ✅ Successfully integrated into nostr_core_lib
+3. ✅ All tests passing
+4. ✅ Documentation complete
+5. ✅ Examples working
+6. ✅ Zero external dependencies (except standard library)
+7. ✅ Cross-platform compatibility verified
+
+## Next Steps
+
+1. Create repository structure
+2. Implement debug system
+3. Implement version utilities
+4. Create build system
+5. Write tests
+6. Create documentation
+7. Integrate into c-relay
+8. Publish to GitHub
+
+---
+
+**Note**: This is a living document. Update as the library evolves and new utilities are added.
\ No newline at end of file
diff --git a/docs/c_utils_lib_implementation_plan.md b/docs/c_utils_lib_implementation_plan.md
new file mode 100644
index 0000000..2c571e3
--- /dev/null
+++ b/docs/c_utils_lib_implementation_plan.md
@@ -0,0 +1,621 @@
+# c_utils_lib Implementation Plan
+
+## Overview
+
+This document provides a step-by-step implementation plan for creating the `c_utils_lib` library and integrating it into the c-relay project.
+
+## Phase 1: Repository Setup & Structure
+
+### Step 1.1: Create Repository Structure
+
+**Location**: Create outside c-relay project (sibling directory)
+
+```bash
+# Create directory structure
+mkdir -p c_utils_lib/{include,src,examples,tests,docs,bin}
+cd c_utils_lib
+
+# Create subdirectories
+mkdir -p include/c_utils
+mkdir -p tests/results
+```
+
+### Step 1.2: Initialize Git Repository
+
+```bash
+cd c_utils_lib
+git init
+git branch -M main
+```
+
+### Step 1.3: Create Core Files
+
+**Files to create**:
+1. `README.md` - Main documentation
+2. `LICENSE` - MIT License
+3. `VERSION` - Version file (v0.1.0)
+4. `.gitignore` - Git ignore rules
+5. `Makefile` - Build system
+6. `build.sh` - Build script
+
+## Phase 2: Debug System Implementation
+
+### Step 2.1: Move Debug Files
+
+**Source files** (from c-relay):
+- `src/debug.c` → `c_utils_lib/src/debug.c`
+- `src/debug.h` → `c_utils_lib/include/c_utils/debug.h`
+
+**Modifications needed**:
+1. Update header guard in `debug.h`:
+ ```c
+ #ifndef C_UTILS_DEBUG_H
+ #define C_UTILS_DEBUG_H
+ ```
+
+2. No namespace changes needed (keep simple API)
+
+3. Add header documentation:
+ ```c
+ /**
+ * @file debug.h
+ * @brief Debug and logging system with configurable verbosity levels
+ *
+ * Provides a simple, efficient logging system with 5 levels:
+ * - ERROR: Critical errors
+ * - WARN: Warnings
+ * - INFO: Informational messages
+ * - DEBUG: Debug messages
+ * - TRACE: Detailed trace with file:line info
+ */
+ ```
+
+### Step 2.2: Create Main Header
+
+**File**: `include/c_utils/c_utils.h`
+
+```c
+#ifndef C_UTILS_H
+#define C_UTILS_H
+
+/**
+ * @file c_utils.h
+ * @brief Main header for c_utils_lib - includes all utilities
+ *
+ * Include this header to access all c_utils_lib functionality.
+ * Alternatively, include specific headers for modular usage.
+ */
+
+// Version information
+#define C_UTILS_VERSION "v0.1.0"
+#define C_UTILS_VERSION_MAJOR 0
+#define C_UTILS_VERSION_MINOR 1
+#define C_UTILS_VERSION_PATCH 0
+
+// Include all utilities
+#include "debug.h"
+#include "version.h"
+
+#endif /* C_UTILS_H */
+```
+
+## Phase 3: Version Utilities Implementation
+
+### Step 3.1: Design Version API
+
+**File**: `include/c_utils/version.h`
+
+```c
+#ifndef C_UTILS_VERSION_H
+#define C_UTILS_VERSION_H
+
+#include
+
+/**
+ * @brief Version information structure
+ */
+typedef struct {
+ int major;
+ int minor;
+ int patch;
+ char git_hash[41]; // SHA-1 hash (40 chars + null)
+ char build_date[32]; // ISO 8601 format
+ char version_string[64]; // "vX.Y.Z" format
+} version_info_t;
+
+/**
+ * @brief Extract version from git tags
+ * @param version Output version structure
+ * @return 0 on success, -1 on error
+ */
+int version_get_from_git(version_info_t* version);
+
+/**
+ * @brief Generate version header file for a project
+ * @param output_path Path to output header file
+ * @param prefix Prefix for macros (e.g., "MY_APP")
+ * @return 0 on success, -1 on error
+ */
+int version_generate_header(const char* output_path, const char* prefix);
+
+/**
+ * @brief Compare two versions
+ * @return -1 if v1 < v2, 0 if equal, 1 if v1 > v2
+ */
+int version_compare(const version_info_t* v1, const version_info_t* v2);
+
+/**
+ * @brief Format version as string
+ * @param version Version structure
+ * @param buffer Output buffer
+ * @param buffer_size Size of output buffer
+ * @return Number of characters written
+ */
+int version_to_string(const version_info_t* version, char* buffer, size_t buffer_size);
+
+#endif /* C_UTILS_VERSION_H */
+```
+
+### Step 3.2: Implement Version Utilities
+
+**File**: `src/version.c`
+
+Key functions to implement:
+1. `version_get_from_git()` - Execute `git describe --tags` and parse
+2. `version_generate_header()` - Generate header file with macros
+3. `version_compare()` - Semantic version comparison
+4. `version_to_string()` - Format version string
+
+### Step 3.3: Create Version Generation Script
+
+**File**: `bin/generate_version`
+
+```bash
+#!/bin/bash
+# Generate version header for a project
+
+OUTPUT_FILE="$1"
+PREFIX="$2"
+
+if [ -z "$OUTPUT_FILE" ] || [ -z "$PREFIX" ]; then
+ echo "Usage: $0 "
+ exit 1
+fi
+
+# Get version from git
+if [ -d .git ]; then
+ VERSION=$(git describe --tags --always 2>/dev/null || echo "v0.0.0")
+ GIT_HASH=$(git rev-parse --short HEAD 2>/dev/null || echo "unknown")
+else
+ VERSION="v0.0.0"
+ GIT_HASH="unknown"
+fi
+
+# Parse version
+CLEAN_VERSION=$(echo "$VERSION" | sed 's/^v//' | cut -d- -f1)
+MAJOR=$(echo "$CLEAN_VERSION" | cut -d. -f1)
+MINOR=$(echo "$CLEAN_VERSION" | cut -d. -f2)
+PATCH=$(echo "$CLEAN_VERSION" | cut -d. -f3)
+BUILD_DATE=$(date -u +"%Y-%m-%d %H:%M:%S UTC")
+
+# Generate header
+cat > "$OUTPUT_FILE" << EOF
+/* Auto-generated by c_utils_lib version system */
+/* DO NOT EDIT - This file is automatically generated */
+
+#ifndef ${PREFIX}_VERSION_H
+#define ${PREFIX}_VERSION_H
+
+#define ${PREFIX}_VERSION "v${CLEAN_VERSION}"
+#define ${PREFIX}_VERSION_MAJOR ${MAJOR}
+#define ${PREFIX}_VERSION_MINOR ${MINOR}
+#define ${PREFIX}_VERSION_PATCH ${PATCH}
+#define ${PREFIX}_GIT_HASH "${GIT_HASH}"
+#define ${PREFIX}_BUILD_DATE "${BUILD_DATE}"
+
+#endif /* ${PREFIX}_VERSION_H */
+EOF
+
+echo "Generated $OUTPUT_FILE with version v${CLEAN_VERSION}"
+```
+
+## Phase 4: Build System
+
+### Step 4.1: Create Makefile
+
+**File**: `Makefile`
+
+```makefile
+# c_utils_lib Makefile
+
+CC = gcc
+AR = ar
+CFLAGS = -Wall -Wextra -std=c99 -O2 -g
+INCLUDES = -Iinclude
+
+# Directories
+SRC_DIR = src
+INCLUDE_DIR = include
+BUILD_DIR = build
+EXAMPLES_DIR = examples
+TESTS_DIR = tests
+
+# Source files
+SOURCES = $(wildcard $(SRC_DIR)/*.c)
+OBJECTS = $(SOURCES:$(SRC_DIR)/%.c=$(BUILD_DIR)/%.o)
+
+# Output library
+LIBRARY = libc_utils.a
+
+# Default target
+all: $(LIBRARY)
+
+# Create build directory
+$(BUILD_DIR):
+ mkdir -p $(BUILD_DIR)
+
+# Compile source files
+$(BUILD_DIR)/%.o: $(SRC_DIR)/%.c | $(BUILD_DIR)
+ $(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@
+
+# Create static library
+$(LIBRARY): $(OBJECTS)
+ $(AR) rcs $@ $^
+ @echo "Built $(LIBRARY)"
+
+# Build examples
+examples: $(LIBRARY)
+ $(MAKE) -C $(EXAMPLES_DIR)
+
+# Run tests
+test: $(LIBRARY)
+ $(MAKE) -C $(TESTS_DIR)
+ $(TESTS_DIR)/run_tests.sh
+
+# Install to system (optional)
+install: $(LIBRARY)
+ install -d /usr/local/lib
+ install -m 644 $(LIBRARY) /usr/local/lib/
+ install -d /usr/local/include/c_utils
+ install -m 644 $(INCLUDE_DIR)/c_utils/*.h /usr/local/include/c_utils/
+ @echo "Installed to /usr/local"
+
+# Uninstall from system
+uninstall:
+ rm -f /usr/local/lib/$(LIBRARY)
+ rm -rf /usr/local/include/c_utils
+ @echo "Uninstalled from /usr/local"
+
+# Clean build artifacts
+clean:
+ rm -rf $(BUILD_DIR) $(LIBRARY)
+ $(MAKE) -C $(EXAMPLES_DIR) clean 2>/dev/null || true
+ $(MAKE) -C $(TESTS_DIR) clean 2>/dev/null || true
+
+# Help
+help:
+ @echo "c_utils_lib Build System"
+ @echo ""
+ @echo "Targets:"
+ @echo " all Build static library (default)"
+ @echo " examples Build examples"
+ @echo " test Run tests"
+ @echo " install Install to /usr/local"
+ @echo " uninstall Remove from /usr/local"
+ @echo " clean Clean build artifacts"
+ @echo " help Show this help"
+
+.PHONY: all examples test install uninstall clean help
+```
+
+### Step 4.2: Create Build Script
+
+**File**: `build.sh`
+
+```bash
+#!/bin/bash
+# c_utils_lib build script
+
+set -e
+
+case "$1" in
+ lib|"")
+ echo "Building c_utils_lib..."
+ make
+ ;;
+ examples)
+ echo "Building examples..."
+ make examples
+ ;;
+ test)
+ echo "Running tests..."
+ make test
+ ;;
+ clean)
+ echo "Cleaning..."
+ make clean
+ ;;
+ install)
+ echo "Installing..."
+ make install
+ ;;
+ *)
+ echo "Usage: ./build.sh [lib|examples|test|clean|install]"
+ exit 1
+ ;;
+esac
+
+echo "Done!"
+```
+
+## Phase 5: Examples & Tests
+
+### Step 5.1: Create Debug Example
+
+**File**: `examples/debug_example.c`
+
+```c
+#include
+
+int main() {
+ // Initialize with INFO level
+ debug_init(DEBUG_LEVEL_INFO);
+
+ DEBUG_INFO("Application started");
+ DEBUG_WARN("This is a warning");
+ DEBUG_ERROR("This is an error");
+
+ // This won't print (level too high)
+ DEBUG_LOG("This debug message won't show");
+
+ // Change level to DEBUG
+ g_debug_level = DEBUG_LEVEL_DEBUG;
+ DEBUG_LOG("Now debug messages show");
+
+ // Change to TRACE to see file:line info
+ g_debug_level = DEBUG_LEVEL_TRACE;
+ DEBUG_TRACE("Trace with file:line information");
+
+ return 0;
+}
+```
+
+### Step 5.2: Create Version Example
+
+**File**: `examples/version_example.c`
+
+```c
+#include
+#include
+
+int main() {
+ version_info_t version;
+
+ // Get version from git
+ if (version_get_from_git(&version) == 0) {
+ char version_str[64];
+ version_to_string(&version, version_str, sizeof(version_str));
+
+ printf("Version: %s\n", version_str);
+ printf("Git Hash: %s\n", version.git_hash);
+ printf("Build Date: %s\n", version.build_date);
+ }
+
+ return 0;
+}
+```
+
+### Step 5.3: Create Test Suite
+
+**File**: `tests/test_debug.c`
+
+```c
+#include
+#include
+#include
+
+int test_debug_init() {
+ debug_init(DEBUG_LEVEL_INFO);
+ return (g_debug_level == DEBUG_LEVEL_INFO) ? 0 : -1;
+}
+
+int test_debug_levels() {
+ // Test that higher levels don't print at lower settings
+ debug_init(DEBUG_LEVEL_ERROR);
+ // Would need to capture stdout to verify
+ return 0;
+}
+
+int main() {
+ int failed = 0;
+
+ printf("Running debug tests...\n");
+
+ if (test_debug_init() != 0) {
+ printf("FAIL: test_debug_init\n");
+ failed++;
+ } else {
+ printf("PASS: test_debug_init\n");
+ }
+
+ if (test_debug_levels() != 0) {
+ printf("FAIL: test_debug_levels\n");
+ failed++;
+ } else {
+ printf("PASS: test_debug_levels\n");
+ }
+
+ return failed;
+}
+```
+
+## Phase 6: Documentation
+
+### Step 6.1: Create README.md
+
+Key sections:
+1. Overview and purpose
+2. Quick start guide
+3. Installation instructions
+4. Usage examples
+5. API reference (brief)
+6. Integration guide
+7. Contributing guidelines
+8. License
+
+### Step 6.2: Create API Documentation
+
+**File**: `docs/API.md`
+
+Complete API reference with:
+- Function signatures
+- Parameter descriptions
+- Return values
+- Usage examples
+- Common patterns
+
+### Step 6.3: Create Integration Guide
+
+**File**: `docs/INTEGRATION.md`
+
+How to integrate into projects:
+1. As git submodule
+2. Makefile integration
+3. Code examples
+4. Migration from standalone utilities
+
+## Phase 7: Integration with c-relay
+
+### Step 7.1: Add as Submodule
+
+```bash
+cd /path/to/c-relay
+git submodule add c_utils_lib
+git submodule update --init --recursive
+```
+
+### Step 7.2: Update c-relay Makefile
+
+```makefile
+# Add to c-relay Makefile
+C_UTILS_LIB = c_utils_lib/libc_utils.a
+
+# Update includes
+INCLUDES += -Ic_utils_lib/include
+
+# Update libs
+LIBS += -Lc_utils_lib -lc_utils
+
+# Add dependency
+$(C_UTILS_LIB):
+ cd c_utils_lib && ./build.sh lib
+
+# Update main target
+$(TARGET): $(C_UTILS_LIB) ...
+```
+
+### Step 7.3: Update c-relay Source Files
+
+**Changes needed**:
+
+1. Update includes:
+ ```c
+ // Old
+ #include "debug.h"
+
+ // New
+ #include
+ ```
+
+2. Remove old debug files:
+ ```bash
+ git rm src/debug.c src/debug.h
+ ```
+
+3. Update all files that use debug system:
+ - `src/main.c`
+ - `src/config.c`
+ - `src/dm_admin.c`
+ - `src/websockets.c`
+ - `src/subscriptions.c`
+ - Any other files using DEBUG_* macros
+
+### Step 7.4: Test Integration
+
+```bash
+cd c-relay
+make clean
+make
+./make_and_restart_relay.sh
+```
+
+Verify:
+- Compilation succeeds
+- Debug output works correctly
+- No functionality regressions
+
+## Phase 8: Version System Integration
+
+### Step 8.1: Update c-relay Makefile for Versioning
+
+```makefile
+# Add version generation
+src/version.h: .git/refs/tags/*
+ c_utils_lib/bin/generate_version src/version.h C_RELAY
+
+# Add dependency
+$(TARGET): src/version.h ...
+```
+
+### Step 8.2: Update c-relay to Use Generated Version
+
+Replace hardcoded version in `src/main.h` with:
+```c
+#include "version.h"
+// Use C_RELAY_VERSION instead of hardcoded VERSION
+```
+
+## Timeline Estimate
+
+- **Phase 1**: Repository Setup - 1 hour
+- **Phase 2**: Debug System - 2 hours
+- **Phase 3**: Version Utilities - 4 hours
+- **Phase 4**: Build System - 2 hours
+- **Phase 5**: Examples & Tests - 3 hours
+- **Phase 6**: Documentation - 3 hours
+- **Phase 7**: c-relay Integration - 2 hours
+- **Phase 8**: Version Integration - 2 hours
+
+**Total**: ~19 hours
+
+## Success Criteria
+
+- [ ] c_utils_lib builds successfully
+- [ ] All tests pass
+- [ ] Examples compile and run
+- [ ] c-relay integrates successfully
+- [ ] Debug output works in c-relay
+- [ ] Version generation works
+- [ ] Documentation complete
+- [ ] No regressions in c-relay functionality
+
+## Next Steps
+
+1. Review this plan with stakeholders
+2. Create repository structure
+3. Implement debug system
+4. Implement version utilities
+5. Create build system
+6. Write tests and examples
+7. Create documentation
+8. Integrate into c-relay
+9. Test thoroughly
+10. Publish to GitHub
+
+## Notes
+
+- Keep the API simple and intuitive
+- Focus on zero external dependencies
+- Prioritize learning value in code comments
+- Make integration as easy as possible
+- Document everything thoroughly
\ No newline at end of file
diff --git a/relay.pid b/relay.pid
index 715505c..68459d6 100644
--- a/relay.pid
+++ b/relay.pid
@@ -1 +1 @@
-2864152
+3928044
diff --git a/src/debug.c b/src/debug.c
deleted file mode 100644
index 97b7072..0000000
--- a/src/debug.c
+++ /dev/null
@@ -1,51 +0,0 @@
-#include "debug.h"
-#include
-#include
-
-// Global debug level (default: no debug output)
-debug_level_t g_debug_level = DEBUG_LEVEL_NONE;
-
-void debug_init(int level) {
- if (level < 0) level = 0;
- if (level > 5) level = 5;
- g_debug_level = (debug_level_t)level;
-}
-
-void debug_log(debug_level_t level, const char* file, int line, const char* format, ...) {
- // Get timestamp
- time_t now = time(NULL);
- struct tm* tm_info = localtime(&now);
- char timestamp[32];
- strftime(timestamp, sizeof(timestamp), "%Y-%m-%d %H:%M:%S", tm_info);
-
- // Get level string
- const char* level_str = "UNKNOWN";
- switch (level) {
- case DEBUG_LEVEL_ERROR: level_str = "ERROR"; break;
- case DEBUG_LEVEL_WARN: level_str = "WARN "; break;
- case DEBUG_LEVEL_INFO: level_str = "INFO "; break;
- case DEBUG_LEVEL_DEBUG: level_str = "DEBUG"; break;
- case DEBUG_LEVEL_TRACE: level_str = "TRACE"; break;
- default: break;
- }
-
- // Print prefix with timestamp and level
- printf("[%s] [%s] ", timestamp, level_str);
-
- // Print source location when debug level is TRACE (5) or higher
- if (file && g_debug_level >= DEBUG_LEVEL_TRACE) {
- // Extract just the filename (not full path)
- const char* filename = strrchr(file, '/');
- filename = filename ? filename + 1 : file;
- printf("[%s:%d] ", filename, line);
- }
-
- // Print message
- va_list args;
- va_start(args, format);
- vprintf(format, args);
- va_end(args);
-
- printf("\n");
- fflush(stdout);
-}
\ No newline at end of file
diff --git a/src/debug.h b/src/debug.h
deleted file mode 100644
index a450ed8..0000000
--- a/src/debug.h
+++ /dev/null
@@ -1,43 +0,0 @@
-#ifndef DEBUG_H
-#define DEBUG_H
-
-#include
-#include
-
-// Debug levels
-typedef enum {
- DEBUG_LEVEL_NONE = 0,
- DEBUG_LEVEL_ERROR = 1,
- DEBUG_LEVEL_WARN = 2,
- DEBUG_LEVEL_INFO = 3,
- DEBUG_LEVEL_DEBUG = 4,
- DEBUG_LEVEL_TRACE = 5
-} debug_level_t;
-
-// Global debug level (set at runtime via CLI)
-extern debug_level_t g_debug_level;
-
-// Initialize debug system
-void debug_init(int level);
-
-// Core logging function
-void debug_log(debug_level_t level, const char* file, int line, const char* format, ...);
-
-// Convenience macros that check level before calling
-// Note: TRACE level (5) and above include file:line information for ALL messages
-#define DEBUG_ERROR(...) \
- do { if (g_debug_level >= DEBUG_LEVEL_ERROR) debug_log(DEBUG_LEVEL_ERROR, __FILE__, __LINE__, __VA_ARGS__); } while(0)
-
-#define DEBUG_WARN(...) \
- do { if (g_debug_level >= DEBUG_LEVEL_WARN) debug_log(DEBUG_LEVEL_WARN, __FILE__, __LINE__, __VA_ARGS__); } while(0)
-
-#define DEBUG_INFO(...) \
- do { if (g_debug_level >= DEBUG_LEVEL_INFO) debug_log(DEBUG_LEVEL_INFO, __FILE__, __LINE__, __VA_ARGS__); } while(0)
-
-#define DEBUG_LOG(...) \
- do { if (g_debug_level >= DEBUG_LEVEL_DEBUG) debug_log(DEBUG_LEVEL_DEBUG, __FILE__, __LINE__, __VA_ARGS__); } while(0)
-
-#define DEBUG_TRACE(...) \
- do { if (g_debug_level >= DEBUG_LEVEL_TRACE) debug_log(DEBUG_LEVEL_TRACE, __FILE__, __LINE__, __VA_ARGS__); } while(0)
-
-#endif /* DEBUG_H */
\ No newline at end of file
diff --git a/src/embedded_web_content.c b/src/embedded_web_content.c
index 9056cf5..abdbc6a 100644
--- a/src/embedded_web_content.c
+++ b/src/embedded_web_content.c
@@ -4,20 +4,25 @@
#include "embedded_web_content.h"
#include
+// Auto-generated from api/embedded.html
+static const unsigned char embedded_html_data[] = {
+0x3c,0x21,0x44,0x4f,0x43,0x54,0x59,0x50,0x45,0x20,0x68,0x74,0x6d,0x6c,0x3e,0x0a,0x3c,0x68,0x74,0x6d,0x6c,0x20,0x6c,0x61,0x6e,0x67,0x3d,0x22,0x65,0x6e,0x22,0x3e,0x0a,0x3c,0x68,0x65,0x61,0x64,0x3e,0x0a,0x20,0x20,0x3c,0x6d,0x65,0x74,0x61,0x20,0x63,0x68,0x61,0x72,0x73,0x65,0x74,0x3d,0x22,0x55,0x54,0x46,0x2d,0x38,0x22,0x3e,0x0a,0x20,0x20,0x3c,0x6d,0x65,0x74,0x61,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x76,0x69,0x65,0x77,0x70,0x6f,0x72,0x74,0x22,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3d,0x22,0x77,0x69,0x64,0x74,0x68,0x3d,0x64,0x65,0x76,0x69,0x63,0x65,0x2d,0x77,0x69,0x64,0x74,0x68,0x2c,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3d,0x31,0x2e,0x30,0x22,0x3e,0x0a,0x20,0x20,0x3c,0x74,0x69,0x74,0x6c,0x65,0x3e,0x45,0x6d,0x62,0x65,0x64,0x64,0x65,0x64,0x20,0x4e,0x4f,0x53,0x54,0x52,0x5f,0x4c,0x4f,0x47,0x49,0x4e,0x5f,0x4c,0x49,0x54,0x45,0x3c,0x2f,0x74,0x69,0x74,0x6c,0x65,0x3e,0x0a,0x20,0x20,0x3c,0x73,0x74,0x79,0x6c,0x65,0x3e,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x64,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x2d,0x61,0x70,0x70,0x6c,0x65,0x2d,0x73,0x79,0x73,0x74,0x65,0x6d,0x2c,0x20,0x42,0x6c,0x69,0x6e,0x6b,0x4d,0x61,0x63,0x53,0x79,0x73,0x74,0x65,0x6d,0x46,0x6f,0x6e,0x74,0x2c,0x20,0x27,0x53,0x65,0x67,0x6f,0x65,0x20,0x55,0x49,0x27,0x2c,0x20,0x52,0x6f,0x62,0x6f,0x74,0x6f,0x2c,0x20,0x73,0x61,0x6e,0x73,0x2d,0x73,0x65,0x72,0x69,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x34,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x77,0x68,0x69,0x74,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x66,0x6c,0x65,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x20,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x69,0x6e,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x31,0x30,0x30,0x76,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x34,0x30,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x31,0x30,0x30,0x25,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x23,0x6c,0x6f,0x67,0x69,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2a,0x20,0x4e,0x6f,0x20,0x73,0x74,0x79,0x6c,0x69,0x6e,0x67,0x20,0x2d,0x20,0x6c,0x65,0x74,0x20,0x65,0x6d,0x62,0x65,0x64,0x64,0x65,0x64,0x20,0x6d,0x6f,0x64,0x61,0x6c,0x20,0x62,0x6c,0x65,0x6e,0x64,0x20,0x73,0x65,0x61,0x6d,0x6c,0x65,0x73,0x73,0x6c,0x79,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x3c,0x2f,0x73,0x74,0x79,0x6c,0x65,0x3e,0x0a,0x3c,0x2f,0x68,0x65,0x61,0x64,0x3e,0x0a,0x3c,0x62,0x6f,0x64,0x79,0x3e,0x0a,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x69,0x64,0x3d,0x22,0x6c,0x6f,0x67,0x69,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x22,0x3e,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x73,0x72,0x63,0x3d,0x22,0x2e,0x2e,0x2f,0x6c,0x69,0x74,0x65,0x2f,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x62,0x75,0x6e,0x64,0x6c,0x65,0x2e,0x6a,0x73,0x22,0x3e,0x3c,0x2f,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x0a,0x20,0x20,0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x73,0x72,0x63,0x3d,0x22,0x2e,0x2e,0x2f,0x6c,0x69,0x74,0x65,0x2f,0x6e,0x6f,0x73,0x74,0x72,0x2d,0x6c,0x69,0x74,0x65,0x2e,0x6a,0x73,0x22,0x3e,0x3c,0x2f,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x0a,0x0a,0x20,0x20,0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x0a,0x20,0x20,0x20,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x44,0x4f,0x4d,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x4c,0x6f,0x61,0x64,0x65,0x64,0x27,0x2c,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x4f,0x53,0x54,0x52,0x5f,0x4c,0x4f,0x47,0x49,0x4e,0x5f,0x4c,0x49,0x54,0x45,0x2e,0x69,0x6e,0x69,0x74,0x28,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x65,0x6d,0x65,0x3a,0x27,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x73,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x65,0x64,0x70,0x68,0x72,0x61,0x73,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x74,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x74,0x70,0x3a,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x4f,0x53,0x54,0x52,0x5f,0x4c,0x4f,0x47,0x49,0x4e,0x5f,0x4c,0x49,0x54,0x45,0x2e,0x65,0x6d,0x62,0x65,0x64,0x28,0x27,0x23,0x6c,0x6f,0x67,0x69,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x27,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x61,0x6d,0x6c,0x65,0x73,0x73,0x3a,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x3c,0x2f,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x0a,0x3c,0x2f,0x62,0x6f,0x64,0x79,0x3e,0x0a,0x3c,0x2f,0x68,0x74,0x6d,0x6c,0x3e,};
+static const size_t embedded_html_size = 1299;
+
// Auto-generated from api/index.html
static const unsigned char index_html_data[] = {
-0x3c,0x21,0x44,0x4f,0x43,0x54,0x59,0x50,0x45,0x20,0x68,0x74,0x6d,0x6c,0x3e,0x0a,0x3c,0x68,0x74,0x6d,0x6c,0x20,0x6c,0x61,0x6e,0x67,0x3d,0x22,0x65,0x6e,0x22,0x3e,0x0a,0x0a,0x3c,0x68,0x65,0x61,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x6d,0x65,0x74,0x61,0x20,0x63,0x68,0x61,0x72,0x73,0x65,0x74,0x3d,0x22,0x55,0x54,0x46,0x2d,0x38,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x6d,0x65,0x74,0x61,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x76,0x69,0x65,0x77,0x70,0x6f,0x72,0x74,0x22,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3d,0x22,0x77,0x69,0x64,0x74,0x68,0x3d,0x64,0x65,0x76,0x69,0x63,0x65,0x2d,0x77,0x69,0x64,0x74,0x68,0x2c,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3d,0x31,0x2e,0x30,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x74,0x69,0x74,0x6c,0x65,0x3e,0x43,0x2d,0x52,0x65,0x6c,0x61,0x79,0x20,0x41,0x64,0x6d,0x69,0x6e,0x20,0x41,0x50,0x49,0x3c,0x2f,0x74,0x69,0x74,0x6c,0x65,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x6c,0x69,0x6e,0x6b,0x20,0x72,0x65,0x6c,0x3d,0x22,0x73,0x74,0x79,0x6c,0x65,0x73,0x68,0x65,0x65,0x74,0x22,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x2f,0x61,0x70,0x69,0x2f,0x69,0x6e,0x64,0x65,0x78,0x2e,0x63,0x73,0x73,0x22,0x3e,0x0a,0x3c,0x2f,0x68,0x65,0x61,0x64,0x3e,0x0a,0x0a,0x3c,0x62,0x6f,0x64,0x79,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x68,0x31,0x3e,0x43,0x2d,0x52,0x45,0x4c,0x41,0x59,0x20,0x41,0x44,0x4d,0x49,0x4e,0x20,0x41,0x50,0x49,0x3c,0x2f,0x68,0x31,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x4d,0x61,0x69,0x6e,0x20,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x20,0x57,0x72,0x61,0x70,0x70,0x65,0x72,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6d,0x61,0x69,0x6e,0x2d,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x2d,0x77,0x72,0x61,0x70,0x70,0x65,0x72,0x22,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x50,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x20,0x41,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x48,0x65,0x61,0x64,0x65,0x72,0x20,0x2d,0x20,0x41,0x6c,0x77,0x61,0x79,0x73,0x20,0x56,0x69,0x73,0x69,0x62,0x6c,0x65,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x69,0x64,0x3d,0x22,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x2d,0x61,0x75,0x74,0x68,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6c,0x65,0x78,0x2d,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x75,0x73,0x65,0x72,0x2d,0x69,0x6e,0x66,0x6f,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x62,0x75,0x74,0x74,0x6f,0x6e,0x22,0x20,0x69,0x64,0x3d,0x22,0x6c,0x6f,0x67,0x69,0x6e,0x2d,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x2d,0x62,0x74,0x6e,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6c,0x6f,0x67,0x69,0x6e,0x2d,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x2d,0x62,0x74,0x6e,0x22,0x3e,0x4c,0x4f,0x47,0x49,0x4e,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x75,0x73,0x65,0x72,0x2d,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x22,0x20,0x69,0x64,0x3d,0x22,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x2d,0x75,0x73,0x65,0x72,0x2d,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x6e,0x6f,0x6e,0x65,0x3b,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x3e,0x3c,0x73,0x74,0x72,0x6f,0x6e,0x67,0x3e,0x4e,0x61,0x6d,0x65,0x3a,0x3c,0x2f,0x73,0x74,0x72,0x6f,0x6e,0x67,0x3e,0x20,0x3c,0x73,0x70,0x61,0x6e,0x20,0x69,0x64,0x3d,0x22,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x2d,0x75,0x73,0x65,0x72,0x2d,0x6e,0x61,0x6d,0x65,0x22,0x3e,0x4c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x2e,0x2e,0x2e,0x3c,0x2f,0x73,0x70,0x61,0x6e,0x3e,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x3e,0x3c,0x73,0x74,0x72,0x6f,0x6e,0x67,0x3e,0x50,0x75,0x62,0x6c,0x69,0x63,0x20,0x4b,0x65,0x79,0x3a,0x3c,0x2f,0x73,0x74,0x72,0x6f,0x6e,0x67,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x75,0x73,0x65,0x72,0x2d,0x70,0x75,0x62,0x6b,0x65,0x79,0x22,0x20,0x69,0x64,0x3d,0x22,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x2d,0x75,0x73,0x65,0x72,0x2d,0x70,0x75,0x62,0x6b,0x65,0x79,0x22,0x3e,0x4c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x2e,0x2e,0x2e,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x3e,0x3c,0x73,0x74,0x72,0x6f,0x6e,0x67,0x3e,0x41,0x62,0x6f,0x75,0x74,0x3a,0x3c,0x2f,0x73,0x74,0x72,0x6f,0x6e,0x67,0x3e,0x20,0x3c,0x73,0x70,0x61,0x6e,0x20,0x69,0x64,0x3d,0x22,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x2d,0x75,0x73,0x65,0x72,0x2d,0x61,0x62,0x6f,0x75,0x74,0x22,0x3e,0x4c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x2e,0x2e,0x2e,0x3c,0x2f,0x73,0x70,0x61,0x6e,0x3e,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x4c,0x6f,0x67,0x69,0x6e,0x20,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x69,0x64,0x3d,0x22,0x6c,0x6f,0x67,0x69,0x6e,0x2d,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x66,0x6c,0x65,0x78,0x2d,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x68,0x32,0x3e,0x4e,0x4f,0x53,0x54,0x52,0x20,0x41,0x55,0x54,0x48,0x45,0x4e,0x54,0x49,0x43,0x41,0x54,0x49,0x4f,0x4e,0x3c,0x2f,0x68,0x32,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x70,0x20,0x69,0x64,0x3d,0x22,0x6c,0x6f,0x67,0x69,0x6e,0x2d,0x69,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x69,0x6f,0x6e,0x73,0x22,0x3e,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x20,0x77,0x69,0x74,0x68,0x20,0x79,0x6f,0x75,0x72,0x20,0x4e,0x6f,0x73,0x74,0x72,0x20,0x69,0x64,0x65,0x6e,0x74,0x69,0x74,0x79,0x20,0x74,0x6f,0x20,0x61,0x63,0x63,0x65,0x73,0x73,0x20,0x74,0x68,0x65,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x69,0x6e,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x2e,0x3c,0x2f,0x70,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x6e,0x6f,0x73,0x74,0x72,0x2d,0x6c,0x69,0x74,0x65,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x20,0x55,0x49,0x20,0x77,0x69,0x6c,0x6c,0x20,0x62,0x65,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x65,0x64,0x20,0x68,0x65,0x72,0x65,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x52,0x65,0x6c,0x61,0x79,0x20,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x69,0x64,0x3d,0x22,0x72,0x65,0x6c,0x61,0x79,0x2d,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2d,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x66,0x6c,0x65,0x78,0x2d,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x68,0x32,0x3e,0x52,0x45,0x4c,0x41,0x59,0x20,0x43,0x4f,0x4e,0x4e,0x45,0x43,0x54,0x49,0x4f,0x4e,0x3c,0x2f,0x68,0x32,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x69,0x6e,0x70,0x75,0x74,0x2d,0x67,0x72,0x6f,0x75,0x70,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x20,0x66,0x6f,0x72,0x3d,0x22,0x72,0x65,0x6c,0x61,0x79,0x2d,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2d,0x75,0x72,0x6c,0x22,0x3e,0x52,0x65,0x6c,0x61,0x79,0x20,0x55,0x52,0x4c,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x74,0x65,0x78,0x74,0x22,0x20,0x69,0x64,0x3d,0x22,0x72,0x65,0x6c,0x61,0x79,0x2d,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2d,0x75,0x72,0x6c,0x22,0x20,0x76,0x61,0x6c,0x75,0x65,0x3d,0x22,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x3d,0x22,0x77,0x73,0x3a,0x2f,0x2f,0x6c,0x6f,0x63,0x61,0x6c,0x68,0x6f,0x73,0x74,0x3a,0x38,0x38,0x38,0x38,0x20,0x6f,0x72,0x20,0x77,0x73,0x73,0x3a,0x2f,0x2f,0x72,0x65,0x6c,0x61,0x79,0x2e,0x65,0x78,0x61,0x6d,0x70,0x6c,0x65,0x2e,0x63,0x6f,0x6d,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x69,0x6e,0x70,0x75,0x74,0x2d,0x67,0x72,0x6f,0x75,0x70,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x20,0x66,0x6f,0x72,0x3d,0x22,0x72,0x65,0x6c,0x61,0x79,0x2d,0x70,0x75,0x62,0x6b,0x65,0x79,0x2d,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x22,0x3e,0x52,0x65,0x6c,0x61,0x79,0x20,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x28,0x69,0x66,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x20,0x76,0x69,0x61,0x20,0x4e,0x49,0x50,0x2d,0x31,0x31,0x29,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x74,0x65,0x78,0x74,0x22,0x20,0x69,0x64,0x3d,0x22,0x72,0x65,0x6c,0x61,0x79,0x2d,0x70,0x75,0x62,0x6b,0x65,0x79,0x2d,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x22,0x20,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x3d,0x22,0x36,0x34,0x2d,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x20,0x68,0x65,0x78,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x3d,0x22,0x5b,0x30,0x2d,0x39,0x61,0x2d,0x66,0x41,0x2d,0x46,0x5d,0x7b,0x36,0x34,0x7d,0x22,0x20,0x74,0x69,0x74,0x6c,0x65,0x3d,0x22,0x36,0x34,0x2d,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x20,0x68,0x65,0x78,0x61,0x64,0x65,0x63,0x69,0x6d,0x61,0x6c,0x20,0x70,0x75,0x62,0x6c,0x69,0x63,0x20,0x6b,0x65,0x79,0x22,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x73,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x62,0x75,0x74,0x74,0x6f,0x6e,0x22,0x20,0x69,0x64,0x3d,0x22,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x2d,0x72,0x65,0x6c,0x61,0x79,0x2d,0x62,0x74,0x6e,0x22,0x3e,0x43,0x4f,0x4e,0x4e,0x45,0x43,0x54,0x20,0x54,0x4f,0x20,0x52,0x45,0x4c,0x41,0x59,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x62,0x75,0x74,0x74,0x6f,0x6e,0x22,0x20,0x69,0x64,0x3d,0x22,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x2d,0x72,0x65,0x6c,0x61,0x79,0x2d,0x62,0x74,0x6e,0x22,0x20,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x3e,0x44,0x49,0x53,0x43,0x4f,0x4e,0x4e,0x45,0x43,0x54,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x62,0x75,0x74,0x74,0x6f,0x6e,0x22,0x20,0x69,0x64,0x3d,0x22,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x2d,0x72,0x65,0x6c,0x61,0x79,0x2d,0x62,0x74,0x6e,0x22,0x20,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x3e,0x52,0x45,0x53,0x54,0x41,0x52,0x54,0x20,0x52,0x45,0x4c,0x41,0x59,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x22,0x20,0x69,0x64,0x3d,0x22,0x72,0x65,0x6c,0x61,0x79,0x2d,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2d,0x73,0x74,0x61,0x74,0x75,0x73,0x22,0x3e,0x4e,0x4f,0x54,0x20,0x43,0x4f,0x4e,0x4e,0x45,0x43,0x54,0x45,0x44,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x52,0x65,0x6c,0x61,0x79,0x20,0x49,0x6e,0x66,0x6f,0x72,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x20,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x69,0x64,0x3d,0x22,0x72,0x65,0x6c,0x61,0x79,0x2d,0x69,0x6e,0x66,0x6f,0x2d,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x68,0x69,0x64,0x64,0x65,0x6e,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x68,0x33,0x3e,0x52,0x65,0x6c,0x61,0x79,0x20,0x49,0x6e,0x66,0x6f,0x72,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x20,0x28,0x4e,0x49,0x50,0x2d,0x31,0x31,0x29,0x3c,0x2f,0x68,0x33,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x61,0x62,0x6c,0x65,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x22,0x20,0x69,0x64,0x3d,0x22,0x72,0x65,0x6c,0x61,0x79,0x2d,0x69,0x6e,0x66,0x6f,0x2d,0x74,0x61,0x62,0x6c,0x65,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x65,0x61,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x56,0x61,0x6c,0x75,0x65,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x68,0x65,0x61,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x62,0x6f,0x64,0x79,0x20,0x69,0x64,0x3d,0x22,0x72,0x65,0x6c,0x61,0x79,0x2d,0x69,0x6e,0x66,0x6f,0x2d,0x74,0x61,0x62,0x6c,0x65,0x2d,0x62,0x6f,0x64,0x79,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x62,0x6f,0x64,0x79,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x61,0x62,0x6c,0x65,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x0a,0x0a,0x0a,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x45,0x6e,0x64,0x20,0x4d,0x61,0x69,0x6e,0x20,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x20,0x57,0x72,0x61,0x70,0x70,0x65,0x72,0x20,0x2d,0x2d,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x44,0x41,0x54,0x41,0x42,0x41,0x53,0x45,0x20,0x53,0x54,0x41,0x54,0x49,0x53,0x54,0x49,0x43,0x53,0x20,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6c,0x65,0x78,0x2d,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x20,0x69,0x64,0x3d,0x22,0x64,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x53,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x6e,0x6f,0x6e,0x65,0x3b,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2d,0x68,0x65,0x61,0x64,0x65,0x72,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x68,0x32,0x3e,0x44,0x41,0x54,0x41,0x42,0x41,0x53,0x45,0x20,0x53,0x54,0x41,0x54,0x49,0x53,0x54,0x49,0x43,0x53,0x3c,0x2f,0x68,0x32,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x44,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x20,0x4f,0x76,0x65,0x72,0x76,0x69,0x65,0x77,0x20,0x54,0x61,0x62,0x6c,0x65,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x69,0x6e,0x70,0x75,0x74,0x2d,0x67,0x72,0x6f,0x75,0x70,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x44,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x20,0x4f,0x76,0x65,0x72,0x76,0x69,0x65,0x77,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x61,0x62,0x6c,0x65,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x22,0x20,0x69,0x64,0x3d,0x22,0x73,0x74,0x61,0x74,0x73,0x2d,0x6f,0x76,0x65,0x72,0x76,0x69,0x65,0x77,0x2d,0x74,0x61,0x62,0x6c,0x65,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x65,0x61,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x4d,0x65,0x74,0x72,0x69,0x63,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x56,0x61,0x6c,0x75,0x65,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x44,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x68,0x65,0x61,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x62,0x6f,0x64,0x79,0x20,0x69,0x64,0x3d,0x22,0x73,0x74,0x61,0x74,0x73,0x2d,0x6f,0x76,0x65,0x72,0x76,0x69,0x65,0x77,0x2d,0x74,0x61,0x62,0x6c,0x65,0x2d,0x62,0x6f,0x64,0x79,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x44,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x20,0x53,0x69,0x7a,0x65,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x20,0x69,0x64,0x3d,0x22,0x64,0x62,0x2d,0x73,0x69,0x7a,0x65,0x22,0x3e,0x2d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x64,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x20,0x66,0x69,0x6c,0x65,0x20,0x73,0x69,0x7a,0x65,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x54,0x6f,0x74,0x61,0x6c,0x20,0x45,0x76,0x65,0x6e,0x74,0x73,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x20,0x69,0x64,0x3d,0x22,0x74,0x6f,0x74,0x61,0x6c,0x2d,0x65,0x76,0x65,0x6e,0x74,0x73,0x22,0x3e,0x2d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x54,0x6f,0x74,0x61,0x6c,0x20,0x6e,0x75,0x6d,0x62,0x65,0x72,0x20,0x6f,0x66,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x20,0x73,0x74,0x6f,0x72,0x65,0x64,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x4f,0x6c,0x64,0x65,0x73,0x74,0x20,0x45,0x76,0x65,0x6e,0x74,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x20,0x69,0x64,0x3d,0x22,0x6f,0x6c,0x64,0x65,0x73,0x74,0x2d,0x65,0x76,0x65,0x6e,0x74,0x22,0x3e,0x2d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x54,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x20,0x6f,0x66,0x20,0x6f,0x6c,0x64,0x65,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x4e,0x65,0x77,0x65,0x73,0x74,0x20,0x45,0x76,0x65,0x6e,0x74,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x20,0x69,0x64,0x3d,0x22,0x6e,0x65,0x77,0x65,0x73,0x74,0x2d,0x65,0x76,0x65,0x6e,0x74,0x22,0x3e,0x2d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x54,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x20,0x6f,0x66,0x20,0x6e,0x65,0x77,0x65,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x62,0x6f,0x64,0x79,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x61,0x62,0x6c,0x65,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x45,0x76,0x65,0x6e,0x74,0x20,0x4b,0x69,0x6e,0x64,0x20,0x44,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x20,0x54,0x61,0x62,0x6c,0x65,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x69,0x6e,0x70,0x75,0x74,0x2d,0x67,0x72,0x6f,0x75,0x70,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x45,0x76,0x65,0x6e,0x74,0x20,0x4b,0x69,0x6e,0x64,0x20,0x44,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x61,0x62,0x6c,0x65,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x22,0x20,0x69,0x64,0x3d,0x22,0x73,0x74,0x61,0x74,0x73,0x2d,0x6b,0x69,0x6e,0x64,0x73,0x2d,0x74,0x61,0x62,0x6c,0x65,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x65,0x61,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x45,0x76,0x65,0x6e,0x74,0x20,0x4b,0x69,0x6e,0x64,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x43,0x6f,0x75,0x6e,0x74,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x50,0x65,0x72,0x63,0x65,0x6e,0x74,0x61,0x67,0x65,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x68,0x65,0x61,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x62,0x6f,0x64,0x79,0x20,0x69,0x64,0x3d,0x22,0x73,0x74,0x61,0x74,0x73,0x2d,0x6b,0x69,0x6e,0x64,0x73,0x2d,0x74,0x61,0x62,0x6c,0x65,0x2d,0x62,0x6f,0x64,0x79,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x20,0x63,0x6f,0x6c,0x73,0x70,0x61,0x6e,0x3d,0x22,0x33,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x20,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x20,0x69,0x74,0x61,0x6c,0x69,0x63,0x3b,0x22,0x3e,0x4e,0x6f,0x20,0x64,0x61,0x74,0x61,0x20,0x6c,0x6f,0x61,0x64,0x65,0x64,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x62,0x6f,0x64,0x79,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x61,0x62,0x6c,0x65,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x54,0x69,0x6d,0x65,0x2d,0x62,0x61,0x73,0x65,0x64,0x20,0x53,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x20,0x54,0x61,0x62,0x6c,0x65,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x69,0x6e,0x70,0x75,0x74,0x2d,0x67,0x72,0x6f,0x75,0x70,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x54,0x69,0x6d,0x65,0x2d,0x62,0x61,0x73,0x65,0x64,0x20,0x53,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x61,0x62,0x6c,0x65,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x22,0x20,0x69,0x64,0x3d,0x22,0x73,0x74,0x61,0x74,0x73,0x2d,0x74,0x69,0x6d,0x65,0x2d,0x74,0x61,0x62,0x6c,0x65,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x65,0x61,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x50,0x65,0x72,0x69,0x6f,0x64,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x45,0x76,0x65,0x6e,0x74,0x73,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x44,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x68,0x65,0x61,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x62,0x6f,0x64,0x79,0x20,0x69,0x64,0x3d,0x22,0x73,0x74,0x61,0x74,0x73,0x2d,0x74,0x69,0x6d,0x65,0x2d,0x74,0x61,0x62,0x6c,0x65,0x2d,0x62,0x6f,0x64,0x79,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x4c,0x61,0x73,0x74,0x20,0x32,0x34,0x20,0x48,0x6f,0x75,0x72,0x73,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x20,0x69,0x64,0x3d,0x22,0x65,0x76,0x65,0x6e,0x74,0x73,0x2d,0x32,0x34,0x68,0x22,0x3e,0x2d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x45,0x76,0x65,0x6e,0x74,0x73,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x6c,0x61,0x73,0x74,0x20,0x64,0x61,0x79,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x4c,0x61,0x73,0x74,0x20,0x37,0x20,0x44,0x61,0x79,0x73,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x20,0x69,0x64,0x3d,0x22,0x65,0x76,0x65,0x6e,0x74,0x73,0x2d,0x37,0x64,0x22,0x3e,0x2d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x45,0x76,0x65,0x6e,0x74,0x73,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x6c,0x61,0x73,0x74,0x20,0x77,0x65,0x65,0x6b,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x4c,0x61,0x73,0x74,0x20,0x33,0x30,0x20,0x44,0x61,0x79,0x73,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x20,0x69,0x64,0x3d,0x22,0x65,0x76,0x65,0x6e,0x74,0x73,0x2d,0x33,0x30,0x64,0x22,0x3e,0x2d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x45,0x76,0x65,0x6e,0x74,0x73,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x6c,0x61,0x73,0x74,0x20,0x6d,0x6f,0x6e,0x74,0x68,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x62,0x6f,0x64,0x79,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x61,0x62,0x6c,0x65,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x54,0x6f,0x70,0x20,0x50,0x75,0x62,0x6b,0x65,0x79,0x73,0x20,0x54,0x61,0x62,0x6c,0x65,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x69,0x6e,0x70,0x75,0x74,0x2d,0x67,0x72,0x6f,0x75,0x70,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x54,0x6f,0x70,0x20,0x50,0x75,0x62,0x6b,0x65,0x79,0x73,0x20,0x62,0x79,0x20,0x45,0x76,0x65,0x6e,0x74,0x20,0x43,0x6f,0x75,0x6e,0x74,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x61,0x62,0x6c,0x65,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x22,0x20,0x69,0x64,0x3d,0x22,0x73,0x74,0x61,0x74,0x73,0x2d,0x70,0x75,0x62,0x6b,0x65,0x79,0x73,0x2d,0x74,0x61,0x62,0x6c,0x65,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x65,0x61,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x52,0x61,0x6e,0x6b,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x50,0x75,0x62,0x6b,0x65,0x79,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x45,0x76,0x65,0x6e,0x74,0x20,0x43,0x6f,0x75,0x6e,0x74,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x50,0x65,0x72,0x63,0x65,0x6e,0x74,0x61,0x67,0x65,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x68,0x65,0x61,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x62,0x6f,0x64,0x79,0x20,0x69,0x64,0x3d,0x22,0x73,0x74,0x61,0x74,0x73,0x2d,0x70,0x75,0x62,0x6b,0x65,0x79,0x73,0x2d,0x74,0x61,0x62,0x6c,0x65,0x2d,0x62,0x6f,0x64,0x79,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x20,0x63,0x6f,0x6c,0x73,0x70,0x61,0x6e,0x3d,0x22,0x34,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x20,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x20,0x69,0x74,0x61,0x6c,0x69,0x63,0x3b,0x22,0x3e,0x4e,0x6f,0x20,0x64,0x61,0x74,0x61,0x20,0x6c,0x6f,0x61,0x64,0x65,0x64,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x62,0x6f,0x64,0x79,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x61,0x62,0x6c,0x65,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x52,0x65,0x66,0x72,0x65,0x73,0x68,0x20,0x42,0x75,0x74,0x74,0x6f,0x6e,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x69,0x6e,0x70,0x75,0x74,0x2d,0x67,0x72,0x6f,0x75,0x70,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x62,0x75,0x74,0x74,0x6f,0x6e,0x22,0x20,0x69,0x64,0x3d,0x22,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x2d,0x73,0x74,0x61,0x74,0x73,0x2d,0x62,0x74,0x6e,0x22,0x3e,0x52,0x45,0x46,0x52,0x45,0x53,0x48,0x20,0x53,0x54,0x41,0x54,0x49,0x53,0x54,0x49,0x43,0x53,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x54,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x69,0x64,0x3d,0x22,0x64,0x69,0x76,0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6c,0x65,0x78,0x2d,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x6e,0x6f,0x6e,0x65,0x3b,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x68,0x32,0x3e,0x52,0x45,0x4c,0x41,0x59,0x20,0x43,0x4f,0x4e,0x46,0x49,0x47,0x55,0x52,0x41,0x54,0x49,0x4f,0x4e,0x3c,0x2f,0x68,0x32,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x69,0x64,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x68,0x69,0x64,0x64,0x65,0x6e,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x61,0x62,0x6c,0x65,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x22,0x20,0x69,0x64,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x65,0x61,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x50,0x61,0x72,0x61,0x6d,0x65,0x74,0x65,0x72,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x56,0x61,0x6c,0x75,0x65,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x41,0x63,0x74,0x69,0x6f,0x6e,0x73,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x68,0x65,0x61,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x62,0x6f,0x64,0x79,0x20,0x69,0x64,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x2d,0x62,0x6f,0x64,0x79,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x62,0x6f,0x64,0x79,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x61,0x62,0x6c,0x65,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x73,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x62,0x75,0x74,0x74,0x6f,0x6e,0x22,0x20,0x69,0x64,0x3d,0x22,0x66,0x65,0x74,0x63,0x68,0x2d,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x62,0x74,0x6e,0x22,0x3e,0x52,0x45,0x46,0x52,0x45,0x53,0x48,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x73,0x20,0x4d,0x61,0x6e,0x61,0x67,0x65,0x6d,0x65,0x6e,0x74,0x20,0x2d,0x20,0x4d,0x6f,0x76,0x65,0x64,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6c,0x65,0x78,0x2d,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x20,0x69,0x64,0x3d,0x22,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x6e,0x6f,0x6e,0x65,0x3b,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2d,0x68,0x65,0x61,0x64,0x65,0x72,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x68,0x32,0x3e,0x41,0x55,0x54,0x48,0x20,0x52,0x55,0x4c,0x45,0x53,0x20,0x4d,0x41,0x4e,0x41,0x47,0x45,0x4d,0x45,0x4e,0x54,0x3c,0x2f,0x68,0x32,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x73,0x20,0x54,0x61,0x62,0x6c,0x65,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x69,0x64,0x3d,0x22,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x6e,0x6f,0x6e,0x65,0x3b,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x61,0x62,0x6c,0x65,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x22,0x20,0x69,0x64,0x3d,0x22,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x65,0x61,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x52,0x75,0x6c,0x65,0x20,0x54,0x79,0x70,0x65,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x20,0x54,0x79,0x70,0x65,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x20,0x56,0x61,0x6c,0x75,0x65,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x53,0x74,0x61,0x74,0x75,0x73,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x41,0x63,0x74,0x69,0x6f,0x6e,0x73,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x68,0x65,0x61,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x62,0x6f,0x64,0x79,0x20,0x69,0x64,0x3d,0x22,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x62,0x6f,0x64,0x79,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x61,0x62,0x6c,0x65,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x53,0x69,0x6d,0x70,0x6c,0x69,0x66,0x69,0x65,0x64,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x20,0x49,0x6e,0x70,0x75,0x74,0x20,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x69,0x64,0x3d,0x22,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x49,0x6e,0x70,0x75,0x74,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x22,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x43,0x6f,0x6d,0x62,0x69,0x6e,0x65,0x64,0x20,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x20,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x2d,0x2d,0x3e,0x0a,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x69,0x6e,0x70,0x75,0x74,0x2d,0x67,0x72,0x6f,0x75,0x70,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x20,0x66,0x6f,0x72,0x3d,0x22,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x50,0x75,0x62,0x6b,0x65,0x79,0x22,0x3e,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x28,0x6e,0x73,0x65,0x63,0x20,0x6f,0x72,0x20,0x68,0x65,0x78,0x29,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x74,0x65,0x78,0x74,0x22,0x20,0x69,0x64,0x3d,0x22,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x50,0x75,0x62,0x6b,0x65,0x79,0x22,0x20,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x3d,0x22,0x6e,0x73,0x65,0x63,0x31,0x2e,0x2e,0x2e,0x20,0x6f,0x72,0x20,0x36,0x34,0x2d,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x20,0x68,0x65,0x78,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x22,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x69,0x64,0x3d,0x22,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x57,0x61,0x72,0x6e,0x69,0x6e,0x67,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x2d,0x62,0x6f,0x78,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x6e,0x6f,0x6e,0x65,0x3b,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x73,0x74,0x72,0x6f,0x6e,0x67,0x3e,0xe2,0x9a,0xa0,0xef,0xb8,0x8f,0x20,0x57,0x41,0x52,0x4e,0x49,0x4e,0x47,0x3a,0x3c,0x2f,0x73,0x74,0x72,0x6f,0x6e,0x67,0x3e,0x20,0x41,0x64,0x64,0x69,0x6e,0x67,0x20,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x73,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x62,0x65,0x68,0x61,0x76,0x69,0x6f,0x72,0x20,0x74,0x6f,0x20,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x2d,0x6f,0x6e,0x6c,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x64,0x65,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4f,0x6e,0x6c,0x79,0x20,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x65,0x64,0x20,0x75,0x73,0x65,0x72,0x73,0x20,0x77,0x69,0x6c,0x6c,0x20,0x62,0x65,0x20,0x61,0x62,0x6c,0x65,0x20,0x74,0x6f,0x20,0x69,0x6e,0x74,0x65,0x72,0x61,0x63,0x74,0x20,0x77,0x69,0x74,0x68,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x73,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x62,0x75,0x74,0x74,0x6f,0x6e,0x22,0x20,0x69,0x64,0x3d,0x22,0x61,0x64,0x64,0x57,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x42,0x74,0x6e,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x61,0x64,0x64,0x57,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x52,0x75,0x6c,0x65,0x28,0x29,0x22,0x3e,0x41,0x44,0x44,0x20,0x54,0x4f,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x57,0x48,0x49,0x54,0x45,0x4c,0x49,0x53,0x54,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x62,0x75,0x74,0x74,0x6f,0x6e,0x22,0x20,0x69,0x64,0x3d,0x22,0x61,0x64,0x64,0x42,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x42,0x74,0x6e,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x61,0x64,0x64,0x42,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x52,0x75,0x6c,0x65,0x28,0x29,0x22,0x3e,0x41,0x44,0x44,0x20,0x54,0x4f,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x42,0x4c,0x41,0x43,0x4b,0x4c,0x49,0x53,0x54,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x62,0x75,0x74,0x74,0x6f,0x6e,0x22,0x20,0x69,0x64,0x3d,0x22,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x42,0x74,0x6e,0x22,0x3e,0x52,0x45,0x46,0x52,0x45,0x53,0x48,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x44,0x49,0x52,0x45,0x43,0x54,0x20,0x4d,0x45,0x53,0x53,0x41,0x47,0x45,0x53,0x20,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x20,0x69,0x64,0x3d,0x22,0x6e,0x69,0x70,0x31,0x37,0x44,0x4d,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x6e,0x6f,0x6e,0x65,0x3b,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2d,0x68,0x65,0x61,0x64,0x65,0x72,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x68,0x32,0x3e,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x44,0x49,0x52,0x45,0x43,0x54,0x20,0x4d,0x45,0x53,0x53,0x41,0x47,0x45,0x53,0x3c,0x2f,0x68,0x32,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x4f,0x75,0x74,0x62,0x6f,0x78,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x69,0x6e,0x70,0x75,0x74,0x2d,0x67,0x72,0x6f,0x75,0x70,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x20,0x66,0x6f,0x72,0x3d,0x22,0x64,0x6d,0x2d,0x6f,0x75,0x74,0x62,0x6f,0x78,0x22,0x3e,0x53,0x65,0x6e,0x64,0x20,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x74,0x6f,0x20,0x52,0x65,0x6c,0x61,0x79,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x20,0x69,0x64,0x3d,0x22,0x64,0x6d,0x2d,0x6f,0x75,0x74,0x62,0x6f,0x78,0x22,0x20,0x72,0x6f,0x77,0x73,0x3d,0x22,0x34,0x22,0x20,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x3d,0x22,0x45,0x6e,0x74,0x65,0x72,0x20,0x79,0x6f,0x75,0x72,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x74,0x6f,0x20,0x73,0x65,0x6e,0x64,0x20,0x74,0x6f,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x2e,0x2e,0x2e,0x22,0x3e,0x3c,0x2f,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x53,0x65,0x6e,0x64,0x20,0x42,0x75,0x74,0x74,0x6f,0x6e,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x69,0x6e,0x70,0x75,0x74,0x2d,0x67,0x72,0x6f,0x75,0x70,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x62,0x75,0x74,0x74,0x6f,0x6e,0x22,0x20,0x69,0x64,0x3d,0x22,0x73,0x65,0x6e,0x64,0x2d,0x64,0x6d,0x2d,0x62,0x74,0x6e,0x22,0x3e,0x53,0x45,0x4e,0x44,0x20,0x4d,0x45,0x53,0x53,0x41,0x47,0x45,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x49,0x6e,0x62,0x6f,0x78,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x69,0x6e,0x70,0x75,0x74,0x2d,0x67,0x72,0x6f,0x75,0x70,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x52,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x20,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x20,0x66,0x72,0x6f,0x6d,0x20,0x52,0x65,0x6c,0x61,0x79,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x69,0x64,0x3d,0x22,0x64,0x6d,0x2d,0x69,0x6e,0x62,0x6f,0x78,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6c,0x6f,0x67,0x2d,0x70,0x61,0x6e,0x65,0x6c,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x32,0x30,0x30,0x70,0x78,0x3b,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6c,0x6f,0x67,0x2d,0x65,0x6e,0x74,0x72,0x79,0x22,0x3e,0x4e,0x6f,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x20,0x79,0x65,0x74,0x2e,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x4c,0x6f,0x61,0x64,0x20,0x74,0x68,0x65,0x20,0x6f,0x66,0x66,0x69,0x63,0x69,0x61,0x6c,0x20,0x6e,0x6f,0x73,0x74,0x72,0x2d,0x74,0x6f,0x6f,0x6c,0x73,0x20,0x62,0x75,0x6e,0x64,0x6c,0x65,0x20,0x66,0x69,0x72,0x73,0x74,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x73,0x72,0x63,0x3d,0x22,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x6c,0x61,0x61,0x6e,0x74,0x75,0x6e,0x67,0x69,0x72,0x2e,0x6e,0x65,0x74,0x2f,0x6e,0x6f,0x73,0x74,0x72,0x2d,0x6c,0x6f,0x67,0x69,0x6e,0x2d,0x6c,0x69,0x74,0x65,0x2f,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x62,0x75,0x6e,0x64,0x6c,0x65,0x2e,0x6a,0x73,0x22,0x3e,0x3c,0x2f,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x73,0x72,0x63,0x3d,0x22,0x2f,0x61,0x70,0x69,0x2f,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x62,0x75,0x6e,0x64,0x6c,0x65,0x2e,0x6a,0x73,0x22,0x3e,0x3c,0x2f,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x4c,0x6f,0x61,0x64,0x20,0x4e,0x4f,0x53,0x54,0x52,0x5f,0x4c,0x4f,0x47,0x49,0x4e,0x5f,0x4c,0x49,0x54,0x45,0x20,0x6d,0x61,0x69,0x6e,0x20,0x6c,0x69,0x62,0x72,0x61,0x72,0x79,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x73,0x72,0x63,0x3d,0x22,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x6c,0x61,0x61,0x6e,0x74,0x75,0x6e,0x67,0x69,0x72,0x2e,0x6e,0x65,0x74,0x2f,0x6e,0x6f,0x73,0x74,0x72,0x2d,0x6c,0x6f,0x67,0x69,0x6e,0x2d,0x6c,0x69,0x74,0x65,0x2f,0x6e,0x6f,0x73,0x74,0x72,0x2d,0x6c,0x69,0x74,0x65,0x2e,0x6a,0x73,0x22,0x3e,0x3c,0x2f,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x73,0x72,0x63,0x3d,0x22,0x2f,0x61,0x70,0x69,0x2f,0x6e,0x6f,0x73,0x74,0x72,0x2d,0x6c,0x69,0x74,0x65,0x2e,0x6a,0x73,0x22,0x3e,0x3c,0x2f,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x20,0x20,0x20,0x20,0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x73,0x72,0x63,0x3d,0x22,0x2f,0x61,0x70,0x69,0x2f,0x69,0x6e,0x64,0x65,0x78,0x2e,0x6a,0x73,0x22,0x3e,0x3c,0x2f,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x0a,0x3c,0x2f,0x62,0x6f,0x64,0x79,0x3e,0x0a,0x0a,0x3c,0x2f,0x68,0x74,0x6d,0x6c,0x3e,};
-static const size_t index_html_size = 12812;
+0x3c,0x21,0x44,0x4f,0x43,0x54,0x59,0x50,0x45,0x20,0x68,0x74,0x6d,0x6c,0x3e,0x0a,0x3c,0x68,0x74,0x6d,0x6c,0x20,0x6c,0x61,0x6e,0x67,0x3d,0x22,0x65,0x6e,0x22,0x3e,0x0a,0x0a,0x3c,0x68,0x65,0x61,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x6d,0x65,0x74,0x61,0x20,0x63,0x68,0x61,0x72,0x73,0x65,0x74,0x3d,0x22,0x55,0x54,0x46,0x2d,0x38,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x6d,0x65,0x74,0x61,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x76,0x69,0x65,0x77,0x70,0x6f,0x72,0x74,0x22,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3d,0x22,0x77,0x69,0x64,0x74,0x68,0x3d,0x64,0x65,0x76,0x69,0x63,0x65,0x2d,0x77,0x69,0x64,0x74,0x68,0x2c,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3d,0x31,0x2e,0x30,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x74,0x69,0x74,0x6c,0x65,0x3e,0x43,0x2d,0x52,0x65,0x6c,0x61,0x79,0x20,0x41,0x64,0x6d,0x69,0x6e,0x3c,0x2f,0x74,0x69,0x74,0x6c,0x65,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x6c,0x69,0x6e,0x6b,0x20,0x72,0x65,0x6c,0x3d,0x22,0x73,0x74,0x79,0x6c,0x65,0x73,0x68,0x65,0x65,0x74,0x22,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x2f,0x61,0x70,0x69,0x2f,0x69,0x6e,0x64,0x65,0x78,0x2e,0x63,0x73,0x73,0x22,0x3e,0x0a,0x3c,0x2f,0x68,0x65,0x61,0x64,0x3e,0x0a,0x0a,0x3c,0x62,0x6f,0x64,0x79,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x48,0x65,0x61,0x64,0x65,0x72,0x20,0x77,0x69,0x74,0x68,0x20,0x74,0x69,0x74,0x6c,0x65,0x20,0x61,0x6e,0x64,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x68,0x65,0x61,0x64,0x65,0x72,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6d,0x61,0x69,0x6e,0x2d,0x68,0x65,0x61,0x64,0x65,0x72,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x68,0x65,0x61,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x68,0x65,0x61,0x64,0x65,0x72,0x2d,0x74,0x69,0x74,0x6c,0x65,0x22,0x3e,0x43,0x2d,0x52,0x45,0x4c,0x41,0x59,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x2d,0x61,0x72,0x65,0x61,0x22,0x20,0x69,0x64,0x3d,0x22,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x2d,0x61,0x72,0x65,0x61,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x6e,0x6f,0x6e,0x65,0x3b,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x69,0x6d,0x67,0x20,0x69,0x64,0x3d,0x22,0x68,0x65,0x61,0x64,0x65,0x72,0x2d,0x75,0x73,0x65,0x72,0x2d,0x69,0x6d,0x61,0x67,0x65,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x68,0x65,0x61,0x64,0x65,0x72,0x2d,0x75,0x73,0x65,0x72,0x2d,0x69,0x6d,0x61,0x67,0x65,0x22,0x20,0x61,0x6c,0x74,0x3d,0x22,0x50,0x72,0x6f,0x66,0x69,0x6c,0x65,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x6e,0x6f,0x6e,0x65,0x3b,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x73,0x70,0x61,0x6e,0x20,0x69,0x64,0x3d,0x22,0x68,0x65,0x61,0x64,0x65,0x72,0x2d,0x75,0x73,0x65,0x72,0x2d,0x6e,0x61,0x6d,0x65,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x68,0x65,0x61,0x64,0x65,0x72,0x2d,0x75,0x73,0x65,0x72,0x2d,0x6e,0x61,0x6d,0x65,0x22,0x3e,0x4c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x2e,0x2e,0x2e,0x3c,0x2f,0x73,0x70,0x61,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x20,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x2d,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x22,0x20,0x69,0x64,0x3d,0x22,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x2d,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x6e,0x6f,0x6e,0x65,0x3b,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x62,0x75,0x74,0x74,0x6f,0x6e,0x22,0x20,0x69,0x64,0x3d,0x22,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x2d,0x62,0x74,0x6e,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x2d,0x62,0x74,0x6e,0x22,0x3e,0x4c,0x4f,0x47,0x4f,0x55,0x54,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x2f,0x68,0x65,0x61,0x64,0x65,0x72,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x4c,0x6f,0x67,0x69,0x6e,0x20,0x4d,0x6f,0x64,0x61,0x6c,0x20,0x4f,0x76,0x65,0x72,0x6c,0x61,0x79,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x69,0x64,0x3d,0x22,0x6c,0x6f,0x67,0x69,0x6e,0x2d,0x6d,0x6f,0x64,0x61,0x6c,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6c,0x6f,0x67,0x69,0x6e,0x2d,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x6e,0x6f,0x6e,0x65,0x3b,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6c,0x6f,0x67,0x69,0x6e,0x2d,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x69,0x64,0x3d,0x22,0x6c,0x6f,0x67,0x69,0x6e,0x2d,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x22,0x3e,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x4d,0x61,0x69,0x6e,0x20,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x20,0x57,0x72,0x61,0x70,0x70,0x65,0x72,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6d,0x61,0x69,0x6e,0x2d,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x2d,0x77,0x72,0x61,0x70,0x70,0x65,0x72,0x22,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x52,0x65,0x6c,0x61,0x79,0x20,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x69,0x64,0x3d,0x22,0x72,0x65,0x6c,0x61,0x79,0x2d,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2d,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x66,0x6c,0x65,0x78,0x2d,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x68,0x32,0x3e,0x52,0x45,0x4c,0x41,0x59,0x20,0x43,0x4f,0x4e,0x4e,0x45,0x43,0x54,0x49,0x4f,0x4e,0x3c,0x2f,0x68,0x32,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x69,0x6e,0x70,0x75,0x74,0x2d,0x67,0x72,0x6f,0x75,0x70,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x20,0x66,0x6f,0x72,0x3d,0x22,0x72,0x65,0x6c,0x61,0x79,0x2d,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2d,0x75,0x72,0x6c,0x22,0x3e,0x52,0x65,0x6c,0x61,0x79,0x20,0x55,0x52,0x4c,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x74,0x65,0x78,0x74,0x22,0x20,0x69,0x64,0x3d,0x22,0x72,0x65,0x6c,0x61,0x79,0x2d,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2d,0x75,0x72,0x6c,0x22,0x20,0x76,0x61,0x6c,0x75,0x65,0x3d,0x22,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x3d,0x22,0x77,0x73,0x3a,0x2f,0x2f,0x6c,0x6f,0x63,0x61,0x6c,0x68,0x6f,0x73,0x74,0x3a,0x38,0x38,0x38,0x38,0x20,0x6f,0x72,0x20,0x77,0x73,0x73,0x3a,0x2f,0x2f,0x72,0x65,0x6c,0x61,0x79,0x2e,0x65,0x78,0x61,0x6d,0x70,0x6c,0x65,0x2e,0x63,0x6f,0x6d,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x69,0x6e,0x70,0x75,0x74,0x2d,0x67,0x72,0x6f,0x75,0x70,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x20,0x66,0x6f,0x72,0x3d,0x22,0x72,0x65,0x6c,0x61,0x79,0x2d,0x70,0x75,0x62,0x6b,0x65,0x79,0x2d,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x22,0x3e,0x52,0x65,0x6c,0x61,0x79,0x20,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x28,0x69,0x66,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x20,0x76,0x69,0x61,0x20,0x4e,0x49,0x50,0x2d,0x31,0x31,0x29,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x74,0x65,0x78,0x74,0x22,0x20,0x69,0x64,0x3d,0x22,0x72,0x65,0x6c,0x61,0x79,0x2d,0x70,0x75,0x62,0x6b,0x65,0x79,0x2d,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x22,0x20,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x3d,0x22,0x36,0x34,0x2d,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x20,0x68,0x65,0x78,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x3d,0x22,0x5b,0x30,0x2d,0x39,0x61,0x2d,0x66,0x41,0x2d,0x46,0x5d,0x7b,0x36,0x34,0x7d,0x22,0x20,0x74,0x69,0x74,0x6c,0x65,0x3d,0x22,0x36,0x34,0x2d,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x20,0x68,0x65,0x78,0x61,0x64,0x65,0x63,0x69,0x6d,0x61,0x6c,0x20,0x70,0x75,0x62,0x6c,0x69,0x63,0x20,0x6b,0x65,0x79,0x22,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x73,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x62,0x75,0x74,0x74,0x6f,0x6e,0x22,0x20,0x69,0x64,0x3d,0x22,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x2d,0x72,0x65,0x6c,0x61,0x79,0x2d,0x62,0x74,0x6e,0x22,0x3e,0x43,0x4f,0x4e,0x4e,0x45,0x43,0x54,0x20,0x54,0x4f,0x20,0x52,0x45,0x4c,0x41,0x59,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x62,0x75,0x74,0x74,0x6f,0x6e,0x22,0x20,0x69,0x64,0x3d,0x22,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x2d,0x72,0x65,0x6c,0x61,0x79,0x2d,0x62,0x74,0x6e,0x22,0x20,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x3e,0x44,0x49,0x53,0x43,0x4f,0x4e,0x4e,0x45,0x43,0x54,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x62,0x75,0x74,0x74,0x6f,0x6e,0x22,0x20,0x69,0x64,0x3d,0x22,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x2d,0x72,0x65,0x6c,0x61,0x79,0x2d,0x62,0x74,0x6e,0x22,0x20,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x3e,0x52,0x45,0x53,0x54,0x41,0x52,0x54,0x20,0x52,0x45,0x4c,0x41,0x59,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x22,0x20,0x69,0x64,0x3d,0x22,0x72,0x65,0x6c,0x61,0x79,0x2d,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2d,0x73,0x74,0x61,0x74,0x75,0x73,0x22,0x3e,0x4e,0x4f,0x54,0x20,0x43,0x4f,0x4e,0x4e,0x45,0x43,0x54,0x45,0x44,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x52,0x65,0x6c,0x61,0x79,0x20,0x49,0x6e,0x66,0x6f,0x72,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x20,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x69,0x64,0x3d,0x22,0x72,0x65,0x6c,0x61,0x79,0x2d,0x69,0x6e,0x66,0x6f,0x2d,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x68,0x69,0x64,0x64,0x65,0x6e,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x68,0x33,0x3e,0x52,0x65,0x6c,0x61,0x79,0x20,0x49,0x6e,0x66,0x6f,0x72,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x20,0x28,0x4e,0x49,0x50,0x2d,0x31,0x31,0x29,0x3c,0x2f,0x68,0x33,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x61,0x62,0x6c,0x65,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x22,0x20,0x69,0x64,0x3d,0x22,0x72,0x65,0x6c,0x61,0x79,0x2d,0x69,0x6e,0x66,0x6f,0x2d,0x74,0x61,0x62,0x6c,0x65,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x65,0x61,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x56,0x61,0x6c,0x75,0x65,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x68,0x65,0x61,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x62,0x6f,0x64,0x79,0x20,0x69,0x64,0x3d,0x22,0x72,0x65,0x6c,0x61,0x79,0x2d,0x69,0x6e,0x66,0x6f,0x2d,0x74,0x61,0x62,0x6c,0x65,0x2d,0x62,0x6f,0x64,0x79,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x62,0x6f,0x64,0x79,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x61,0x62,0x6c,0x65,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x0a,0x0a,0x0a,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x45,0x6e,0x64,0x20,0x4d,0x61,0x69,0x6e,0x20,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x20,0x57,0x72,0x61,0x70,0x70,0x65,0x72,0x20,0x2d,0x2d,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x44,0x41,0x54,0x41,0x42,0x41,0x53,0x45,0x20,0x53,0x54,0x41,0x54,0x49,0x53,0x54,0x49,0x43,0x53,0x20,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6c,0x65,0x78,0x2d,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x20,0x69,0x64,0x3d,0x22,0x64,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x53,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x6e,0x6f,0x6e,0x65,0x3b,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2d,0x68,0x65,0x61,0x64,0x65,0x72,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x68,0x32,0x3e,0x44,0x41,0x54,0x41,0x42,0x41,0x53,0x45,0x20,0x53,0x54,0x41,0x54,0x49,0x53,0x54,0x49,0x43,0x53,0x3c,0x2f,0x68,0x32,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x62,0x75,0x74,0x74,0x6f,0x6e,0x22,0x20,0x69,0x64,0x3d,0x22,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x2d,0x73,0x74,0x61,0x74,0x73,0x2d,0x62,0x74,0x6e,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x2d,0x62,0x74,0x6e,0x22,0x3e,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x44,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x20,0x4f,0x76,0x65,0x72,0x76,0x69,0x65,0x77,0x20,0x54,0x61,0x62,0x6c,0x65,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x69,0x6e,0x70,0x75,0x74,0x2d,0x67,0x72,0x6f,0x75,0x70,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x44,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x20,0x4f,0x76,0x65,0x72,0x76,0x69,0x65,0x77,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x61,0x62,0x6c,0x65,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x22,0x20,0x69,0x64,0x3d,0x22,0x73,0x74,0x61,0x74,0x73,0x2d,0x6f,0x76,0x65,0x72,0x76,0x69,0x65,0x77,0x2d,0x74,0x61,0x62,0x6c,0x65,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x65,0x61,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x4d,0x65,0x74,0x72,0x69,0x63,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x56,0x61,0x6c,0x75,0x65,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x44,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x68,0x65,0x61,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x62,0x6f,0x64,0x79,0x20,0x69,0x64,0x3d,0x22,0x73,0x74,0x61,0x74,0x73,0x2d,0x6f,0x76,0x65,0x72,0x76,0x69,0x65,0x77,0x2d,0x74,0x61,0x62,0x6c,0x65,0x2d,0x62,0x6f,0x64,0x79,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x44,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x20,0x53,0x69,0x7a,0x65,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x20,0x69,0x64,0x3d,0x22,0x64,0x62,0x2d,0x73,0x69,0x7a,0x65,0x22,0x3e,0x2d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x64,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x20,0x66,0x69,0x6c,0x65,0x20,0x73,0x69,0x7a,0x65,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x54,0x6f,0x74,0x61,0x6c,0x20,0x45,0x76,0x65,0x6e,0x74,0x73,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x20,0x69,0x64,0x3d,0x22,0x74,0x6f,0x74,0x61,0x6c,0x2d,0x65,0x76,0x65,0x6e,0x74,0x73,0x22,0x3e,0x2d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x54,0x6f,0x74,0x61,0x6c,0x20,0x6e,0x75,0x6d,0x62,0x65,0x72,0x20,0x6f,0x66,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x20,0x73,0x74,0x6f,0x72,0x65,0x64,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x4f,0x6c,0x64,0x65,0x73,0x74,0x20,0x45,0x76,0x65,0x6e,0x74,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x20,0x69,0x64,0x3d,0x22,0x6f,0x6c,0x64,0x65,0x73,0x74,0x2d,0x65,0x76,0x65,0x6e,0x74,0x22,0x3e,0x2d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x54,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x20,0x6f,0x66,0x20,0x6f,0x6c,0x64,0x65,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x4e,0x65,0x77,0x65,0x73,0x74,0x20,0x45,0x76,0x65,0x6e,0x74,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x20,0x69,0x64,0x3d,0x22,0x6e,0x65,0x77,0x65,0x73,0x74,0x2d,0x65,0x76,0x65,0x6e,0x74,0x22,0x3e,0x2d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x54,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x20,0x6f,0x66,0x20,0x6e,0x65,0x77,0x65,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x62,0x6f,0x64,0x79,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x61,0x62,0x6c,0x65,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x45,0x76,0x65,0x6e,0x74,0x20,0x4b,0x69,0x6e,0x64,0x20,0x44,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x20,0x54,0x61,0x62,0x6c,0x65,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x69,0x6e,0x70,0x75,0x74,0x2d,0x67,0x72,0x6f,0x75,0x70,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x45,0x76,0x65,0x6e,0x74,0x20,0x4b,0x69,0x6e,0x64,0x20,0x44,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x61,0x62,0x6c,0x65,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x22,0x20,0x69,0x64,0x3d,0x22,0x73,0x74,0x61,0x74,0x73,0x2d,0x6b,0x69,0x6e,0x64,0x73,0x2d,0x74,0x61,0x62,0x6c,0x65,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x65,0x61,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x45,0x76,0x65,0x6e,0x74,0x20,0x4b,0x69,0x6e,0x64,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x43,0x6f,0x75,0x6e,0x74,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x50,0x65,0x72,0x63,0x65,0x6e,0x74,0x61,0x67,0x65,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x68,0x65,0x61,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x62,0x6f,0x64,0x79,0x20,0x69,0x64,0x3d,0x22,0x73,0x74,0x61,0x74,0x73,0x2d,0x6b,0x69,0x6e,0x64,0x73,0x2d,0x74,0x61,0x62,0x6c,0x65,0x2d,0x62,0x6f,0x64,0x79,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x20,0x63,0x6f,0x6c,0x73,0x70,0x61,0x6e,0x3d,0x22,0x33,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x20,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x20,0x69,0x74,0x61,0x6c,0x69,0x63,0x3b,0x22,0x3e,0x4e,0x6f,0x20,0x64,0x61,0x74,0x61,0x20,0x6c,0x6f,0x61,0x64,0x65,0x64,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x62,0x6f,0x64,0x79,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x61,0x62,0x6c,0x65,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x54,0x69,0x6d,0x65,0x2d,0x62,0x61,0x73,0x65,0x64,0x20,0x53,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x20,0x54,0x61,0x62,0x6c,0x65,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x69,0x6e,0x70,0x75,0x74,0x2d,0x67,0x72,0x6f,0x75,0x70,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x54,0x69,0x6d,0x65,0x2d,0x62,0x61,0x73,0x65,0x64,0x20,0x53,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x61,0x62,0x6c,0x65,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x22,0x20,0x69,0x64,0x3d,0x22,0x73,0x74,0x61,0x74,0x73,0x2d,0x74,0x69,0x6d,0x65,0x2d,0x74,0x61,0x62,0x6c,0x65,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x65,0x61,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x50,0x65,0x72,0x69,0x6f,0x64,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x45,0x76,0x65,0x6e,0x74,0x73,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x44,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x68,0x65,0x61,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x62,0x6f,0x64,0x79,0x20,0x69,0x64,0x3d,0x22,0x73,0x74,0x61,0x74,0x73,0x2d,0x74,0x69,0x6d,0x65,0x2d,0x74,0x61,0x62,0x6c,0x65,0x2d,0x62,0x6f,0x64,0x79,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x4c,0x61,0x73,0x74,0x20,0x32,0x34,0x20,0x48,0x6f,0x75,0x72,0x73,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x20,0x69,0x64,0x3d,0x22,0x65,0x76,0x65,0x6e,0x74,0x73,0x2d,0x32,0x34,0x68,0x22,0x3e,0x2d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x45,0x76,0x65,0x6e,0x74,0x73,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x6c,0x61,0x73,0x74,0x20,0x64,0x61,0x79,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x4c,0x61,0x73,0x74,0x20,0x37,0x20,0x44,0x61,0x79,0x73,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x20,0x69,0x64,0x3d,0x22,0x65,0x76,0x65,0x6e,0x74,0x73,0x2d,0x37,0x64,0x22,0x3e,0x2d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x45,0x76,0x65,0x6e,0x74,0x73,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x6c,0x61,0x73,0x74,0x20,0x77,0x65,0x65,0x6b,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x4c,0x61,0x73,0x74,0x20,0x33,0x30,0x20,0x44,0x61,0x79,0x73,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x20,0x69,0x64,0x3d,0x22,0x65,0x76,0x65,0x6e,0x74,0x73,0x2d,0x33,0x30,0x64,0x22,0x3e,0x2d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x45,0x76,0x65,0x6e,0x74,0x73,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x6c,0x61,0x73,0x74,0x20,0x6d,0x6f,0x6e,0x74,0x68,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x62,0x6f,0x64,0x79,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x61,0x62,0x6c,0x65,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x54,0x6f,0x70,0x20,0x50,0x75,0x62,0x6b,0x65,0x79,0x73,0x20,0x54,0x61,0x62,0x6c,0x65,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x69,0x6e,0x70,0x75,0x74,0x2d,0x67,0x72,0x6f,0x75,0x70,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x54,0x6f,0x70,0x20,0x50,0x75,0x62,0x6b,0x65,0x79,0x73,0x20,0x62,0x79,0x20,0x45,0x76,0x65,0x6e,0x74,0x20,0x43,0x6f,0x75,0x6e,0x74,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x61,0x62,0x6c,0x65,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x22,0x20,0x69,0x64,0x3d,0x22,0x73,0x74,0x61,0x74,0x73,0x2d,0x70,0x75,0x62,0x6b,0x65,0x79,0x73,0x2d,0x74,0x61,0x62,0x6c,0x65,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x65,0x61,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x52,0x61,0x6e,0x6b,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x50,0x75,0x62,0x6b,0x65,0x79,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x45,0x76,0x65,0x6e,0x74,0x20,0x43,0x6f,0x75,0x6e,0x74,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x50,0x65,0x72,0x63,0x65,0x6e,0x74,0x61,0x67,0x65,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x68,0x65,0x61,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x62,0x6f,0x64,0x79,0x20,0x69,0x64,0x3d,0x22,0x73,0x74,0x61,0x74,0x73,0x2d,0x70,0x75,0x62,0x6b,0x65,0x79,0x73,0x2d,0x74,0x61,0x62,0x6c,0x65,0x2d,0x62,0x6f,0x64,0x79,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x20,0x63,0x6f,0x6c,0x73,0x70,0x61,0x6e,0x3d,0x22,0x34,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x20,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x20,0x69,0x74,0x61,0x6c,0x69,0x63,0x3b,0x22,0x3e,0x4e,0x6f,0x20,0x64,0x61,0x74,0x61,0x20,0x6c,0x6f,0x61,0x64,0x65,0x64,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x62,0x6f,0x64,0x79,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x61,0x62,0x6c,0x65,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x54,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x69,0x64,0x3d,0x22,0x64,0x69,0x76,0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6c,0x65,0x78,0x2d,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x6e,0x6f,0x6e,0x65,0x3b,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x68,0x32,0x3e,0x52,0x45,0x4c,0x41,0x59,0x20,0x43,0x4f,0x4e,0x46,0x49,0x47,0x55,0x52,0x41,0x54,0x49,0x4f,0x4e,0x3c,0x2f,0x68,0x32,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x69,0x64,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x68,0x69,0x64,0x64,0x65,0x6e,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x61,0x62,0x6c,0x65,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x22,0x20,0x69,0x64,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x65,0x61,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x50,0x61,0x72,0x61,0x6d,0x65,0x74,0x65,0x72,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x56,0x61,0x6c,0x75,0x65,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x41,0x63,0x74,0x69,0x6f,0x6e,0x73,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x68,0x65,0x61,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x62,0x6f,0x64,0x79,0x20,0x69,0x64,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x2d,0x62,0x6f,0x64,0x79,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x62,0x6f,0x64,0x79,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x61,0x62,0x6c,0x65,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x73,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x62,0x75,0x74,0x74,0x6f,0x6e,0x22,0x20,0x69,0x64,0x3d,0x22,0x66,0x65,0x74,0x63,0x68,0x2d,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x62,0x74,0x6e,0x22,0x3e,0x52,0x45,0x46,0x52,0x45,0x53,0x48,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x73,0x20,0x4d,0x61,0x6e,0x61,0x67,0x65,0x6d,0x65,0x6e,0x74,0x20,0x2d,0x20,0x4d,0x6f,0x76,0x65,0x64,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6c,0x65,0x78,0x2d,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x20,0x69,0x64,0x3d,0x22,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x6e,0x6f,0x6e,0x65,0x3b,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2d,0x68,0x65,0x61,0x64,0x65,0x72,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x68,0x32,0x3e,0x41,0x55,0x54,0x48,0x20,0x52,0x55,0x4c,0x45,0x53,0x20,0x4d,0x41,0x4e,0x41,0x47,0x45,0x4d,0x45,0x4e,0x54,0x3c,0x2f,0x68,0x32,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x73,0x20,0x54,0x61,0x62,0x6c,0x65,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x69,0x64,0x3d,0x22,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x6e,0x6f,0x6e,0x65,0x3b,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x61,0x62,0x6c,0x65,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x22,0x20,0x69,0x64,0x3d,0x22,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x65,0x61,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x52,0x75,0x6c,0x65,0x20,0x54,0x79,0x70,0x65,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x20,0x54,0x79,0x70,0x65,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x20,0x56,0x61,0x6c,0x75,0x65,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x53,0x74,0x61,0x74,0x75,0x73,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x68,0x3e,0x41,0x63,0x74,0x69,0x6f,0x6e,0x73,0x3c,0x2f,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x68,0x65,0x61,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x62,0x6f,0x64,0x79,0x20,0x69,0x64,0x3d,0x22,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x62,0x6f,0x64,0x79,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x61,0x62,0x6c,0x65,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x53,0x69,0x6d,0x70,0x6c,0x69,0x66,0x69,0x65,0x64,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x20,0x49,0x6e,0x70,0x75,0x74,0x20,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x69,0x64,0x3d,0x22,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x49,0x6e,0x70,0x75,0x74,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x22,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x43,0x6f,0x6d,0x62,0x69,0x6e,0x65,0x64,0x20,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x20,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x2d,0x2d,0x3e,0x0a,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x69,0x6e,0x70,0x75,0x74,0x2d,0x67,0x72,0x6f,0x75,0x70,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x20,0x66,0x6f,0x72,0x3d,0x22,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x50,0x75,0x62,0x6b,0x65,0x79,0x22,0x3e,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x28,0x6e,0x73,0x65,0x63,0x20,0x6f,0x72,0x20,0x68,0x65,0x78,0x29,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x74,0x65,0x78,0x74,0x22,0x20,0x69,0x64,0x3d,0x22,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x50,0x75,0x62,0x6b,0x65,0x79,0x22,0x20,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x3d,0x22,0x6e,0x73,0x65,0x63,0x31,0x2e,0x2e,0x2e,0x20,0x6f,0x72,0x20,0x36,0x34,0x2d,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x20,0x68,0x65,0x78,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x22,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x69,0x64,0x3d,0x22,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x57,0x61,0x72,0x6e,0x69,0x6e,0x67,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x2d,0x62,0x6f,0x78,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x6e,0x6f,0x6e,0x65,0x3b,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x73,0x74,0x72,0x6f,0x6e,0x67,0x3e,0xe2,0x9a,0xa0,0xef,0xb8,0x8f,0x20,0x57,0x41,0x52,0x4e,0x49,0x4e,0x47,0x3a,0x3c,0x2f,0x73,0x74,0x72,0x6f,0x6e,0x67,0x3e,0x20,0x41,0x64,0x64,0x69,0x6e,0x67,0x20,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x73,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x62,0x65,0x68,0x61,0x76,0x69,0x6f,0x72,0x20,0x74,0x6f,0x20,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x2d,0x6f,0x6e,0x6c,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x64,0x65,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4f,0x6e,0x6c,0x79,0x20,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x65,0x64,0x20,0x75,0x73,0x65,0x72,0x73,0x20,0x77,0x69,0x6c,0x6c,0x20,0x62,0x65,0x20,0x61,0x62,0x6c,0x65,0x20,0x74,0x6f,0x20,0x69,0x6e,0x74,0x65,0x72,0x61,0x63,0x74,0x20,0x77,0x69,0x74,0x68,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x73,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x62,0x75,0x74,0x74,0x6f,0x6e,0x22,0x20,0x69,0x64,0x3d,0x22,0x61,0x64,0x64,0x57,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x42,0x74,0x6e,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x61,0x64,0x64,0x57,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x52,0x75,0x6c,0x65,0x28,0x29,0x22,0x3e,0x41,0x44,0x44,0x20,0x54,0x4f,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x57,0x48,0x49,0x54,0x45,0x4c,0x49,0x53,0x54,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x62,0x75,0x74,0x74,0x6f,0x6e,0x22,0x20,0x69,0x64,0x3d,0x22,0x61,0x64,0x64,0x42,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x42,0x74,0x6e,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x61,0x64,0x64,0x42,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x52,0x75,0x6c,0x65,0x28,0x29,0x22,0x3e,0x41,0x44,0x44,0x20,0x54,0x4f,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x42,0x4c,0x41,0x43,0x4b,0x4c,0x49,0x53,0x54,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x62,0x75,0x74,0x74,0x6f,0x6e,0x22,0x20,0x69,0x64,0x3d,0x22,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x42,0x74,0x6e,0x22,0x3e,0x52,0x45,0x46,0x52,0x45,0x53,0x48,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x44,0x49,0x52,0x45,0x43,0x54,0x20,0x4d,0x45,0x53,0x53,0x41,0x47,0x45,0x53,0x20,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x20,0x69,0x64,0x3d,0x22,0x6e,0x69,0x70,0x31,0x37,0x44,0x4d,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x6e,0x6f,0x6e,0x65,0x3b,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2d,0x68,0x65,0x61,0x64,0x65,0x72,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x68,0x32,0x3e,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x44,0x49,0x52,0x45,0x43,0x54,0x20,0x4d,0x45,0x53,0x53,0x41,0x47,0x45,0x53,0x3c,0x2f,0x68,0x32,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x4f,0x75,0x74,0x62,0x6f,0x78,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x69,0x6e,0x70,0x75,0x74,0x2d,0x67,0x72,0x6f,0x75,0x70,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x20,0x66,0x6f,0x72,0x3d,0x22,0x64,0x6d,0x2d,0x6f,0x75,0x74,0x62,0x6f,0x78,0x22,0x3e,0x53,0x65,0x6e,0x64,0x20,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x74,0x6f,0x20,0x52,0x65,0x6c,0x61,0x79,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x20,0x69,0x64,0x3d,0x22,0x64,0x6d,0x2d,0x6f,0x75,0x74,0x62,0x6f,0x78,0x22,0x20,0x72,0x6f,0x77,0x73,0x3d,0x22,0x34,0x22,0x20,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x3d,0x22,0x45,0x6e,0x74,0x65,0x72,0x20,0x79,0x6f,0x75,0x72,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x74,0x6f,0x20,0x73,0x65,0x6e,0x64,0x20,0x74,0x6f,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x2e,0x2e,0x2e,0x22,0x3e,0x3c,0x2f,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x53,0x65,0x6e,0x64,0x20,0x42,0x75,0x74,0x74,0x6f,0x6e,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x69,0x6e,0x70,0x75,0x74,0x2d,0x67,0x72,0x6f,0x75,0x70,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x62,0x75,0x74,0x74,0x6f,0x6e,0x22,0x20,0x69,0x64,0x3d,0x22,0x73,0x65,0x6e,0x64,0x2d,0x64,0x6d,0x2d,0x62,0x74,0x6e,0x22,0x3e,0x53,0x45,0x4e,0x44,0x20,0x4d,0x45,0x53,0x53,0x41,0x47,0x45,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x49,0x6e,0x62,0x6f,0x78,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x69,0x6e,0x70,0x75,0x74,0x2d,0x67,0x72,0x6f,0x75,0x70,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x52,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x20,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x20,0x66,0x72,0x6f,0x6d,0x20,0x52,0x65,0x6c,0x61,0x79,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x69,0x64,0x3d,0x22,0x64,0x6d,0x2d,0x69,0x6e,0x62,0x6f,0x78,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6c,0x6f,0x67,0x2d,0x70,0x61,0x6e,0x65,0x6c,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x32,0x30,0x30,0x70,0x78,0x3b,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6c,0x6f,0x67,0x2d,0x65,0x6e,0x74,0x72,0x79,0x22,0x3e,0x4e,0x6f,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x20,0x79,0x65,0x74,0x2e,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x4c,0x6f,0x61,0x64,0x20,0x74,0x68,0x65,0x20,0x6f,0x66,0x66,0x69,0x63,0x69,0x61,0x6c,0x20,0x6e,0x6f,0x73,0x74,0x72,0x2d,0x74,0x6f,0x6f,0x6c,0x73,0x20,0x62,0x75,0x6e,0x64,0x6c,0x65,0x20,0x66,0x69,0x72,0x73,0x74,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x73,0x72,0x63,0x3d,0x22,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x6c,0x61,0x61,0x6e,0x74,0x75,0x6e,0x67,0x69,0x72,0x2e,0x6e,0x65,0x74,0x2f,0x6e,0x6f,0x73,0x74,0x72,0x2d,0x6c,0x6f,0x67,0x69,0x6e,0x2d,0x6c,0x69,0x74,0x65,0x2f,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x62,0x75,0x6e,0x64,0x6c,0x65,0x2e,0x6a,0x73,0x22,0x3e,0x3c,0x2f,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x73,0x72,0x63,0x3d,0x22,0x2f,0x61,0x70,0x69,0x2f,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x62,0x75,0x6e,0x64,0x6c,0x65,0x2e,0x6a,0x73,0x22,0x3e,0x3c,0x2f,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x4c,0x6f,0x61,0x64,0x20,0x4e,0x4f,0x53,0x54,0x52,0x5f,0x4c,0x4f,0x47,0x49,0x4e,0x5f,0x4c,0x49,0x54,0x45,0x20,0x6d,0x61,0x69,0x6e,0x20,0x6c,0x69,0x62,0x72,0x61,0x72,0x79,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x73,0x72,0x63,0x3d,0x22,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x6c,0x61,0x61,0x6e,0x74,0x75,0x6e,0x67,0x69,0x72,0x2e,0x6e,0x65,0x74,0x2f,0x6e,0x6f,0x73,0x74,0x72,0x2d,0x6c,0x6f,0x67,0x69,0x6e,0x2d,0x6c,0x69,0x74,0x65,0x2f,0x6e,0x6f,0x73,0x74,0x72,0x2d,0x6c,0x69,0x74,0x65,0x2e,0x6a,0x73,0x22,0x3e,0x3c,0x2f,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x73,0x72,0x63,0x3d,0x22,0x2f,0x61,0x70,0x69,0x2f,0x6e,0x6f,0x73,0x74,0x72,0x2d,0x6c,0x69,0x74,0x65,0x2e,0x6a,0x73,0x22,0x3e,0x3c,0x2f,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x20,0x20,0x20,0x20,0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x73,0x72,0x63,0x3d,0x22,0x2f,0x61,0x70,0x69,0x2f,0x69,0x6e,0x64,0x65,0x78,0x2e,0x6a,0x73,0x22,0x3e,0x3c,0x2f,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x0a,0x3c,0x2f,0x62,0x6f,0x64,0x79,0x3e,0x0a,0x0a,0x3c,0x2f,0x68,0x74,0x6d,0x6c,0x3e,};
+static const size_t index_html_size = 12545;
// Auto-generated from api/index.css
static const unsigned char index_css_data[] = {
-0x3a,0x72,0x6f,0x6f,0x74,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x20,0x43,0x6f,0x72,0x65,0x20,0x56,0x61,0x72,0x69,0x61,0x62,0x6c,0x65,0x73,0x20,0x28,0x37,0x29,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x30,0x30,0x30,0x30,0x30,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x66,0x66,0x66,0x66,0x66,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2d,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x66,0x66,0x30,0x30,0x30,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2d,0x2d,0x6d,0x75,0x74,0x65,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x64,0x64,0x64,0x64,0x64,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6d,0x75,0x74,0x65,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x22,0x43,0x6f,0x75,0x72,0x69,0x65,0x72,0x20,0x4e,0x65,0x77,0x22,0x2c,0x20,0x43,0x6f,0x75,0x72,0x69,0x65,0x72,0x2c,0x20,0x6d,0x6f,0x6e,0x6f,0x73,0x70,0x61,0x63,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x31,0x35,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x31,0x70,0x78,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x20,0x46,0x6c,0x6f,0x61,0x74,0x69,0x6e,0x67,0x20,0x54,0x61,0x62,0x20,0x56,0x61,0x72,0x69,0x61,0x62,0x6c,0x65,0x73,0x20,0x28,0x38,0x29,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x67,0x2d,0x6c,0x6f,0x67,0x67,0x65,0x64,0x2d,0x6f,0x75,0x74,0x3a,0x20,0x23,0x66,0x66,0x66,0x66,0x66,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x67,0x2d,0x6c,0x6f,0x67,0x67,0x65,0x64,0x2d,0x69,0x6e,0x3a,0x20,0x23,0x66,0x66,0x66,0x66,0x66,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2d,0x6c,0x6f,0x67,0x67,0x65,0x64,0x2d,0x6f,0x75,0x74,0x3a,0x20,0x30,0x2e,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2d,0x6c,0x6f,0x67,0x67,0x65,0x64,0x2d,0x69,0x6e,0x3a,0x20,0x30,0x2e,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6c,0x6f,0x67,0x67,0x65,0x64,0x2d,0x6f,0x75,0x74,0x3a,0x20,0x23,0x30,0x30,0x30,0x30,0x30,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6c,0x6f,0x67,0x67,0x65,0x64,0x2d,0x69,0x6e,0x3a,0x20,0x23,0x66,0x66,0x66,0x66,0x66,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6c,0x6f,0x67,0x67,0x65,0x64,0x2d,0x6f,0x75,0x74,0x3a,0x20,0x23,0x30,0x30,0x30,0x30,0x30,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6c,0x6f,0x67,0x67,0x65,0x64,0x2d,0x69,0x6e,0x3a,0x20,0x23,0x66,0x66,0x30,0x30,0x30,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2d,0x6c,0x6f,0x67,0x67,0x65,0x64,0x2d,0x6f,0x75,0x74,0x3a,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2d,0x6c,0x6f,0x67,0x67,0x65,0x64,0x2d,0x69,0x6e,0x3a,0x20,0x30,0x2e,0x31,0x3b,0x0a,0x7d,0x0a,0x0a,0x2a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x2d,0x73,0x69,0x7a,0x69,0x6e,0x67,0x3a,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x78,0x3b,0x0a,0x7d,0x0a,0x0a,0x62,0x6f,0x64,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x20,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x31,0x2e,0x34,0x3b,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x32,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x31,0x32,0x30,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x30,0x20,0x61,0x75,0x74,0x6f,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x31,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x29,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x20,0x31,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x20,0x33,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x32,0x34,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x32,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x20,0x31,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x36,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x29,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x32,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x20,0x32,0x30,0x70,0x78,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2d,0x67,0x72,0x6f,0x75,0x70,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x20,0x31,0x35,0x70,0x78,0x3b,0x0a,0x7d,0x0a,0x0a,0x6c,0x61,0x62,0x65,0x6c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x20,0x35,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x62,0x6f,0x6c,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x34,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x69,0x6e,0x70,0x75,0x74,0x2c,0x0a,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x2c,0x0a,0x73,0x65,0x6c,0x65,0x63,0x74,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x31,0x30,0x30,0x25,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x38,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x29,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x34,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x2d,0x73,0x69,0x7a,0x69,0x6e,0x67,0x3a,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x61,0x6c,0x6c,0x20,0x30,0x2e,0x32,0x73,0x20,0x65,0x61,0x73,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x69,0x6e,0x70,0x75,0x74,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2c,0x0a,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2c,0x0a,0x73,0x65,0x6c,0x65,0x63,0x74,0x3a,0x66,0x6f,0x63,0x75,0x73,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x3a,0x20,0x6e,0x6f,0x6e,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x31,0x30,0x30,0x25,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x38,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x29,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x34,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x20,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x35,0x70,0x78,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x62,0x6f,0x6c,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x61,0x6c,0x6c,0x20,0x30,0x2e,0x32,0x73,0x20,0x65,0x61,0x73,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3a,0x68,0x6f,0x76,0x65,0x72,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3a,0x61,0x63,0x74,0x69,0x76,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3a,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x63,0x63,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6d,0x75,0x74,0x65,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x20,0x6e,0x6f,0x74,0x2d,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x63,0x63,0x63,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x31,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x31,0x30,0x70,0x78,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x29,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x62,0x6f,0x6c,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x61,0x6c,0x6c,0x20,0x30,0x2e,0x32,0x73,0x20,0x65,0x61,0x73,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x2e,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x2e,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x2e,0x61,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x65,0x64,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x2e,0x65,0x72,0x72,0x6f,0x72,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x31,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x31,0x30,0x30,0x25,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3a,0x20,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x3a,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x31,0x30,0x70,0x78,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x20,0x68,0x69,0x64,0x64,0x65,0x6e,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x20,0x74,0x68,0x2c,0x0a,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x20,0x74,0x64,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x30,0x2e,0x31,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6d,0x75,0x74,0x65,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x34,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x20,0x6c,0x65,0x66,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x30,0x70,0x78,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x78,0x3a,0x20,0x61,0x75,0x74,0x6f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x31,0x30,0x30,0x25,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x20,0x74,0x68,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x62,0x6f,0x6c,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x34,0x30,0x70,0x78,0x3b,0x20,0x2f,0x2a,0x20,0x44,0x6f,0x75,0x62,0x6c,0x65,0x20,0x74,0x68,0x65,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x34,0x30,0x70,0x78,0x3b,0x20,0x2f,0x2a,0x20,0x43,0x65,0x6e,0x74,0x65,0x72,0x20,0x74,0x65,0x78,0x74,0x20,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x6c,0x79,0x20,0x2a,0x2f,0x0a,0x7d,0x0a,0x0a,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x20,0x74,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6d,0x75,0x74,0x65,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2a,0x20,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x69,0x6e,0x70,0x75,0x74,0x73,0x20,0x2d,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x73,0x20,0x61,0x6e,0x64,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x66,0x69,0x74,0x20,0x73,0x65,0x61,0x6d,0x6c,0x65,0x73,0x73,0x6c,0x79,0x20,0x69,0x6e,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x63,0x65,0x6c,0x6c,0x73,0x20,0x2a,0x2f,0x0a,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x76,0x61,0x6c,0x75,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x6e,0x6f,0x6e,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x32,0x70,0x78,0x20,0x34,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x31,0x30,0x30,0x25,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x69,0x6e,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x61,0x75,0x74,0x6f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x30,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x76,0x61,0x6c,0x75,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x66,0x6f,0x63,0x75,0x73,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x31,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x3a,0x20,0x6e,0x6f,0x6e,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2a,0x20,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x20,0x63,0x65,0x6c,0x6c,0x20,0x2d,0x20,0x63,0x6c,0x69,0x63,0x6b,0x61,0x62,0x6c,0x65,0x20,0x66,0x6f,0x72,0x20,0x73,0x61,0x76,0x69,0x6e,0x67,0x20,0x2a,0x2f,0x0a,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x2d,0x63,0x65,0x6c,0x6c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x20,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x61,0x6c,0x6c,0x20,0x30,0x2e,0x32,0x73,0x20,0x65,0x61,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x20,0x63,0x65,0x6e,0x74,0x65,0x72,0x20,0x21,0x69,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x62,0x6f,0x6c,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x20,0x6d,0x69,0x64,0x64,0x6c,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x36,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x69,0x6e,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x36,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x36,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x38,0x70,0x78,0x20,0x34,0x70,0x78,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x2d,0x63,0x65,0x6c,0x6c,0x3a,0x68,0x6f,0x76,0x65,0x72,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x31,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6d,0x75,0x74,0x65,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x6a,0x73,0x6f,0x6e,0x2d,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x29,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x31,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x32,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x74,0x65,0x2d,0x73,0x70,0x61,0x63,0x65,0x3a,0x20,0x70,0x72,0x65,0x2d,0x77,0x72,0x61,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x78,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x33,0x30,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x79,0x3a,0x20,0x61,0x75,0x74,0x6f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x31,0x30,0x70,0x78,0x20,0x30,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x6c,0x6f,0x67,0x2d,0x70,0x61,0x6e,0x65,0x6c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x32,0x30,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x79,0x3a,0x20,0x61,0x75,0x74,0x6f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x29,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x31,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x32,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x6c,0x6f,0x67,0x2d,0x65,0x6e,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x20,0x35,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x20,0x31,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6d,0x75,0x74,0x65,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x20,0x35,0x70,0x78,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x6c,0x6f,0x67,0x2d,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x62,0x6f,0x6c,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x73,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x66,0x6c,0x65,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x67,0x61,0x70,0x3a,0x20,0x31,0x30,0x70,0x78,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x73,0x20,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x65,0x78,0x3a,0x20,0x31,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x75,0x73,0x65,0x72,0x2d,0x69,0x6e,0x66,0x6f,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x31,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x29,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x31,0x30,0x70,0x78,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x75,0x73,0x65,0x72,0x2d,0x69,0x6e,0x66,0x6f,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x66,0x6c,0x65,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x20,0x66,0x6c,0x65,0x78,0x2d,0x73,0x74,0x61,0x72,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x67,0x61,0x70,0x3a,0x20,0x32,0x30,0x70,0x78,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x75,0x73,0x65,0x72,0x2d,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x65,0x78,0x3a,0x20,0x31,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x6c,0x6f,0x67,0x69,0x6e,0x2d,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x2d,0x62,0x74,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x61,0x75,0x74,0x6f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x69,0x6e,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x31,0x32,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x31,0x32,0x70,0x78,0x20,0x31,0x36,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x29,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x34,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x62,0x6f,0x6c,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x20,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x61,0x6c,0x6c,0x20,0x30,0x2e,0x32,0x73,0x20,0x65,0x61,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x65,0x78,0x2d,0x73,0x68,0x72,0x69,0x6e,0x6b,0x3a,0x20,0x30,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x6c,0x6f,0x67,0x69,0x6e,0x2d,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x2d,0x62,0x74,0x6e,0x3a,0x68,0x6f,0x76,0x65,0x72,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x6c,0x6f,0x67,0x69,0x6e,0x2d,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x2d,0x62,0x74,0x6e,0x3a,0x61,0x63,0x74,0x69,0x76,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x6c,0x6f,0x67,0x69,0x6e,0x2d,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x2d,0x62,0x74,0x6e,0x2e,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x2d,0x73,0x74,0x61,0x74,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x6c,0x6f,0x67,0x69,0x6e,0x2d,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x2d,0x62,0x74,0x6e,0x2e,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x2d,0x73,0x74,0x61,0x74,0x65,0x3a,0x68,0x6f,0x76,0x65,0x72,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x75,0x73,0x65,0x72,0x2d,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x32,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x6f,0x72,0x64,0x2d,0x62,0x72,0x65,0x61,0x6b,0x3a,0x20,0x62,0x72,0x65,0x61,0x6b,0x2d,0x61,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x35,0x70,0x78,0x20,0x30,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x68,0x69,0x64,0x64,0x65,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x6e,0x6f,0x6e,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2d,0x68,0x65,0x61,0x64,0x65,0x72,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x66,0x6c,0x65,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x73,0x70,0x61,0x63,0x65,0x2d,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x20,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x20,0x31,0x35,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x29,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x20,0x31,0x30,0x70,0x78,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x61,0x75,0x74,0x68,0x2d,0x72,0x75,0x6c,0x65,0x73,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x73,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x20,0x31,0x35,0x70,0x78,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2d,0x68,0x65,0x61,0x64,0x65,0x72,0x20,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x35,0x70,0x78,0x20,0x31,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x69,0x6e,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x61,0x75,0x74,0x6f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x32,0x70,0x78,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2a,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x20,0x49,0x6e,0x70,0x75,0x74,0x20,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x20,0x53,0x74,0x79,0x6c,0x69,0x6e,0x67,0x20,0x2a,0x2f,0x0a,0x2e,0x61,0x75,0x74,0x68,0x2d,0x72,0x75,0x6c,0x65,0x2d,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x29,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x31,0x35,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x31,0x35,0x70,0x78,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x61,0x75,0x74,0x68,0x2d,0x72,0x75,0x6c,0x65,0x2d,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x33,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x30,0x20,0x30,0x20,0x31,0x30,0x70,0x78,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x34,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x62,0x6f,0x6c,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x20,0x34,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x20,0x38,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x61,0x75,0x74,0x68,0x2d,0x72,0x75,0x6c,0x65,0x2d,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x30,0x20,0x30,0x20,0x31,0x35,0x70,0x78,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x33,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6d,0x75,0x74,0x65,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x72,0x75,0x6c,0x65,0x2d,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x74,0x6f,0x70,0x3a,0x20,0x31,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x38,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x29,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6d,0x75,0x74,0x65,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x32,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x69,0x6e,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x32,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x61,0x6c,0x6c,0x20,0x30,0x2e,0x32,0x73,0x20,0x65,0x61,0x73,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x72,0x75,0x6c,0x65,0x2d,0x73,0x74,0x61,0x74,0x75,0x73,0x2e,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x34,0x43,0x41,0x46,0x35,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x45,0x38,0x46,0x35,0x45,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x32,0x45,0x37,0x44,0x33,0x32,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x72,0x75,0x6c,0x65,0x2d,0x73,0x74,0x61,0x74,0x75,0x73,0x2e,0x65,0x72,0x72,0x6f,0x72,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x46,0x46,0x45,0x42,0x45,0x45,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x43,0x36,0x32,0x38,0x32,0x38,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x72,0x75,0x6c,0x65,0x2d,0x73,0x74,0x61,0x74,0x75,0x73,0x2e,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x46,0x46,0x39,0x38,0x30,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x46,0x46,0x46,0x33,0x45,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x45,0x36,0x35,0x31,0x30,0x30,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x2d,0x62,0x6f,0x78,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x29,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x23,0x46,0x46,0x39,0x38,0x30,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x46,0x46,0x46,0x33,0x45,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x31,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x31,0x30,0x70,0x78,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x33,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x45,0x36,0x35,0x31,0x30,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x2d,0x62,0x6f,0x78,0x20,0x73,0x74,0x72,0x6f,0x6e,0x67,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x44,0x38,0x34,0x33,0x31,0x35,0x3b,0x0a,0x7d,0x0a,0x0a,0x23,0x6c,0x6f,0x67,0x69,0x6e,0x2d,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x20,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x32,0x30,0x70,0x78,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2a,0x20,0x46,0x6c,0x6f,0x61,0x74,0x69,0x6e,0x67,0x20,0x74,0x61,0x62,0x20,0x73,0x74,0x79,0x6c,0x65,0x73,0x20,0x2a,0x2f,0x0a,0x2e,0x66,0x6c,0x6f,0x61,0x74,0x69,0x6e,0x67,0x2d,0x74,0x61,0x62,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x29,0x20,0x73,0x6f,0x6c,0x69,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x61,0x6c,0x6c,0x20,0x30,0x2e,0x32,0x73,0x20,0x65,0x61,0x73,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x66,0x6c,0x6f,0x61,0x74,0x69,0x6e,0x67,0x2d,0x74,0x61,0x62,0x2d,0x2d,0x6c,0x6f,0x67,0x67,0x65,0x64,0x2d,0x6f,0x75,0x74,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x72,0x67,0x62,0x61,0x28,0x32,0x35,0x35,0x2c,0x20,0x32,0x35,0x35,0x2c,0x20,0x32,0x35,0x35,0x2c,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2d,0x6c,0x6f,0x67,0x67,0x65,0x64,0x2d,0x6f,0x75,0x74,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6c,0x6f,0x67,0x67,0x65,0x64,0x2d,0x6f,0x75,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x72,0x67,0x62,0x61,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x30,0x2c,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2d,0x6c,0x6f,0x67,0x67,0x65,0x64,0x2d,0x6f,0x75,0x74,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x66,0x6c,0x6f,0x61,0x74,0x69,0x6e,0x67,0x2d,0x74,0x61,0x62,0x2d,0x2d,0x6c,0x6f,0x67,0x67,0x65,0x64,0x2d,0x69,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x72,0x67,0x62,0x61,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x30,0x2c,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2d,0x6c,0x6f,0x67,0x67,0x65,0x64,0x2d,0x69,0x6e,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6c,0x6f,0x67,0x67,0x65,0x64,0x2d,0x69,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x72,0x67,0x62,0x61,0x28,0x32,0x35,0x35,0x2c,0x20,0x30,0x2c,0x20,0x30,0x2c,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2d,0x6c,0x6f,0x67,0x67,0x65,0x64,0x2d,0x69,0x6e,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x61,0x6c,0x6c,0x20,0x30,0x2e,0x32,0x73,0x20,0x65,0x61,0x73,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2a,0x20,0x4d,0x61,0x69,0x6e,0x20,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x20,0x57,0x72,0x61,0x70,0x70,0x65,0x72,0x20,0x2a,0x2f,0x0a,0x2e,0x6d,0x61,0x69,0x6e,0x2d,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x2d,0x77,0x72,0x61,0x70,0x70,0x65,0x72,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x66,0x6c,0x65,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x65,0x78,0x2d,0x77,0x72,0x61,0x70,0x3a,0x20,0x77,0x72,0x61,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x67,0x61,0x70,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x20,0x32,0x30,0x70,0x78,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x66,0x6c,0x65,0x78,0x2d,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x65,0x78,0x3a,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x69,0x6e,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x33,0x30,0x30,0x70,0x78,0x3b,0x0a,0x7d,0x0a,0x0a,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x28,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x37,0x30,0x30,0x70,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x64,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x31,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2e,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x73,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x65,0x78,0x2d,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x68,0x31,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x32,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x68,0x32,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x34,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,};
-static const size_t index_css_size = 10467;
+0x3a,0x72,0x6f,0x6f,0x74,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x20,0x43,0x6f,0x72,0x65,0x20,0x56,0x61,0x72,0x69,0x61,0x62,0x6c,0x65,0x73,0x20,0x28,0x37,0x29,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x30,0x30,0x30,0x30,0x30,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x66,0x66,0x66,0x66,0x66,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2d,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x66,0x66,0x30,0x30,0x30,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2d,0x2d,0x6d,0x75,0x74,0x65,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x64,0x64,0x64,0x64,0x64,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6d,0x75,0x74,0x65,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x22,0x43,0x6f,0x75,0x72,0x69,0x65,0x72,0x20,0x4e,0x65,0x77,0x22,0x2c,0x20,0x43,0x6f,0x75,0x72,0x69,0x65,0x72,0x2c,0x20,0x6d,0x6f,0x6e,0x6f,0x73,0x70,0x61,0x63,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x31,0x35,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x31,0x70,0x78,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x20,0x46,0x6c,0x6f,0x61,0x74,0x69,0x6e,0x67,0x20,0x54,0x61,0x62,0x20,0x56,0x61,0x72,0x69,0x61,0x62,0x6c,0x65,0x73,0x20,0x28,0x38,0x29,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x67,0x2d,0x6c,0x6f,0x67,0x67,0x65,0x64,0x2d,0x6f,0x75,0x74,0x3a,0x20,0x23,0x66,0x66,0x66,0x66,0x66,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x67,0x2d,0x6c,0x6f,0x67,0x67,0x65,0x64,0x2d,0x69,0x6e,0x3a,0x20,0x23,0x66,0x66,0x66,0x66,0x66,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2d,0x6c,0x6f,0x67,0x67,0x65,0x64,0x2d,0x6f,0x75,0x74,0x3a,0x20,0x30,0x2e,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2d,0x6c,0x6f,0x67,0x67,0x65,0x64,0x2d,0x69,0x6e,0x3a,0x20,0x30,0x2e,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6c,0x6f,0x67,0x67,0x65,0x64,0x2d,0x6f,0x75,0x74,0x3a,0x20,0x23,0x30,0x30,0x30,0x30,0x30,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6c,0x6f,0x67,0x67,0x65,0x64,0x2d,0x69,0x6e,0x3a,0x20,0x23,0x66,0x66,0x66,0x66,0x66,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6c,0x6f,0x67,0x67,0x65,0x64,0x2d,0x6f,0x75,0x74,0x3a,0x20,0x23,0x30,0x30,0x30,0x30,0x30,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6c,0x6f,0x67,0x67,0x65,0x64,0x2d,0x69,0x6e,0x3a,0x20,0x23,0x66,0x66,0x30,0x30,0x30,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2d,0x6c,0x6f,0x67,0x67,0x65,0x64,0x2d,0x6f,0x75,0x74,0x3a,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2d,0x6c,0x6f,0x67,0x67,0x65,0x64,0x2d,0x69,0x6e,0x3a,0x20,0x30,0x2e,0x31,0x3b,0x0a,0x7d,0x0a,0x0a,0x2a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x2d,0x73,0x69,0x7a,0x69,0x6e,0x67,0x3a,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x78,0x3b,0x0a,0x7d,0x0a,0x0a,0x62,0x6f,0x64,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x20,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x31,0x2e,0x34,0x3b,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x6e,0x6f,0x6e,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x30,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2a,0x20,0x48,0x65,0x61,0x64,0x65,0x72,0x20,0x53,0x74,0x79,0x6c,0x65,0x73,0x20,0x2a,0x2f,0x0a,0x2e,0x6d,0x61,0x69,0x6e,0x2d,0x68,0x65,0x61,0x64,0x65,0x72,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x29,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x31,0x35,0x70,0x78,0x20,0x32,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x73,0x74,0x69,0x63,0x6b,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x70,0x3a,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7a,0x2d,0x69,0x6e,0x64,0x65,0x78,0x3a,0x20,0x31,0x30,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x31,0x32,0x30,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x30,0x20,0x61,0x75,0x74,0x6f,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x68,0x65,0x61,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x66,0x6c,0x65,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x73,0x70,0x61,0x63,0x65,0x2d,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x20,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x68,0x65,0x61,0x64,0x65,0x72,0x2d,0x74,0x69,0x74,0x6c,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x32,0x34,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x6e,0x6f,0x6e,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x20,0x6c,0x65,0x66,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x68,0x65,0x61,0x64,0x65,0x72,0x2d,0x75,0x73,0x65,0x72,0x2d,0x6e,0x61,0x6d,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x35,0x30,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x20,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x74,0x6f,0x70,0x3a,0x20,0x34,0x70,0x78,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x2d,0x61,0x72,0x65,0x61,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x66,0x6c,0x65,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x20,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x20,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x38,0x70,0x78,0x20,0x31,0x32,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x30,0x2e,0x32,0x73,0x20,0x65,0x61,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x20,0x61,0x75,0x74,0x6f,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x66,0x6c,0x65,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x65,0x78,0x2d,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x20,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x67,0x61,0x70,0x3a,0x20,0x34,0x70,0x78,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x2d,0x61,0x72,0x65,0x61,0x3a,0x68,0x6f,0x76,0x65,0x72,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x72,0x67,0x62,0x61,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x30,0x2c,0x20,0x30,0x2e,0x30,0x35,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6e,0x66,0x6f,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x66,0x6c,0x65,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x20,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x67,0x61,0x70,0x3a,0x20,0x31,0x30,0x70,0x78,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x68,0x65,0x61,0x64,0x65,0x72,0x2d,0x75,0x73,0x65,0x72,0x2d,0x69,0x6d,0x61,0x67,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x34,0x38,0x70,0x78,0x3b,0x20,0x2f,0x2a,0x20,0x35,0x30,0x25,0x20,0x6c,0x61,0x72,0x67,0x65,0x72,0x20,0x74,0x68,0x61,0x6e,0x20,0x33,0x32,0x70,0x78,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x34,0x38,0x70,0x78,0x3b,0x20,0x2f,0x2a,0x20,0x35,0x30,0x25,0x20,0x6c,0x61,0x72,0x67,0x65,0x72,0x20,0x74,0x68,0x61,0x6e,0x20,0x33,0x32,0x70,0x78,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x29,0x3b,0x20,0x2f,0x2a,0x20,0x43,0x75,0x72,0x76,0x65,0x64,0x20,0x63,0x6f,0x72,0x6e,0x65,0x72,0x73,0x20,0x6c,0x69,0x6b,0x65,0x20,0x6f,0x74,0x68,0x65,0x72,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x2d,0x66,0x69,0x74,0x3a,0x20,0x63,0x6f,0x76,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x32,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x20,0x2f,0x2a,0x20,0x49,0x6e,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x0a,0x2e,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x2d,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x70,0x3a,0x20,0x31,0x30,0x30,0x25,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x69,0x67,0x68,0x74,0x3a,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x29,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x20,0x30,0x20,0x34,0x70,0x78,0x20,0x31,0x32,0x70,0x78,0x20,0x72,0x67,0x62,0x61,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x30,0x2c,0x20,0x30,0x2e,0x31,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x69,0x6e,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x31,0x32,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7a,0x2d,0x69,0x6e,0x64,0x65,0x78,0x3a,0x20,0x32,0x30,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x74,0x6f,0x70,0x3a,0x20,0x34,0x70,0x78,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x2d,0x62,0x74,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x31,0x30,0x30,0x25,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x31,0x30,0x70,0x78,0x20,0x31,0x35,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x6e,0x6f,0x6e,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x6e,0x6f,0x6e,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x20,0x6c,0x65,0x66,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x20,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x34,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x30,0x2e,0x32,0x73,0x20,0x65,0x61,0x73,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x2d,0x62,0x74,0x6e,0x3a,0x68,0x6f,0x76,0x65,0x72,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x72,0x67,0x62,0x61,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x30,0x2c,0x20,0x30,0x2e,0x31,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2a,0x20,0x4c,0x6f,0x67,0x69,0x6e,0x20,0x4d,0x6f,0x64,0x61,0x6c,0x20,0x53,0x74,0x79,0x6c,0x65,0x73,0x20,0x2a,0x2f,0x0a,0x2e,0x6c,0x6f,0x67,0x69,0x6e,0x2d,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x66,0x69,0x78,0x65,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x70,0x3a,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x66,0x74,0x3a,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x31,0x30,0x30,0x25,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x31,0x30,0x30,0x25,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x72,0x67,0x62,0x61,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x30,0x2c,0x20,0x30,0x2e,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x66,0x6c,0x65,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x20,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7a,0x2d,0x69,0x6e,0x64,0x65,0x78,0x3a,0x20,0x31,0x30,0x30,0x30,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x6c,0x6f,0x67,0x69,0x6e,0x2d,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x29,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x33,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x34,0x30,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x39,0x30,0x25,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x20,0x30,0x20,0x31,0x30,0x70,0x78,0x20,0x33,0x30,0x70,0x78,0x20,0x72,0x67,0x62,0x61,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x30,0x2c,0x20,0x30,0x2e,0x33,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x31,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x29,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x20,0x31,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x20,0x33,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x32,0x34,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x32,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x20,0x31,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x36,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x29,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x32,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x20,0x32,0x30,0x70,0x78,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2d,0x67,0x72,0x6f,0x75,0x70,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x20,0x31,0x35,0x70,0x78,0x3b,0x0a,0x7d,0x0a,0x0a,0x6c,0x61,0x62,0x65,0x6c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x20,0x35,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x62,0x6f,0x6c,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x34,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x69,0x6e,0x70,0x75,0x74,0x2c,0x0a,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x2c,0x0a,0x73,0x65,0x6c,0x65,0x63,0x74,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x31,0x30,0x30,0x25,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x38,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x29,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x34,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x2d,0x73,0x69,0x7a,0x69,0x6e,0x67,0x3a,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x61,0x6c,0x6c,0x20,0x30,0x2e,0x32,0x73,0x20,0x65,0x61,0x73,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x69,0x6e,0x70,0x75,0x74,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2c,0x0a,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2c,0x0a,0x73,0x65,0x6c,0x65,0x63,0x74,0x3a,0x66,0x6f,0x63,0x75,0x73,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x3a,0x20,0x6e,0x6f,0x6e,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x31,0x30,0x30,0x25,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x38,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x29,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x34,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x20,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x35,0x70,0x78,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x62,0x6f,0x6c,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x61,0x6c,0x6c,0x20,0x30,0x2e,0x32,0x73,0x20,0x65,0x61,0x73,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3a,0x68,0x6f,0x76,0x65,0x72,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3a,0x61,0x63,0x74,0x69,0x76,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3a,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x63,0x63,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6d,0x75,0x74,0x65,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x20,0x6e,0x6f,0x74,0x2d,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x63,0x63,0x63,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2a,0x20,0x46,0x6c,0x61,0x73,0x68,0x20,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6f,0x72,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x20,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x2a,0x2f,0x0a,0x40,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x20,0x66,0x6c,0x61,0x73,0x68,0x2d,0x72,0x65,0x64,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x30,0x25,0x20,0x7b,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x35,0x30,0x25,0x20,0x7b,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x31,0x30,0x30,0x25,0x20,0x7b,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2e,0x66,0x6c,0x61,0x73,0x68,0x2d,0x72,0x65,0x64,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x66,0x6c,0x61,0x73,0x68,0x2d,0x72,0x65,0x64,0x20,0x30,0x2e,0x35,0x73,0x20,0x65,0x61,0x73,0x65,0x2d,0x69,0x6e,0x2d,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2a,0x20,0x46,0x6c,0x61,0x73,0x68,0x20,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6f,0x72,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x20,0x73,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x20,0x76,0x61,0x6c,0x75,0x65,0x73,0x20,0x2a,0x2f,0x0a,0x40,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x20,0x66,0x6c,0x61,0x73,0x68,0x2d,0x76,0x61,0x6c,0x75,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x30,0x25,0x20,0x7b,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x35,0x30,0x25,0x20,0x7b,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x31,0x30,0x30,0x25,0x20,0x7b,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2e,0x66,0x6c,0x61,0x73,0x68,0x2d,0x76,0x61,0x6c,0x75,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x66,0x6c,0x61,0x73,0x68,0x2d,0x76,0x61,0x6c,0x75,0x65,0x20,0x30,0x2e,0x35,0x73,0x20,0x65,0x61,0x73,0x65,0x2d,0x69,0x6e,0x2d,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2a,0x20,0x4e,0x70,0x75,0x62,0x20,0x6c,0x69,0x6e,0x6b,0x73,0x20,0x73,0x74,0x79,0x6c,0x69,0x6e,0x67,0x20,0x2a,0x2f,0x0a,0x2e,0x6e,0x70,0x75,0x62,0x2d,0x6c,0x69,0x6e,0x6b,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x6e,0x6f,0x6e,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x30,0x2e,0x32,0x73,0x20,0x65,0x61,0x73,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x6e,0x70,0x75,0x62,0x2d,0x6c,0x69,0x6e,0x6b,0x3a,0x68,0x6f,0x76,0x65,0x72,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x31,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x31,0x30,0x70,0x78,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x29,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x62,0x6f,0x6c,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x61,0x6c,0x6c,0x20,0x30,0x2e,0x32,0x73,0x20,0x65,0x61,0x73,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x2e,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x2e,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x2e,0x61,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x65,0x64,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x2e,0x65,0x72,0x72,0x6f,0x72,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x31,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x31,0x30,0x30,0x25,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3a,0x20,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x3a,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x31,0x30,0x70,0x78,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x20,0x68,0x69,0x64,0x64,0x65,0x6e,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x20,0x74,0x68,0x2c,0x0a,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x20,0x74,0x64,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x30,0x2e,0x31,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6d,0x75,0x74,0x65,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x34,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x20,0x6c,0x65,0x66,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x30,0x70,0x78,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x78,0x3a,0x20,0x61,0x75,0x74,0x6f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x31,0x30,0x30,0x25,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x20,0x74,0x68,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x62,0x6f,0x6c,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x34,0x30,0x70,0x78,0x3b,0x20,0x2f,0x2a,0x20,0x44,0x6f,0x75,0x62,0x6c,0x65,0x20,0x74,0x68,0x65,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x34,0x30,0x70,0x78,0x3b,0x20,0x2f,0x2a,0x20,0x43,0x65,0x6e,0x74,0x65,0x72,0x20,0x74,0x65,0x78,0x74,0x20,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x6c,0x79,0x20,0x2a,0x2f,0x0a,0x7d,0x0a,0x0a,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x20,0x74,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6d,0x75,0x74,0x65,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2a,0x20,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x69,0x6e,0x70,0x75,0x74,0x73,0x20,0x2d,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x73,0x20,0x61,0x6e,0x64,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x66,0x69,0x74,0x20,0x73,0x65,0x61,0x6d,0x6c,0x65,0x73,0x73,0x6c,0x79,0x20,0x69,0x6e,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x63,0x65,0x6c,0x6c,0x73,0x20,0x2a,0x2f,0x0a,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x76,0x61,0x6c,0x75,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x6e,0x6f,0x6e,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x32,0x70,0x78,0x20,0x34,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x31,0x30,0x30,0x25,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x69,0x6e,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x61,0x75,0x74,0x6f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x30,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x76,0x61,0x6c,0x75,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x66,0x6f,0x63,0x75,0x73,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x31,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x3a,0x20,0x6e,0x6f,0x6e,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2a,0x20,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x20,0x63,0x65,0x6c,0x6c,0x20,0x2d,0x20,0x63,0x6c,0x69,0x63,0x6b,0x61,0x62,0x6c,0x65,0x20,0x66,0x6f,0x72,0x20,0x73,0x61,0x76,0x69,0x6e,0x67,0x20,0x2a,0x2f,0x0a,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x2d,0x63,0x65,0x6c,0x6c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x20,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x61,0x6c,0x6c,0x20,0x30,0x2e,0x32,0x73,0x20,0x65,0x61,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x20,0x63,0x65,0x6e,0x74,0x65,0x72,0x20,0x21,0x69,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x62,0x6f,0x6c,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x20,0x6d,0x69,0x64,0x64,0x6c,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x36,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x69,0x6e,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x36,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x36,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x38,0x70,0x78,0x20,0x34,0x70,0x78,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x2d,0x63,0x65,0x6c,0x6c,0x3a,0x68,0x6f,0x76,0x65,0x72,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x31,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6d,0x75,0x74,0x65,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x6a,0x73,0x6f,0x6e,0x2d,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x29,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x31,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x32,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x74,0x65,0x2d,0x73,0x70,0x61,0x63,0x65,0x3a,0x20,0x70,0x72,0x65,0x2d,0x77,0x72,0x61,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x78,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x33,0x30,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x79,0x3a,0x20,0x61,0x75,0x74,0x6f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x31,0x30,0x70,0x78,0x20,0x30,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x6c,0x6f,0x67,0x2d,0x70,0x61,0x6e,0x65,0x6c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x32,0x30,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x79,0x3a,0x20,0x61,0x75,0x74,0x6f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x29,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x31,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x32,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x6c,0x6f,0x67,0x2d,0x65,0x6e,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x20,0x35,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x20,0x31,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6d,0x75,0x74,0x65,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x20,0x35,0x70,0x78,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x6c,0x6f,0x67,0x2d,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x62,0x6f,0x6c,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x73,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x66,0x6c,0x65,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x67,0x61,0x70,0x3a,0x20,0x31,0x30,0x70,0x78,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x73,0x20,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x65,0x78,0x3a,0x20,0x31,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x75,0x73,0x65,0x72,0x2d,0x69,0x6e,0x66,0x6f,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x31,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x29,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x31,0x30,0x70,0x78,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x75,0x73,0x65,0x72,0x2d,0x69,0x6e,0x66,0x6f,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x66,0x6c,0x65,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x65,0x78,0x2d,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x67,0x61,0x70,0x3a,0x20,0x31,0x35,0x70,0x78,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x75,0x73,0x65,0x72,0x2d,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x2d,0x31,0x3b,0x20,0x2f,0x2a,0x20,0x53,0x68,0x6f,0x77,0x20,0x75,0x73,0x65,0x72,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x66,0x69,0x72,0x73,0x74,0x20,0x77,0x68,0x65,0x6e,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x20,0x2a,0x2f,0x0a,0x7d,0x0a,0x0a,0x2e,0x6c,0x6f,0x67,0x69,0x6e,0x2d,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x20,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x2d,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x66,0x6c,0x65,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x66,0x6c,0x65,0x78,0x2d,0x65,0x6e,0x64,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x6c,0x6f,0x67,0x69,0x6e,0x2d,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x2d,0x62,0x74,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x61,0x75,0x74,0x6f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x69,0x6e,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x31,0x32,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x31,0x32,0x70,0x78,0x20,0x31,0x36,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x29,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x34,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x62,0x6f,0x6c,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x20,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x61,0x6c,0x6c,0x20,0x30,0x2e,0x32,0x73,0x20,0x65,0x61,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x65,0x78,0x2d,0x73,0x68,0x72,0x69,0x6e,0x6b,0x3a,0x20,0x30,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x6c,0x6f,0x67,0x69,0x6e,0x2d,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x2d,0x62,0x74,0x6e,0x3a,0x68,0x6f,0x76,0x65,0x72,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x6c,0x6f,0x67,0x69,0x6e,0x2d,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x2d,0x62,0x74,0x6e,0x3a,0x61,0x63,0x74,0x69,0x76,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x6c,0x6f,0x67,0x69,0x6e,0x2d,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x2d,0x62,0x74,0x6e,0x2e,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x2d,0x73,0x74,0x61,0x74,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x6c,0x6f,0x67,0x69,0x6e,0x2d,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x2d,0x62,0x74,0x6e,0x2e,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x2d,0x73,0x74,0x61,0x74,0x65,0x3a,0x68,0x6f,0x76,0x65,0x72,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x75,0x73,0x65,0x72,0x2d,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x32,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x6f,0x72,0x64,0x2d,0x62,0x72,0x65,0x61,0x6b,0x3a,0x20,0x62,0x72,0x65,0x61,0x6b,0x2d,0x61,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x35,0x70,0x78,0x20,0x30,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2a,0x20,0x55,0x73,0x65,0x72,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x68,0x65,0x61,0x64,0x65,0x72,0x20,0x77,0x69,0x74,0x68,0x20,0x69,0x6d,0x61,0x67,0x65,0x20,0x2a,0x2f,0x0a,0x2e,0x75,0x73,0x65,0x72,0x2d,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x2d,0x68,0x65,0x61,0x64,0x65,0x72,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x66,0x6c,0x65,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x20,0x66,0x6c,0x65,0x78,0x2d,0x73,0x74,0x61,0x72,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x67,0x61,0x70,0x3a,0x20,0x31,0x35,0x70,0x78,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x75,0x73,0x65,0x72,0x2d,0x69,0x6d,0x61,0x67,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x65,0x78,0x2d,0x73,0x68,0x72,0x69,0x6e,0x6b,0x3a,0x20,0x30,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x75,0x73,0x65,0x72,0x2d,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6d,0x61,0x67,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x36,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x36,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x2d,0x66,0x69,0x74,0x3a,0x20,0x63,0x6f,0x76,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x32,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x67,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x75,0x73,0x65,0x72,0x2d,0x74,0x65,0x78,0x74,0x2d,0x69,0x6e,0x66,0x6f,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x65,0x78,0x3a,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x69,0x6e,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x30,0x3b,0x20,0x2f,0x2a,0x20,0x41,0x6c,0x6c,0x6f,0x77,0x20,0x74,0x65,0x78,0x74,0x20,0x74,0x6f,0x20,0x77,0x72,0x61,0x70,0x20,0x2a,0x2f,0x0a,0x7d,0x0a,0x0a,0x2e,0x68,0x69,0x64,0x64,0x65,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x6e,0x6f,0x6e,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2d,0x68,0x65,0x61,0x64,0x65,0x72,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x66,0x6c,0x65,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x73,0x70,0x61,0x63,0x65,0x2d,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x20,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x20,0x31,0x35,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x29,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x20,0x31,0x30,0x70,0x78,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x63,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x2d,0x62,0x74,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x61,0x75,0x74,0x6f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x69,0x6e,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x34,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x38,0x70,0x78,0x20,0x31,0x32,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x29,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x62,0x6f,0x6c,0x64,0x3b,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x20,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x61,0x6c,0x6c,0x20,0x30,0x2e,0x32,0x73,0x20,0x65,0x61,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x20,0x61,0x75,0x74,0x6f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x63,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x68,0x6f,0x76,0x65,0x72,0x3a,0x3a,0x61,0x66,0x74,0x65,0x72,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x22,0x63,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x70,0x3a,0x20,0x2d,0x33,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x66,0x74,0x3a,0x20,0x35,0x30,0x25,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x20,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x58,0x28,0x2d,0x35,0x30,0x25,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x34,0x70,0x78,0x20,0x38,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x34,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x32,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x74,0x65,0x2d,0x73,0x70,0x61,0x63,0x65,0x3a,0x20,0x6e,0x6f,0x77,0x72,0x61,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7a,0x2d,0x69,0x6e,0x64,0x65,0x78,0x3a,0x20,0x31,0x30,0x30,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x31,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x61,0x75,0x74,0x68,0x2d,0x72,0x75,0x6c,0x65,0x73,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x73,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x20,0x31,0x35,0x70,0x78,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2d,0x68,0x65,0x61,0x64,0x65,0x72,0x20,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x35,0x70,0x78,0x20,0x31,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x69,0x6e,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x61,0x75,0x74,0x6f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x32,0x70,0x78,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2a,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x20,0x49,0x6e,0x70,0x75,0x74,0x20,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x20,0x53,0x74,0x79,0x6c,0x69,0x6e,0x67,0x20,0x2a,0x2f,0x0a,0x2e,0x61,0x75,0x74,0x68,0x2d,0x72,0x75,0x6c,0x65,0x2d,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x29,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x31,0x35,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x31,0x35,0x70,0x78,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x61,0x75,0x74,0x68,0x2d,0x72,0x75,0x6c,0x65,0x2d,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x33,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x30,0x20,0x30,0x20,0x31,0x30,0x70,0x78,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x34,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x62,0x6f,0x6c,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x20,0x34,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x20,0x38,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x61,0x75,0x74,0x68,0x2d,0x72,0x75,0x6c,0x65,0x2d,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x30,0x20,0x30,0x20,0x31,0x35,0x70,0x78,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x33,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6d,0x75,0x74,0x65,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x72,0x75,0x6c,0x65,0x2d,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x74,0x6f,0x70,0x3a,0x20,0x31,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x38,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x29,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6d,0x75,0x74,0x65,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x32,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x69,0x6e,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x32,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x61,0x6c,0x6c,0x20,0x30,0x2e,0x32,0x73,0x20,0x65,0x61,0x73,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x72,0x75,0x6c,0x65,0x2d,0x73,0x74,0x61,0x74,0x75,0x73,0x2e,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x34,0x43,0x41,0x46,0x35,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x45,0x38,0x46,0x35,0x45,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x32,0x45,0x37,0x44,0x33,0x32,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x72,0x75,0x6c,0x65,0x2d,0x73,0x74,0x61,0x74,0x75,0x73,0x2e,0x65,0x72,0x72,0x6f,0x72,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x46,0x46,0x45,0x42,0x45,0x45,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x43,0x36,0x32,0x38,0x32,0x38,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x72,0x75,0x6c,0x65,0x2d,0x73,0x74,0x61,0x74,0x75,0x73,0x2e,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x46,0x46,0x39,0x38,0x30,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x46,0x46,0x46,0x33,0x45,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x45,0x36,0x35,0x31,0x30,0x30,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x2d,0x62,0x6f,0x78,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x29,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x23,0x46,0x46,0x39,0x38,0x30,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x46,0x46,0x46,0x33,0x45,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x31,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x31,0x30,0x70,0x78,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x33,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x45,0x36,0x35,0x31,0x30,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x2d,0x62,0x6f,0x78,0x20,0x73,0x74,0x72,0x6f,0x6e,0x67,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x44,0x38,0x34,0x33,0x31,0x35,0x3b,0x0a,0x7d,0x0a,0x0a,0x23,0x6c,0x6f,0x67,0x69,0x6e,0x2d,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x20,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x32,0x30,0x70,0x78,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2a,0x20,0x46,0x6c,0x6f,0x61,0x74,0x69,0x6e,0x67,0x20,0x74,0x61,0x62,0x20,0x73,0x74,0x79,0x6c,0x65,0x73,0x20,0x2a,0x2f,0x0a,0x2e,0x66,0x6c,0x6f,0x61,0x74,0x69,0x6e,0x67,0x2d,0x74,0x61,0x62,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x29,0x20,0x73,0x6f,0x6c,0x69,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x61,0x6c,0x6c,0x20,0x30,0x2e,0x32,0x73,0x20,0x65,0x61,0x73,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x66,0x6c,0x6f,0x61,0x74,0x69,0x6e,0x67,0x2d,0x74,0x61,0x62,0x2d,0x2d,0x6c,0x6f,0x67,0x67,0x65,0x64,0x2d,0x6f,0x75,0x74,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x72,0x67,0x62,0x61,0x28,0x32,0x35,0x35,0x2c,0x20,0x32,0x35,0x35,0x2c,0x20,0x32,0x35,0x35,0x2c,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2d,0x6c,0x6f,0x67,0x67,0x65,0x64,0x2d,0x6f,0x75,0x74,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6c,0x6f,0x67,0x67,0x65,0x64,0x2d,0x6f,0x75,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x72,0x67,0x62,0x61,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x30,0x2c,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2d,0x6c,0x6f,0x67,0x67,0x65,0x64,0x2d,0x6f,0x75,0x74,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x66,0x6c,0x6f,0x61,0x74,0x69,0x6e,0x67,0x2d,0x74,0x61,0x62,0x2d,0x2d,0x6c,0x6f,0x67,0x67,0x65,0x64,0x2d,0x69,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x72,0x67,0x62,0x61,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x30,0x2c,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2d,0x6c,0x6f,0x67,0x67,0x65,0x64,0x2d,0x69,0x6e,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6c,0x6f,0x67,0x67,0x65,0x64,0x2d,0x69,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x72,0x67,0x62,0x61,0x28,0x32,0x35,0x35,0x2c,0x20,0x30,0x2c,0x20,0x30,0x2c,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2d,0x6c,0x6f,0x67,0x67,0x65,0x64,0x2d,0x69,0x6e,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x61,0x6c,0x6c,0x20,0x30,0x2e,0x32,0x73,0x20,0x65,0x61,0x73,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2a,0x20,0x4d,0x61,0x69,0x6e,0x20,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x20,0x57,0x72,0x61,0x70,0x70,0x65,0x72,0x20,0x2a,0x2f,0x0a,0x2e,0x6d,0x61,0x69,0x6e,0x2d,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x2d,0x77,0x72,0x61,0x70,0x70,0x65,0x72,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x31,0x32,0x30,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x30,0x20,0x61,0x75,0x74,0x6f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x32,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x66,0x6c,0x65,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x65,0x78,0x2d,0x77,0x72,0x61,0x70,0x3a,0x20,0x77,0x72,0x61,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x67,0x61,0x70,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2e,0x66,0x6c,0x65,0x78,0x2d,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x65,0x78,0x3a,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x69,0x6e,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x33,0x30,0x30,0x70,0x78,0x3b,0x0a,0x7d,0x0a,0x0a,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x28,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x37,0x30,0x30,0x70,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x64,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x31,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2e,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x73,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x65,0x78,0x2d,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x68,0x31,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x32,0x30,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x68,0x32,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x34,0x70,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,};
+static const size_t index_css_size = 15495;
// Auto-generated from api/index.js
static const unsigned char index_js_data[] = {
-0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x20,0x74,0x6f,0x20,0x70,0x72,0x65,0x76,0x65,0x6e,0x74,0x20,0x70,0x61,0x67,0x65,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x65,0x72,0x72,0x6f,0x72,0x27,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x28,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x63,0x61,0x75,0x67,0x68,0x74,0x3a,0x27,0x2c,0x20,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x72,0x72,0x6f,0x72,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x3a,0x27,0x2c,0x20,0x65,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x72,0x72,0x6f,0x72,0x20,0x66,0x69,0x6c,0x65,0x6e,0x61,0x6d,0x65,0x3a,0x27,0x2c,0x20,0x65,0x2e,0x66,0x69,0x6c,0x65,0x6e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x72,0x72,0x6f,0x72,0x20,0x6c,0x69,0x6e,0x65,0x3a,0x27,0x2c,0x20,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x6e,0x6f,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x2e,0x70,0x72,0x65,0x76,0x65,0x6e,0x74,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x29,0x3b,0x20,0x2f,0x2f,0x20,0x50,0x72,0x65,0x76,0x65,0x6e,0x74,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x68,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x20,0x2f,0x2f,0x20,0x50,0x72,0x65,0x76,0x65,0x6e,0x74,0x20,0x70,0x61,0x67,0x65,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x75,0x6e,0x68,0x61,0x6e,0x64,0x6c,0x65,0x64,0x72,0x65,0x6a,0x65,0x63,0x74,0x69,0x6f,0x6e,0x27,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x28,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x55,0x6e,0x68,0x61,0x6e,0x64,0x6c,0x65,0x64,0x20,0x70,0x72,0x6f,0x6d,0x69,0x73,0x65,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x27,0x2c,0x20,0x65,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x2e,0x70,0x72,0x65,0x76,0x65,0x6e,0x74,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x29,0x3b,0x20,0x2f,0x2f,0x20,0x50,0x72,0x65,0x76,0x65,0x6e,0x74,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x68,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x20,0x2f,0x2f,0x20,0x50,0x72,0x65,0x76,0x65,0x6e,0x74,0x20,0x70,0x61,0x67,0x65,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x20,0x73,0x74,0x61,0x74,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6e,0x6c,0x4c,0x69,0x74,0x65,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x61,0x74,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x49,0x64,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x6c,0x61,0x79,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x61,0x74,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x69,0x73,0x52,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x4f,0x4d,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x6c,0x6f,0x67,0x69,0x6e,0x2d,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x61,0x69,0x6e,0x49,0x6e,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x6d,0x61,0x69,0x6e,0x2d,0x69,0x6e,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x2d,0x75,0x73,0x65,0x72,0x2d,0x6e,0x61,0x6d,0x65,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x2d,0x75,0x73,0x65,0x72,0x2d,0x70,0x75,0x62,0x6b,0x65,0x79,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x41,0x62,0x6f,0x75,0x74,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x2d,0x75,0x73,0x65,0x72,0x2d,0x61,0x62,0x6f,0x75,0x74,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x2d,0x75,0x73,0x65,0x72,0x2d,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x65,0x74,0x63,0x68,0x43,0x6f,0x6e,0x66,0x69,0x67,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x66,0x65,0x74,0x63,0x68,0x2d,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x62,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x6c,0x61,0x79,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x55,0x72,0x6c,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x72,0x65,0x6c,0x61,0x79,0x2d,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2d,0x75,0x72,0x6c,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x4d,0x61,0x6e,0x75,0x61,0x6c,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x72,0x65,0x6c,0x61,0x79,0x2d,0x70,0x75,0x62,0x6b,0x65,0x79,0x2d,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x72,0x65,0x6c,0x61,0x79,0x2d,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2d,0x73,0x74,0x61,0x74,0x75,0x73,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x2d,0x72,0x65,0x6c,0x61,0x79,0x2d,0x62,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x2d,0x72,0x65,0x6c,0x61,0x79,0x2d,0x62,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x2d,0x72,0x65,0x6c,0x61,0x79,0x2d,0x62,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x54,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x2d,0x62,0x6f,0x64,0x79,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x44,0x4d,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x6d,0x4f,0x75,0x74,0x62,0x6f,0x78,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x64,0x6d,0x2d,0x6f,0x75,0x74,0x62,0x6f,0x78,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x6d,0x49,0x6e,0x62,0x6f,0x78,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x64,0x6d,0x2d,0x69,0x6e,0x62,0x6f,0x78,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x65,0x6e,0x64,0x44,0x6d,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x73,0x65,0x6e,0x64,0x2d,0x64,0x6d,0x2d,0x62,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x74,0x69,0x6c,0x69,0x74,0x79,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x6f,0x67,0x28,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x2c,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x44,0x61,0x74,0x65,0x28,0x29,0x2e,0x74,0x6f,0x49,0x53,0x4f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x27,0x54,0x27,0x29,0x5b,0x31,0x5d,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x27,0x2e,0x27,0x29,0x5b,0x30,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x6f,0x67,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x3d,0x20,0x60,0x24,0x7b,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x7d,0x20,0x5b,0x24,0x7b,0x74,0x79,0x70,0x65,0x7d,0x5d,0x3a,0x20,0x24,0x7b,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x6c,0x77,0x61,0x79,0x73,0x20,0x6c,0x6f,0x67,0x20,0x74,0x6f,0x20,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x20,0x73,0x6f,0x20,0x77,0x65,0x20,0x64,0x6f,0x6e,0x27,0x74,0x20,0x6c,0x6f,0x73,0x65,0x20,0x6c,0x6f,0x67,0x73,0x20,0x6f,0x6e,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x6c,0x6f,0x67,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x49,0x20,0x6c,0x6f,0x67,0x67,0x69,0x6e,0x67,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x64,0x20,0x2d,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x20,0x6f,0x6e,0x6c,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x74,0x69,0x6c,0x69,0x74,0x79,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x6f,0x67,0x28,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x2c,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x44,0x61,0x74,0x65,0x28,0x29,0x2e,0x74,0x6f,0x49,0x53,0x4f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x27,0x54,0x27,0x29,0x5b,0x31,0x5d,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x27,0x2e,0x27,0x29,0x5b,0x30,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x6f,0x67,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x3d,0x20,0x60,0x24,0x7b,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x7d,0x20,0x5b,0x24,0x7b,0x74,0x79,0x70,0x65,0x7d,0x5d,0x3a,0x20,0x24,0x7b,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x6c,0x77,0x61,0x79,0x73,0x20,0x6c,0x6f,0x67,0x20,0x74,0x6f,0x20,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x20,0x73,0x6f,0x20,0x77,0x65,0x20,0x64,0x6f,0x6e,0x27,0x74,0x20,0x6c,0x6f,0x73,0x65,0x20,0x6c,0x6f,0x67,0x73,0x20,0x6f,0x6e,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x6c,0x6f,0x67,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x49,0x20,0x6c,0x6f,0x67,0x67,0x69,0x6e,0x67,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x64,0x20,0x2d,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x20,0x6f,0x6e,0x6c,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4e,0x49,0x50,0x2d,0x35,0x39,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x3a,0x20,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x69,0x7a,0x65,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x20,0x74,0x6f,0x20,0x74,0x68,0x77,0x61,0x72,0x74,0x20,0x74,0x69,0x6d,0x65,0x2d,0x61,0x6e,0x61,0x6c,0x79,0x73,0x69,0x73,0x20,0x28,0x70,0x61,0x73,0x74,0x20,0x32,0x20,0x64,0x61,0x79,0x73,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x4e,0x6f,0x77,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x54,0x57,0x4f,0x5f,0x44,0x41,0x59,0x53,0x20,0x3d,0x20,0x32,0x20,0x2a,0x20,0x32,0x34,0x20,0x2a,0x20,0x36,0x30,0x20,0x2a,0x20,0x36,0x30,0x3b,0x20,0x2f,0x2f,0x20,0x31,0x37,0x32,0x38,0x30,0x30,0x20,0x73,0x65,0x63,0x6f,0x6e,0x64,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x6f,0x77,0x20,0x3d,0x20,0x4d,0x61,0x74,0x68,0x2e,0x72,0x6f,0x75,0x6e,0x64,0x28,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x2f,0x20,0x31,0x30,0x30,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4d,0x61,0x74,0x68,0x2e,0x72,0x6f,0x75,0x6e,0x64,0x28,0x6e,0x6f,0x77,0x20,0x2d,0x20,0x4d,0x61,0x74,0x68,0x2e,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x28,0x29,0x20,0x2a,0x20,0x54,0x57,0x4f,0x5f,0x44,0x41,0x59,0x53,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x61,0x66,0x65,0x20,0x4a,0x53,0x4f,0x4e,0x20,0x70,0x61,0x72,0x73,0x65,0x20,0x77,0x69,0x74,0x68,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x68,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x61,0x66,0x65,0x4a,0x73,0x6f,0x6e,0x50,0x61,0x72,0x73,0x65,0x28,0x6a,0x73,0x6f,0x6e,0x53,0x74,0x72,0x69,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x6a,0x73,0x6f,0x6e,0x53,0x74,0x72,0x69,0x6e,0x67,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x4a,0x53,0x4f,0x4e,0x20,0x70,0x61,0x72,0x73,0x65,0x20,0x65,0x72,0x72,0x6f,0x72,0x3a,0x27,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,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,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4e,0x49,0x50,0x2d,0x31,0x31,0x20,0x52,0x45,0x4c,0x41,0x59,0x20,0x43,0x4f,0x4e,0x4e,0x45,0x43,0x54,0x49,0x4f,0x4e,0x20,0x46,0x55,0x4e,0x43,0x54,0x49,0x4f,0x4e,0x53,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,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,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6f,0x6e,0x76,0x65,0x72,0x74,0x20,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x20,0x55,0x52,0x4c,0x20,0x74,0x6f,0x20,0x48,0x54,0x54,0x50,0x20,0x55,0x52,0x4c,0x20,0x66,0x6f,0x72,0x20,0x4e,0x49,0x50,0x2d,0x31,0x31,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x77,0x73,0x54,0x6f,0x48,0x74,0x74,0x70,0x55,0x72,0x6c,0x28,0x77,0x73,0x55,0x72,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x77,0x73,0x55,0x72,0x6c,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x27,0x77,0x73,0x3a,0x2f,0x2f,0x27,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x77,0x73,0x55,0x72,0x6c,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x27,0x77,0x73,0x3a,0x2f,0x2f,0x27,0x2c,0x20,0x27,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x77,0x73,0x55,0x72,0x6c,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x27,0x77,0x73,0x73,0x3a,0x2f,0x2f,0x27,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x77,0x73,0x55,0x72,0x6c,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x27,0x77,0x73,0x73,0x3a,0x2f,0x2f,0x27,0x2c,0x20,0x27,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x77,0x73,0x55,0x72,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x65,0x74,0x63,0x68,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x69,0x6e,0x66,0x6f,0x72,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x31,0x31,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x65,0x74,0x63,0x68,0x52,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x28,0x72,0x65,0x6c,0x61,0x79,0x55,0x72,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x46,0x65,0x74,0x63,0x68,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x31,0x31,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x69,0x6e,0x66,0x6f,0x20,0x66,0x72,0x6f,0x6d,0x3a,0x20,0x24,0x7b,0x72,0x65,0x6c,0x61,0x79,0x55,0x72,0x6c,0x7d,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6f,0x6e,0x76,0x65,0x72,0x74,0x20,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x20,0x55,0x52,0x4c,0x20,0x74,0x6f,0x20,0x48,0x54,0x54,0x50,0x20,0x55,0x52,0x4c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x74,0x74,0x70,0x55,0x72,0x6c,0x20,0x3d,0x20,0x77,0x73,0x54,0x6f,0x48,0x74,0x74,0x70,0x55,0x72,0x6c,0x28,0x72,0x65,0x6c,0x61,0x79,0x55,0x72,0x6c,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4d,0x61,0x6b,0x65,0x20,0x48,0x54,0x54,0x50,0x20,0x72,0x65,0x71,0x75,0x65,0x73,0x74,0x20,0x77,0x69,0x74,0x68,0x20,0x4e,0x49,0x50,0x2d,0x31,0x31,0x20,0x68,0x65,0x61,0x64,0x65,0x72,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x66,0x65,0x74,0x63,0x68,0x28,0x68,0x74,0x74,0x70,0x55,0x72,0x6c,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x3a,0x20,0x27,0x47,0x45,0x54,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x65,0x61,0x64,0x65,0x72,0x73,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x27,0x41,0x63,0x63,0x65,0x70,0x74,0x27,0x3a,0x20,0x27,0x61,0x70,0x70,0x6c,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2f,0x6e,0x6f,0x73,0x74,0x72,0x2b,0x6a,0x73,0x6f,0x6e,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x27,0x55,0x73,0x65,0x72,0x2d,0x41,0x67,0x65,0x6e,0x74,0x27,0x3a,0x20,0x27,0x43,0x2d,0x52,0x65,0x6c,0x61,0x79,0x2d,0x41,0x64,0x6d,0x69,0x6e,0x2d,0x41,0x50,0x49,0x2f,0x31,0x2e,0x30,0x27,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x3a,0x20,0x31,0x30,0x30,0x30,0x30,0x20,0x2f,0x2f,0x20,0x31,0x30,0x20,0x73,0x65,0x63,0x6f,0x6e,0x64,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x2e,0x6f,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x48,0x54,0x54,0x50,0x20,0x24,0x7b,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x54,0x65,0x78,0x74,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x2e,0x68,0x65,0x61,0x64,0x65,0x72,0x73,0x2e,0x67,0x65,0x74,0x28,0x27,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x74,0x79,0x70,0x65,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x20,0x7c,0x7c,0x20,0x21,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x27,0x61,0x70,0x70,0x6c,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2f,0x6e,0x6f,0x73,0x74,0x72,0x2b,0x6a,0x73,0x6f,0x6e,0x27,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x24,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x7d,0x2e,0x20,0x45,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x61,0x70,0x70,0x6c,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2f,0x6e,0x6f,0x73,0x74,0x72,0x2b,0x6a,0x73,0x6f,0x6e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x2e,0x6a,0x73,0x6f,0x6e,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x69,0x66,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x69,0x6e,0x66,0x6f,0x20,0x69,0x73,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x28,0x6e,0x6f,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x65,0x64,0x20,0x79,0x65,0x74,0x29,0x20,0x62,0x75,0x74,0x20,0x64,0x6f,0x6e,0x27,0x74,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x6f,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x20,0x7c,0x7c,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x72,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x52,0x65,0x6c,0x61,0x79,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x65,0x64,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x4e,0x49,0x50,0x2d,0x31,0x31,0x20,0x69,0x6e,0x66,0x6f,0x20,0x2d,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x6e,0x6f,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x65,0x64,0x20,0x79,0x65,0x74,0x2c,0x20,0x77,0x69,0x6c,0x6c,0x20,0x75,0x73,0x65,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x69,0x66,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x64,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x20,0x2d,0x20,0x74,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x76,0x61,0x6c,0x69,0x64,0x2c,0x20,0x63,0x61,0x6c,0x6c,0x65,0x72,0x20,0x77,0x69,0x6c,0x6c,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x69,0x66,0x20,0x70,0x72,0x65,0x73,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x26,0x26,0x20,0x21,0x2f,0x5e,0x5b,0x30,0x2d,0x39,0x61,0x2d,0x66,0x41,0x2d,0x46,0x5d,0x7b,0x36,0x34,0x7d,0x24,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x72,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x3a,0x20,0x24,0x7b,0x72,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x53,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x20,0x66,0x65,0x74,0x63,0x68,0x65,0x64,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x69,0x6e,0x66,0x6f,0x2e,0x20,0x50,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x24,0x7b,0x72,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x3f,0x20,0x72,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x30,0x2c,0x20,0x31,0x36,0x29,0x20,0x2b,0x20,0x27,0x2e,0x2e,0x2e,0x27,0x20,0x3a,0x20,0x27,0x6e,0x6f,0x74,0x20,0x73,0x65,0x74,0x27,0x7d,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x66,0x65,0x74,0x63,0x68,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x69,0x6e,0x66,0x6f,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x65,0x73,0x74,0x20,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x65,0x73,0x74,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x28,0x77,0x73,0x55,0x72,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x28,0x28,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x2c,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x54,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x3a,0x20,0x24,0x7b,0x77,0x73,0x55,0x72,0x6c,0x7d,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x77,0x73,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x28,0x77,0x73,0x55,0x72,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x20,0x3d,0x20,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x73,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x28,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x20,0x28,0x31,0x30,0x73,0x29,0x27,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x20,0x31,0x30,0x30,0x30,0x30,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x73,0x2e,0x6f,0x6e,0x6f,0x70,0x65,0x6e,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x65,0x61,0x72,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x73,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x73,0x2e,0x6f,0x6e,0x65,0x72,0x72,0x6f,0x72,0x20,0x3d,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x65,0x61,0x72,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x27,0x55,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x20,0x65,0x72,0x72,0x6f,0x72,0x27,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x28,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x27,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x73,0x2e,0x6f,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x20,0x3d,0x20,0x28,0x65,0x76,0x65,0x6e,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x76,0x65,0x6e,0x74,0x2e,0x63,0x6f,0x64,0x65,0x20,0x21,0x3d,0x3d,0x20,0x31,0x30,0x30,0x30,0x29,0x20,0x7b,0x20,0x2f,0x2f,0x20,0x31,0x30,0x30,0x30,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x63,0x6c,0x6f,0x73,0x75,0x72,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x65,0x61,0x72,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x28,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x20,0x63,0x6c,0x6f,0x73,0x65,0x64,0x20,0x75,0x6e,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x6c,0x79,0x3a,0x20,0x24,0x7b,0x65,0x76,0x65,0x6e,0x74,0x2e,0x63,0x6f,0x64,0x65,0x7d,0x20,0x24,0x7b,0x65,0x76,0x65,0x6e,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x20,0x74,0x65,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x28,0x4e,0x49,0x50,0x2d,0x31,0x31,0x20,0x2b,0x20,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x20,0x74,0x65,0x73,0x74,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x54,0x6f,0x52,0x65,0x6c,0x61,0x79,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x55,0x72,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x75,0x72,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x65,0x6e,0x74,0x65,0x72,0x20,0x61,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x55,0x52,0x4c,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x55,0x49,0x20,0x74,0x6f,0x20,0x73,0x68,0x6f,0x77,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6e,0x67,0x20,0x73,0x74,0x61,0x74,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x52,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6e,0x67,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x3a,0x20,0x24,0x7b,0x75,0x72,0x6c,0x7d,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x66,0x65,0x74,0x63,0x68,0x65,0x64,0x52,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x65,0x70,0x20,0x31,0x3a,0x20,0x54,0x72,0x79,0x20,0x74,0x6f,0x20,0x66,0x65,0x74,0x63,0x68,0x20,0x4e,0x49,0x50,0x2d,0x31,0x31,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x69,0x6e,0x66,0x6f,0x72,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x65,0x74,0x63,0x68,0x65,0x64,0x52,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x66,0x65,0x74,0x63,0x68,0x52,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x28,0x75,0x72,0x6c,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x68,0x65,0x63,0x6b,0x20,0x69,0x66,0x20,0x4e,0x49,0x50,0x2d,0x31,0x31,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x20,0x61,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x66,0x65,0x74,0x63,0x68,0x65,0x64,0x52,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4e,0x49,0x50,0x2d,0x31,0x31,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x64,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x2d,0x20,0x70,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x20,0x74,0x68,0x65,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x66,0x69,0x65,0x6c,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x4e,0x49,0x50,0x2d,0x31,0x31,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x64,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x24,0x7b,0x66,0x65,0x74,0x63,0x68,0x65,0x64,0x52,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x30,0x2c,0x20,0x31,0x36,0x29,0x7d,0x2e,0x2e,0x2e,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x4d,0x61,0x6e,0x75,0x61,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x66,0x65,0x74,0x63,0x68,0x65,0x64,0x52,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4e,0x49,0x50,0x2d,0x31,0x31,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x2c,0x20,0x63,0x68,0x65,0x63,0x6b,0x20,0x66,0x6f,0x72,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x20,0x69,0x6e,0x70,0x75,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x4e,0x49,0x50,0x2d,0x31,0x31,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x2c,0x20,0x63,0x68,0x65,0x63,0x6b,0x69,0x6e,0x67,0x20,0x66,0x6f,0x72,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x20,0x69,0x6e,0x70,0x75,0x74,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x4d,0x61,0x6e,0x75,0x61,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x52,0x65,0x6c,0x61,0x79,0x20,0x4e,0x49,0x50,0x2d,0x31,0x31,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x64,0x6f,0x65,0x73,0x20,0x6e,0x6f,0x74,0x20,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x20,0x61,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x2e,0x20,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x65,0x6e,0x74,0x65,0x72,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x6c,0x79,0x20,0x28,0x73,0x68,0x6f,0x77,0x6e,0x20,0x64,0x75,0x72,0x69,0x6e,0x67,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x73,0x74,0x61,0x72,0x74,0x75,0x70,0x29,0x2e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x2f,0x5e,0x5b,0x30,0x2d,0x39,0x61,0x2d,0x66,0x41,0x2d,0x46,0x5d,0x7b,0x36,0x34,0x7d,0x24,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x4d,0x61,0x6e,0x75,0x61,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x6d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x65,0x78,0x61,0x63,0x74,0x6c,0x79,0x20,0x36,0x34,0x20,0x68,0x65,0x78,0x61,0x64,0x65,0x63,0x69,0x6d,0x61,0x6c,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x55,0x73,0x69,0x6e,0x67,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x24,0x7b,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x50,0x75,0x62,0x6b,0x65,0x79,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x30,0x2c,0x20,0x31,0x36,0x29,0x7d,0x2e,0x2e,0x2e,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x64,0x64,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x74,0x6f,0x20,0x74,0x68,0x65,0x20,0x66,0x65,0x74,0x63,0x68,0x65,0x64,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x69,0x6e,0x66,0x6f,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x65,0x74,0x63,0x68,0x65,0x64,0x52,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x50,0x75,0x62,0x6b,0x65,0x79,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x66,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x69,0x6e,0x66,0x6f,0x20,0x77,0x61,0x73,0x20,0x63,0x6f,0x6d,0x70,0x6c,0x65,0x74,0x65,0x6c,0x79,0x20,0x65,0x6d,0x70,0x74,0x79,0x2c,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x20,0x6d,0x69,0x6e,0x69,0x6d,0x61,0x6c,0x20,0x69,0x6e,0x66,0x6f,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x66,0x65,0x74,0x63,0x68,0x65,0x64,0x52,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x65,0x74,0x63,0x68,0x65,0x64,0x52,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x3a,0x20,0x27,0x43,0x2d,0x52,0x65,0x6c,0x61,0x79,0x20,0x28,0x4d,0x61,0x6e,0x75,0x61,0x6c,0x20,0x43,0x6f,0x6e,0x66,0x69,0x67,0x29,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x27,0x43,0x2d,0x52,0x65,0x6c,0x61,0x79,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x2d,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x64,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x6c,0x79,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x63,0x74,0x3a,0x20,0x27,0x61,0x64,0x6d,0x69,0x6e,0x40,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x72,0x65,0x6c,0x61,0x79,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x5f,0x6e,0x69,0x70,0x73,0x3a,0x20,0x5b,0x31,0x2c,0x20,0x39,0x2c,0x20,0x31,0x31,0x2c,0x20,0x31,0x33,0x2c,0x20,0x31,0x35,0x2c,0x20,0x32,0x30,0x2c,0x20,0x33,0x33,0x2c,0x20,0x34,0x30,0x2c,0x20,0x34,0x32,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,0x3a,0x20,0x27,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x67,0x69,0x74,0x68,0x75,0x62,0x2e,0x63,0x6f,0x6d,0x2f,0x30,0x78,0x74,0x72,0x72,0x2f,0x63,0x2d,0x72,0x65,0x6c,0x61,0x79,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3a,0x20,0x27,0x31,0x2e,0x30,0x2e,0x30,0x27,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x6e,0x69,0x70,0x31,0x31,0x45,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x66,0x20,0x4e,0x49,0x50,0x2d,0x31,0x31,0x20,0x63,0x6f,0x6d,0x70,0x6c,0x65,0x74,0x65,0x6c,0x79,0x20,0x66,0x61,0x69,0x6c,0x73,0x20,0x28,0x6e,0x65,0x74,0x77,0x6f,0x72,0x6b,0x20,0x65,0x72,0x72,0x6f,0x72,0x2c,0x20,0x65,0x74,0x63,0x2e,0x29,0x2c,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x4d,0x61,0x6e,0x75,0x61,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x4e,0x49,0x50,0x2d,0x31,0x31,0x20,0x66,0x65,0x74,0x63,0x68,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x6e,0x69,0x70,0x31,0x31,0x45,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x2e,0x20,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x65,0x6e,0x74,0x65,0x72,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x6c,0x79,0x20,0x69,0x66,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x68,0x61,0x73,0x6e,0x27,0x74,0x20,0x62,0x65,0x65,0x6e,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x65,0x64,0x20,0x79,0x65,0x74,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x2f,0x5e,0x5b,0x30,0x2d,0x39,0x61,0x2d,0x66,0x41,0x2d,0x46,0x5d,0x7b,0x36,0x34,0x7d,0x24,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x4d,0x61,0x6e,0x75,0x61,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x6d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x65,0x78,0x61,0x63,0x74,0x6c,0x79,0x20,0x36,0x34,0x20,0x68,0x65,0x78,0x61,0x64,0x65,0x63,0x69,0x6d,0x61,0x6c,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x4e,0x49,0x50,0x2d,0x31,0x31,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x2c,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x24,0x7b,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x50,0x75,0x62,0x6b,0x65,0x79,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x30,0x2c,0x20,0x31,0x36,0x29,0x7d,0x2e,0x2e,0x2e,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x6d,0x69,0x6e,0x69,0x6d,0x61,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x69,0x6e,0x66,0x6f,0x20,0x77,0x69,0x74,0x68,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x65,0x74,0x63,0x68,0x65,0x64,0x52,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x3a,0x20,0x27,0x43,0x2d,0x52,0x65,0x6c,0x61,0x79,0x20,0x28,0x4d,0x61,0x6e,0x75,0x61,0x6c,0x20,0x43,0x6f,0x6e,0x66,0x69,0x67,0x29,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x27,0x43,0x2d,0x52,0x65,0x6c,0x61,0x79,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x2d,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x64,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x6c,0x79,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x63,0x74,0x3a,0x20,0x27,0x61,0x64,0x6d,0x69,0x6e,0x40,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x72,0x65,0x6c,0x61,0x79,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x5f,0x6e,0x69,0x70,0x73,0x3a,0x20,0x5b,0x31,0x2c,0x20,0x39,0x2c,0x20,0x31,0x31,0x2c,0x20,0x31,0x33,0x2c,0x20,0x31,0x35,0x2c,0x20,0x32,0x30,0x2c,0x20,0x33,0x33,0x2c,0x20,0x34,0x30,0x2c,0x20,0x34,0x32,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,0x3a,0x20,0x27,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x67,0x69,0x74,0x68,0x75,0x62,0x2e,0x63,0x6f,0x6d,0x2f,0x30,0x78,0x74,0x72,0x72,0x2f,0x63,0x2d,0x72,0x65,0x6c,0x61,0x79,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3a,0x20,0x27,0x31,0x2e,0x30,0x2e,0x30,0x27,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x65,0x70,0x20,0x32,0x3a,0x20,0x54,0x65,0x73,0x74,0x20,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x74,0x65,0x73,0x74,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x28,0x75,0x72,0x6c,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x65,0x70,0x20,0x33,0x3a,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x20,0x73,0x74,0x61,0x74,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x66,0x65,0x74,0x63,0x68,0x65,0x64,0x52,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x66,0x65,0x74,0x63,0x68,0x65,0x64,0x52,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x52,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x65,0x70,0x20,0x34,0x3a,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x55,0x49,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x52,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x41,0x64,0x6d,0x69,0x6e,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x56,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x65,0x70,0x20,0x35,0x3a,0x20,0x52,0x65,0x6c,0x61,0x79,0x20,0x55,0x52,0x4c,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x65,0x70,0x20,0x36,0x3a,0x20,0x41,0x75,0x74,0x6f,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,0x6c,0x79,0x20,0x6c,0x6f,0x61,0x64,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x61,0x6e,0x64,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x52,0x65,0x6c,0x61,0x79,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x2e,0x20,0x41,0x75,0x74,0x6f,0x2d,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x61,0x6e,0x64,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x75,0x74,0x6f,0x2d,0x66,0x65,0x74,0x63,0x68,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x65,0x74,0x63,0x68,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x28,0x29,0x2e,0x63,0x61,0x74,0x63,0x68,0x28,0x65,0x72,0x72,0x6f,0x72,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x41,0x75,0x74,0x6f,0x2d,0x66,0x65,0x74,0x63,0x68,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x27,0x20,0x2b,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x20,0x35,0x30,0x30,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x75,0x74,0x6f,0x2d,0x66,0x65,0x74,0x63,0x68,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x61,0x64,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x28,0x29,0x2e,0x63,0x61,0x74,0x63,0x68,0x28,0x65,0x72,0x72,0x6f,0x72,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x41,0x75,0x74,0x6f,0x2d,0x66,0x65,0x74,0x63,0x68,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x27,0x20,0x2b,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x20,0x31,0x30,0x30,0x30,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x75,0x74,0x6f,0x2d,0x66,0x65,0x74,0x63,0x68,0x20,0x64,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x20,0x73,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x6e,0x64,0x53,0x74,0x61,0x74,0x73,0x51,0x75,0x65,0x72,0x79,0x28,0x29,0x2e,0x63,0x61,0x74,0x63,0x68,0x28,0x65,0x72,0x72,0x6f,0x72,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x41,0x75,0x74,0x6f,0x2d,0x66,0x65,0x74,0x63,0x68,0x20,0x73,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x27,0x20,0x2b,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x20,0x31,0x35,0x30,0x30,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x53,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x3a,0x20,0x24,0x7b,0x72,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x7c,0x7c,0x20,0x27,0x55,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x27,0x7d,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x52,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x65,0x72,0x72,0x6f,0x72,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x73,0x65,0x74,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x6f,0x6e,0x20,0x66,0x61,0x69,0x6c,0x75,0x72,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x52,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x66,0x69,0x6e,0x61,0x6c,0x6c,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x20,0x66,0x72,0x6f,0x6d,0x20,0x72,0x65,0x6c,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x46,0x72,0x6f,0x6d,0x52,0x65,0x6c,0x61,0x79,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x44,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6e,0x67,0x20,0x66,0x72,0x6f,0x6d,0x20,0x72,0x65,0x6c,0x61,0x79,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6c,0x65,0x61,0x6e,0x20,0x75,0x70,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x70,0x6f,0x6f,0x6c,0x20,0x69,0x66,0x20,0x65,0x78,0x69,0x73,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x55,0x72,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x75,0x72,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x28,0x5b,0x75,0x72,0x6c,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x49,0x64,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x73,0x65,0x74,0x20,0x73,0x74,0x61,0x74,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x52,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x55,0x49,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x52,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x64,0x65,0x52,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x41,0x64,0x6d,0x69,0x6e,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x56,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x44,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x20,0x66,0x72,0x6f,0x6d,0x20,0x72,0x65,0x6c,0x61,0x79,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x45,0x72,0x72,0x6f,0x72,0x20,0x64,0x75,0x72,0x69,0x6e,0x67,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x55,0x49,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x52,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x73,0x74,0x61,0x74,0x75,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x77,0x69,0x74,0x63,0x68,0x20,0x28,0x73,0x74,0x61,0x74,0x75,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x27,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6e,0x67,0x27,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x43,0x4f,0x4e,0x4e,0x45,0x43,0x54,0x49,0x4e,0x47,0x2e,0x2e,0x2e,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x27,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x27,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x27,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x43,0x4f,0x4e,0x4e,0x45,0x43,0x54,0x45,0x44,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x27,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x27,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x27,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x4e,0x4f,0x54,0x20,0x43,0x4f,0x4e,0x4e,0x45,0x43,0x54,0x45,0x44,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x27,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x27,0x65,0x72,0x72,0x6f,0x72,0x27,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x43,0x4f,0x4e,0x4e,0x45,0x43,0x54,0x49,0x4f,0x4e,0x20,0x46,0x41,0x49,0x4c,0x45,0x44,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x27,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x65,0x72,0x72,0x6f,0x72,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x69,0x64,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x69,0x6e,0x66,0x6f,0x72,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x28,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x20,0x66,0x6f,0x72,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x64,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x74,0x79,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x69,0x64,0x65,0x52,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x6c,0x61,0x79,0x20,0x69,0x6e,0x66,0x6f,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x74,0x79,0x20,0x68,0x61,0x73,0x20,0x62,0x65,0x65,0x6e,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x52,0x65,0x6c,0x61,0x79,0x20,0x69,0x6e,0x66,0x6f,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x74,0x79,0x20,0x68,0x61,0x73,0x20,0x62,0x65,0x65,0x6e,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x68,0x65,0x63,0x6b,0x20,0x66,0x6f,0x72,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x20,0x61,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x77,0x69,0x74,0x68,0x20,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x20,0x41,0x50,0x49,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x73,0x20,0x61,0x6e,0x64,0x20,0x72,0x65,0x74,0x72,0x79,0x20,0x6c,0x6f,0x67,0x69,0x63,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x68,0x65,0x63,0x6b,0x45,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x41,0x75,0x74,0x68,0x57,0x69,0x74,0x68,0x52,0x65,0x74,0x72,0x69,0x65,0x73,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x53,0x74,0x61,0x72,0x74,0x69,0x6e,0x67,0x20,0x61,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x64,0x65,0x74,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x77,0x69,0x74,0x68,0x20,0x72,0x65,0x74,0x72,0x79,0x20,0x6c,0x6f,0x67,0x69,0x63,0x2e,0x2e,0x2e,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x61,0x78,0x41,0x74,0x74,0x65,0x6d,0x70,0x74,0x73,0x20,0x3d,0x20,0x31,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x6c,0x61,0x79,0x20,0x3d,0x20,0x35,0x30,0x30,0x3b,0x20,0x2f,0x2f,0x20,0x6d,0x73,0x20,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x20,0x61,0x74,0x74,0x65,0x6d,0x70,0x74,0x73,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x61,0x74,0x74,0x65,0x6d,0x70,0x74,0x20,0x3d,0x20,0x31,0x3b,0x20,0x61,0x74,0x74,0x65,0x6d,0x70,0x74,0x20,0x3c,0x3d,0x20,0x6d,0x61,0x78,0x41,0x74,0x74,0x65,0x6d,0x70,0x74,0x73,0x3b,0x20,0x61,0x74,0x74,0x65,0x6d,0x70,0x74,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0x41,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x64,0x65,0x74,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x74,0x74,0x65,0x6d,0x70,0x74,0x20,0x24,0x7b,0x61,0x74,0x74,0x65,0x6d,0x70,0x74,0x7d,0x2f,0x24,0x7b,0x6d,0x61,0x78,0x41,0x74,0x74,0x65,0x6d,0x70,0x74,0x73,0x7d,0x60,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4d,0x65,0x74,0x68,0x6f,0x64,0x20,0x31,0x3a,0x20,0x54,0x72,0x79,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x4f,0x53,0x54,0x52,0x5f,0x4c,0x4f,0x47,0x49,0x4e,0x5f,0x4c,0x49,0x54,0x45,0x2e,0x67,0x65,0x74,0x41,0x75,0x74,0x68,0x53,0x74,0x61,0x74,0x65,0x28,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x4f,0x53,0x54,0x52,0x5f,0x4c,0x4f,0x47,0x49,0x4e,0x5f,0x4c,0x49,0x54,0x45,0x20,0x26,0x26,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x4f,0x53,0x54,0x52,0x5f,0x4c,0x4f,0x47,0x49,0x4e,0x5f,0x4c,0x49,0x54,0x45,0x2e,0x67,0x65,0x74,0x41,0x75,0x74,0x68,0x53,0x74,0x61,0x74,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x54,0x72,0x79,0x69,0x6e,0x67,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x4f,0x53,0x54,0x52,0x5f,0x4c,0x4f,0x47,0x49,0x4e,0x5f,0x4c,0x49,0x54,0x45,0x2e,0x67,0x65,0x74,0x41,0x75,0x74,0x68,0x53,0x74,0x61,0x74,0x65,0x28,0x29,0x2e,0x2e,0x2e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x75,0x74,0x68,0x53,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x4f,0x53,0x54,0x52,0x5f,0x4c,0x4f,0x47,0x49,0x4e,0x5f,0x4c,0x49,0x54,0x45,0x2e,0x67,0x65,0x74,0x41,0x75,0x74,0x68,0x53,0x74,0x61,0x74,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x75,0x74,0x68,0x53,0x74,0x61,0x74,0x65,0x20,0x26,0x26,0x20,0x61,0x75,0x74,0x68,0x53,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0xe2,0x9c,0x85,0x20,0x41,0x75,0x74,0x68,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x76,0x69,0x61,0x20,0x4e,0x4f,0x53,0x54,0x52,0x5f,0x4c,0x4f,0x47,0x49,0x4e,0x5f,0x4c,0x49,0x54,0x45,0x2e,0x67,0x65,0x74,0x41,0x75,0x74,0x68,0x53,0x74,0x61,0x74,0x65,0x28,0x29,0x3a,0x27,0x2c,0x20,0x61,0x75,0x74,0x68,0x53,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x72,0x65,0x73,0x74,0x6f,0x72,0x65,0x41,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x65,0x28,0x61,0x75,0x74,0x68,0x53,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4d,0x65,0x74,0x68,0x6f,0x64,0x20,0x32,0x3a,0x20,0x54,0x72,0x79,0x20,0x6e,0x6c,0x4c,0x69,0x74,0x65,0x2e,0x67,0x65,0x74,0x50,0x75,0x62,0x6c,0x69,0x63,0x4b,0x65,0x79,0x28,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6c,0x4c,0x69,0x74,0x65,0x20,0x26,0x26,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6e,0x6c,0x4c,0x69,0x74,0x65,0x2e,0x67,0x65,0x74,0x50,0x75,0x62,0x6c,0x69,0x63,0x4b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x54,0x72,0x79,0x69,0x6e,0x67,0x20,0x6e,0x6c,0x4c,0x69,0x74,0x65,0x2e,0x67,0x65,0x74,0x50,0x75,0x62,0x6c,0x69,0x63,0x4b,0x65,0x79,0x28,0x29,0x2e,0x2e,0x2e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x6e,0x6c,0x4c,0x69,0x74,0x65,0x2e,0x67,0x65,0x74,0x50,0x75,0x62,0x6c,0x69,0x63,0x4b,0x65,0x79,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x26,0x26,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0xe2,0x9c,0x85,0x20,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x76,0x69,0x61,0x20,0x6e,0x6c,0x4c,0x69,0x74,0x65,0x2e,0x67,0x65,0x74,0x50,0x75,0x62,0x6c,0x69,0x63,0x4b,0x65,0x79,0x28,0x29,0x3a,0x27,0x2c,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x72,0x65,0x73,0x74,0x6f,0x72,0x65,0x41,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x65,0x28,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4d,0x65,0x74,0x68,0x6f,0x64,0x20,0x33,0x3a,0x20,0x54,0x72,0x79,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x67,0x65,0x74,0x50,0x75,0x62,0x6c,0x69,0x63,0x4b,0x65,0x79,0x28,0x29,0x20,0x28,0x4e,0x49,0x50,0x2d,0x30,0x37,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x20,0x26,0x26,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x67,0x65,0x74,0x50,0x75,0x62,0x6c,0x69,0x63,0x4b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x54,0x72,0x79,0x69,0x6e,0x67,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x67,0x65,0x74,0x50,0x75,0x62,0x6c,0x69,0x63,0x4b,0x65,0x79,0x28,0x29,0x2e,0x2e,0x2e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x67,0x65,0x74,0x50,0x75,0x62,0x6c,0x69,0x63,0x4b,0x65,0x79,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x26,0x26,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0xe2,0x9c,0x85,0x20,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x76,0x69,0x61,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x67,0x65,0x74,0x50,0x75,0x62,0x6c,0x69,0x63,0x4b,0x65,0x79,0x28,0x29,0x3a,0x27,0x2c,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x72,0x65,0x73,0x74,0x6f,0x72,0x65,0x41,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x65,0x28,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4d,0x65,0x74,0x68,0x6f,0x64,0x20,0x34,0x3a,0x20,0x43,0x68,0x65,0x63,0x6b,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6c,0x79,0x20,0x66,0x6f,0x72,0x20,0x4e,0x4f,0x53,0x54,0x52,0x5f,0x4c,0x4f,0x47,0x49,0x4e,0x5f,0x4c,0x49,0x54,0x45,0x20,0x64,0x61,0x74,0x61,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x44,0x61,0x74,0x61,0x20,0x3d,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x2e,0x67,0x65,0x74,0x49,0x74,0x65,0x6d,0x28,0x27,0x4e,0x4f,0x53,0x54,0x52,0x5f,0x4c,0x4f,0x47,0x49,0x4e,0x5f,0x4c,0x49,0x54,0x45,0x5f,0x44,0x41,0x54,0x41,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x44,0x61,0x74,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x61,0x72,0x73,0x65,0x64,0x44,0x61,0x74,0x61,0x20,0x3d,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x44,0x61,0x74,0x61,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x73,0x65,0x64,0x44,0x61,0x74,0x61,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0xe2,0x9c,0x85,0x20,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x69,0x6e,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x3a,0x27,0x2c,0x20,0x70,0x61,0x72,0x73,0x65,0x64,0x44,0x61,0x74,0x61,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x72,0x65,0x73,0x74,0x6f,0x72,0x65,0x41,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x65,0x28,0x70,0x61,0x72,0x73,0x65,0x64,0x44,0x61,0x74,0x61,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x70,0x61,0x72,0x73,0x65,0x45,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x70,0x61,0x72,0x73,0x65,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x20,0x64,0x61,0x74,0x61,0x3a,0x27,0x2c,0x20,0x70,0x61,0x72,0x73,0x65,0x45,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0xe2,0x9d,0x8c,0x20,0x41,0x74,0x74,0x65,0x6d,0x70,0x74,0x20,0x24,0x7b,0x61,0x74,0x74,0x65,0x6d,0x70,0x74,0x7d,0x3a,0x20,0x4e,0x6f,0x20,0x61,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x76,0x69,0x61,0x20,0x61,0x6e,0x79,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x60,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x57,0x61,0x69,0x74,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x20,0x6e,0x65,0x78,0x74,0x20,0x61,0x74,0x74,0x65,0x6d,0x70,0x74,0x20,0x28,0x65,0x78,0x63,0x65,0x70,0x74,0x20,0x66,0x6f,0x72,0x20,0x6c,0x61,0x73,0x74,0x20,0x61,0x74,0x74,0x65,0x6d,0x70,0x74,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x74,0x74,0x65,0x6d,0x70,0x74,0x20,0x3c,0x20,0x6d,0x61,0x78,0x41,0x74,0x74,0x65,0x6d,0x70,0x74,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x6e,0x65,0x77,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x28,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x20,0x3d,0x3e,0x20,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x2c,0x20,0x64,0x65,0x6c,0x61,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0xe2,0x9d,0x8c,0x20,0x41,0x74,0x74,0x65,0x6d,0x70,0x74,0x20,0x24,0x7b,0x61,0x74,0x74,0x65,0x6d,0x70,0x74,0x7d,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x60,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x74,0x74,0x65,0x6d,0x70,0x74,0x20,0x3c,0x20,0x6d,0x61,0x78,0x41,0x74,0x74,0x65,0x6d,0x70,0x74,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x6e,0x65,0x77,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x28,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x20,0x3d,0x3e,0x20,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x2c,0x20,0x64,0x65,0x6c,0x61,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0xf0,0x9f,0x94,0x8d,0x20,0x41,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x64,0x65,0x74,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6f,0x6d,0x70,0x6c,0x65,0x74,0x65,0x64,0x20,0x2d,0x20,0x6e,0x6f,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x20,0x61,0x75,0x74,0x68,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x61,0x6c,0x6c,0x20,0x61,0x74,0x74,0x65,0x6d,0x70,0x74,0x73,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x65,0x6c,0x70,0x65,0x72,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x20,0x72,0x65,0x73,0x74,0x6f,0x72,0x65,0x20,0x61,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x61,0x74,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x74,0x6f,0x72,0x65,0x41,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x65,0x28,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0xf0,0x9f,0x94,0x84,0x20,0x52,0x65,0x73,0x74,0x6f,0x72,0x69,0x6e,0x67,0x20,0x61,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x66,0x6f,0x72,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x27,0x2c,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x68,0x6f,0x77,0x20,0x6d,0x61,0x69,0x6e,0x20,0x69,0x6e,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x68,0x6f,0x77,0x4d,0x61,0x69,0x6e,0x49,0x6e,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x61,0x64,0x55,0x73,0x65,0x72,0x50,0x72,0x6f,0x66,0x69,0x6c,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x4c,0x6f,0x67,0x69,0x6e,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x42,0x75,0x74,0x74,0x6f,0x6e,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4e,0x6f,0x74,0x65,0x3a,0x20,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x66,0x65,0x74,0x63,0x68,0x69,0x6e,0x67,0x20,0x6e,0x6f,0x77,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x73,0x20,0x65,0x78,0x70,0x6c,0x69,0x63,0x69,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x72,0x20,0x6d,0x75,0x73,0x74,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x6c,0x79,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0xe2,0x9c,0x85,0x20,0x41,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x72,0x65,0x73,0x74,0x6f,0x72,0x65,0x64,0x20,0x2d,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x74,0x6f,0x20,0x66,0x65,0x74,0x63,0x68,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0xe2,0x9c,0x85,0x20,0x41,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x72,0x65,0x73,0x74,0x6f,0x72,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x65,0x67,0x61,0x63,0x79,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6f,0x72,0x20,0x62,0x61,0x63,0x6b,0x77,0x61,0x72,0x64,0x20,0x63,0x6f,0x6d,0x70,0x61,0x74,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x68,0x65,0x63,0x6b,0x45,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x41,0x75,0x74,0x68,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x63,0x68,0x65,0x63,0x6b,0x45,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x41,0x75,0x74,0x68,0x57,0x69,0x74,0x68,0x52,0x65,0x74,0x72,0x69,0x65,0x73,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x6e,0x69,0x74,0x69,0x61,0x6c,0x69,0x7a,0x65,0x20,0x4e,0x4f,0x53,0x54,0x52,0x5f,0x4c,0x4f,0x47,0x49,0x4e,0x5f,0x4c,0x49,0x54,0x45,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x69,0x7a,0x65,0x41,0x70,0x70,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x4f,0x53,0x54,0x52,0x5f,0x4c,0x4f,0x47,0x49,0x4e,0x5f,0x4c,0x49,0x54,0x45,0x2e,0x69,0x6e,0x69,0x74,0x28,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x65,0x6d,0x65,0x3a,0x20,0x27,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x73,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x65,0x64,0x70,0x68,0x72,0x61,0x73,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x74,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x74,0x70,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x69,0x6e,0x67,0x54,0x61,0x62,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x68,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x31,0x2c,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x30,0x2e,0x30,0x2d,0x31,0x2e,0x30,0x20,0x6f,0x72,0x20,0x27,0x39,0x35,0x25,0x27,0x20,0x66,0x72,0x6f,0x6d,0x20,0x6c,0x65,0x66,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x76,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x30,0x2c,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x30,0x2e,0x30,0x2d,0x31,0x2e,0x30,0x20,0x6f,0x72,0x20,0x27,0x35,0x30,0x25,0x27,0x20,0x66,0x72,0x6f,0x6d,0x20,0x74,0x6f,0x70,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x70,0x70,0x65,0x61,0x72,0x61,0x6e,0x63,0x65,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x79,0x6c,0x65,0x3a,0x20,0x27,0x73,0x71,0x75,0x61,0x72,0x65,0x27,0x2c,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x27,0x70,0x69,0x6c,0x6c,0x27,0x2c,0x20,0x27,0x73,0x71,0x75,0x61,0x72,0x65,0x27,0x2c,0x20,0x27,0x63,0x69,0x72,0x63,0x6c,0x65,0x27,0x2c,0x20,0x27,0x6d,0x69,0x6e,0x69,0x6d,0x61,0x6c,0x27,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x63,0x6f,0x6e,0x3a,0x20,0x27,0x5b,0x4c,0x4f,0x47,0x49,0x4e,0x5d,0x27,0x2c,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4e,0x6f,0x77,0x20,0x75,0x73,0x65,0x73,0x20,0x74,0x65,0x78,0x74,0x2d,0x62,0x61,0x73,0x65,0x64,0x20,0x69,0x63,0x6f,0x6e,0x73,0x20,0x6c,0x69,0x6b,0x65,0x20,0x5b,0x4c,0x4f,0x47,0x49,0x4e,0x5d,0x2c,0x20,0x5b,0x4b,0x45,0x59,0x5d,0x2c,0x20,0x5b,0x4e,0x45,0x54,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x78,0x74,0x3a,0x20,0x27,0x4c,0x6f,0x67,0x69,0x6e,0x27,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x62,0x65,0x68,0x61,0x76,0x69,0x6f,0x72,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x64,0x65,0x57,0x68,0x65,0x6e,0x41,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x65,0x64,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x73,0x68,0x6f,0x77,0x55,0x73,0x65,0x72,0x49,0x6e,0x66,0x6f,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x6f,0x53,0x6c,0x69,0x64,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x69,0x64,0x65,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x27,0x61,0x75,0x74,0x6f,0x27,0x20,0x2f,0x2f,0x20,0x27,0x61,0x75,0x74,0x6f,0x27,0x2c,0x20,0x27,0x6c,0x65,0x66,0x74,0x27,0x2c,0x20,0x27,0x72,0x69,0x67,0x68,0x74,0x27,0x2c,0x20,0x27,0x75,0x70,0x27,0x2c,0x20,0x27,0x64,0x6f,0x77,0x6e,0x27,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6c,0x4c,0x69,0x74,0x65,0x20,0x3d,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x4f,0x53,0x54,0x52,0x5f,0x4c,0x4f,0x47,0x49,0x4e,0x5f,0x4c,0x49,0x54,0x45,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x4e,0x6f,0x73,0x74,0x72,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x20,0x73,0x79,0x73,0x74,0x65,0x6d,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x69,0x7a,0x65,0x64,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x68,0x65,0x63,0x6b,0x20,0x66,0x6f,0x72,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x20,0x61,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x69,0x7a,0x61,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x77,0x61,0x73,0x41,0x6c,0x72,0x65,0x61,0x64,0x79,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x63,0x68,0x65,0x63,0x6b,0x45,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x41,0x75,0x74,0x68,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x77,0x61,0x73,0x41,0x6c,0x72,0x65,0x61,0x64,0x79,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x55,0x73,0x65,0x72,0x20,0x77,0x61,0x73,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x2c,0x20,0x6d,0x61,0x69,0x6e,0x20,0x69,0x6e,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x20,0x72,0x65,0x73,0x74,0x6f,0x72,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x4e,0x6f,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x20,0x61,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6f,0x75,0x6e,0x64,0x2c,0x20,0x73,0x68,0x6f,0x77,0x69,0x6e,0x67,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x20,0x69,0x6e,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x69,0x73,0x74,0x65,0x6e,0x20,0x66,0x6f,0x72,0x20,0x61,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x6e,0x6c,0x4d,0x65,0x74,0x68,0x6f,0x64,0x53,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x27,0x2c,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x41,0x75,0x74,0x68,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x6e,0x6c,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x27,0x2c,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x69,0x7a,0x65,0x20,0x4e,0x6f,0x73,0x74,0x72,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x3a,0x20,0x27,0x20,0x2b,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x61,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x41,0x75,0x74,0x68,0x45,0x76,0x65,0x6e,0x74,0x28,0x65,0x76,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x2c,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x7d,0x20,0x3d,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x64,0x65,0x74,0x61,0x69,0x6c,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x65,0x74,0x68,0x6f,0x64,0x20,0x26,0x26,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0x4c,0x6f,0x67,0x69,0x6e,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x21,0x20,0x4d,0x65,0x74,0x68,0x6f,0x64,0x3a,0x20,0x24,0x7b,0x6d,0x65,0x74,0x68,0x6f,0x64,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0x50,0x75,0x62,0x6c,0x69,0x63,0x20,0x6b,0x65,0x79,0x3a,0x20,0x24,0x7b,0x70,0x75,0x62,0x6b,0x65,0x79,0x7d,0x60,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x68,0x6f,0x77,0x4d,0x61,0x69,0x6e,0x49,0x6e,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x61,0x64,0x55,0x73,0x65,0x72,0x50,0x72,0x6f,0x66,0x69,0x6c,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x4c,0x6f,0x67,0x69,0x6e,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x42,0x75,0x74,0x74,0x6f,0x6e,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4e,0x6f,0x74,0x65,0x3a,0x20,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x66,0x65,0x74,0x63,0x68,0x69,0x6e,0x67,0x20,0x6e,0x6f,0x77,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x73,0x20,0x65,0x78,0x70,0x6c,0x69,0x63,0x69,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x72,0x20,0x6d,0x75,0x73,0x74,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x6c,0x79,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x4c,0x6f,0x67,0x69,0x6e,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x2e,0x20,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x74,0x6f,0x20,0x61,0x63,0x63,0x65,0x73,0x73,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0x41,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x65,0x72,0x72,0x6f,0x72,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6c,0x65,0x61,0x6e,0x20,0x75,0x70,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x46,0x72,0x6f,0x6d,0x52,0x65,0x6c,0x61,0x79,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x73,0x65,0x74,0x20,0x55,0x49,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6d,0x61,0x69,0x6e,0x49,0x6e,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4c,0x69,0x73,0x74,0x2e,0x61,0x64,0x64,0x28,0x27,0x68,0x69,0x64,0x64,0x65,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4c,0x69,0x73,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x27,0x68,0x69,0x64,0x64,0x65,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x43,0x6f,0x6e,0x66,0x69,0x67,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x66,0x61,0x6c,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x4c,0x6f,0x67,0x69,0x6e,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x42,0x75,0x74,0x74,0x6f,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x41,0x64,0x6d,0x69,0x6e,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x56,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x20,0x6f,0x66,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x20,0x62,0x61,0x73,0x65,0x64,0x20,0x6f,0x6e,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x20,0x61,0x6e,0x64,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x61,0x74,0x75,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x41,0x64,0x6d,0x69,0x6e,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x56,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x69,0x76,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x64,0x69,0x76,0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x53,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x64,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x53,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x69,0x70,0x31,0x37,0x44,0x4d,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x6e,0x69,0x70,0x31,0x37,0x44,0x4d,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x53,0x68,0x6f,0x77,0x20,0x3d,0x20,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x26,0x26,0x20,0x69,0x73,0x52,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x69,0x76,0x43,0x6f,0x6e,0x66,0x69,0x67,0x29,0x20,0x64,0x69,0x76,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x53,0x68,0x6f,0x77,0x20,0x3f,0x20,0x27,0x62,0x6c,0x6f,0x63,0x6b,0x27,0x20,0x3a,0x20,0x27,0x6e,0x6f,0x6e,0x65,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x29,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x53,0x68,0x6f,0x77,0x20,0x3f,0x20,0x27,0x62,0x6c,0x6f,0x63,0x6b,0x27,0x20,0x3a,0x20,0x27,0x6e,0x6f,0x6e,0x65,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x53,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x29,0x20,0x64,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x53,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x53,0x68,0x6f,0x77,0x20,0x3f,0x20,0x27,0x62,0x6c,0x6f,0x63,0x6b,0x27,0x20,0x3a,0x20,0x27,0x6e,0x6f,0x6e,0x65,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x69,0x70,0x31,0x37,0x44,0x4d,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x29,0x20,0x6e,0x69,0x70,0x31,0x37,0x44,0x4d,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x53,0x68,0x6f,0x77,0x20,0x3f,0x20,0x27,0x62,0x6c,0x6f,0x63,0x6b,0x27,0x20,0x3a,0x20,0x27,0x6e,0x6f,0x6e,0x65,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x68,0x6f,0x77,0x20,0x6d,0x61,0x69,0x6e,0x20,0x69,0x6e,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x68,0x6f,0x77,0x4d,0x61,0x69,0x6e,0x49,0x6e,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4c,0x69,0x73,0x74,0x2e,0x61,0x64,0x64,0x28,0x27,0x68,0x69,0x64,0x64,0x65,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6d,0x61,0x69,0x6e,0x49,0x6e,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4c,0x69,0x73,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x27,0x68,0x69,0x64,0x64,0x65,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x4c,0x6f,0x67,0x69,0x6e,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x42,0x75,0x74,0x74,0x6f,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x41,0x64,0x6d,0x69,0x6e,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x56,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x61,0x64,0x20,0x75,0x73,0x65,0x72,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x6e,0x6f,0x73,0x74,0x72,0x2d,0x74,0x6f,0x6f,0x6c,0x73,0x20,0x70,0x6f,0x6f,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x6f,0x61,0x64,0x55,0x73,0x65,0x72,0x50,0x72,0x6f,0x66,0x69,0x6c,0x65,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x4c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x20,0x75,0x73,0x65,0x72,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x2e,0x2e,0x2e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x4e,0x61,0x6d,0x65,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x4c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x2e,0x2e,0x2e,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x41,0x62,0x6f,0x75,0x74,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x4c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x2e,0x2e,0x2e,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x61,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x66,0x6f,0x72,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x3d,0x20,0x5b,0x27,0x77,0x73,0x73,0x3a,0x2f,0x2f,0x72,0x65,0x6c,0x61,0x79,0x2e,0x6c,0x61,0x61,0x6e,0x74,0x75,0x6e,0x67,0x69,0x72,0x2e,0x6e,0x65,0x74,0x27,0x5d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x47,0x65,0x74,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x28,0x6b,0x69,0x6e,0x64,0x20,0x30,0x29,0x20,0x66,0x6f,0x72,0x20,0x74,0x68,0x65,0x20,0x75,0x73,0x65,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x2e,0x71,0x75,0x65,0x72,0x79,0x53,0x79,0x6e,0x63,0x28,0x72,0x65,0x6c,0x61,0x79,0x73,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x73,0x3a,0x20,0x5b,0x30,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x68,0x6f,0x72,0x73,0x3a,0x20,0x5b,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6d,0x69,0x74,0x3a,0x20,0x31,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x76,0x65,0x6e,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x50,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x3a,0x27,0x2c,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x5b,0x30,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x3d,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x65,0x76,0x65,0x6e,0x74,0x73,0x5b,0x30,0x5d,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x50,0x61,0x72,0x73,0x65,0x64,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x3a,0x27,0x2c,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x50,0x72,0x6f,0x66,0x69,0x6c,0x65,0x28,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x4e,0x6f,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x66,0x6f,0x72,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x27,0x2c,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x4e,0x61,0x6d,0x65,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x41,0x6e,0x6f,0x6e,0x79,0x6d,0x6f,0x75,0x73,0x20,0x55,0x73,0x65,0x72,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x41,0x62,0x6f,0x75,0x74,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x4e,0x6f,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x66,0x6f,0x75,0x6e,0x64,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x69,0x6c,0x6c,0x20,0x73,0x68,0x6f,0x77,0x20,0x74,0x68,0x65,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x73,0x69,0x6e,0x63,0x65,0x20,0x77,0x65,0x20,0x68,0x61,0x76,0x65,0x20,0x69,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6c,0x6f,0x73,0x65,0x20,0x74,0x68,0x65,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x70,0x6f,0x6f,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x28,0x72,0x65,0x6c,0x61,0x79,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x50,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x27,0x20,0x2b,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x4e,0x61,0x6d,0x65,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x45,0x72,0x72,0x6f,0x72,0x20,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x41,0x62,0x6f,0x75,0x74,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x69,0x6c,0x6c,0x20,0x73,0x68,0x6f,0x77,0x20,0x74,0x68,0x65,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x73,0x69,0x6e,0x63,0x65,0x20,0x77,0x65,0x20,0x68,0x61,0x76,0x65,0x20,0x69,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x64,0x61,0x74,0x61,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x50,0x72,0x6f,0x66,0x69,0x6c,0x65,0x28,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x7c,0x7c,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x5f,0x6e,0x61,0x6d,0x65,0x20,0x7c,0x7c,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x4e,0x61,0x6d,0x65,0x20,0x7c,0x7c,0x20,0x27,0x41,0x6e,0x6f,0x6e,0x79,0x6d,0x6f,0x75,0x73,0x20,0x55,0x73,0x65,0x72,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x62,0x6f,0x75,0x74,0x20,0x3d,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x2e,0x61,0x62,0x6f,0x75,0x74,0x20,0x7c,0x7c,0x20,0x27,0x4e,0x6f,0x20,0x64,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x64,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x20,0x75,0x73,0x65,0x72,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x4e,0x61,0x6d,0x65,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x6e,0x61,0x6d,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x41,0x62,0x6f,0x75,0x74,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x62,0x6f,0x75,0x74,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0x50,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x6c,0x6f,0x61,0x64,0x65,0x64,0x20,0x66,0x6f,0x72,0x3a,0x20,0x24,0x7b,0x6e,0x61,0x6d,0x65,0x7d,0x20,0x77,0x69,0x74,0x68,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x24,0x7b,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x4c,0x6f,0x67,0x67,0x69,0x6e,0x67,0x20,0x6f,0x75,0x74,0x2e,0x2e,0x2e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6c,0x65,0x61,0x6e,0x20,0x75,0x70,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x46,0x72,0x6f,0x6d,0x52,0x65,0x6c,0x61,0x79,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6c,0x65,0x61,0x6e,0x20,0x75,0x70,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x70,0x6f,0x6f,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x43,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x70,0x6f,0x6f,0x6c,0x2e,0x2e,0x2e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x55,0x72,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x75,0x72,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x28,0x5b,0x75,0x72,0x6c,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x49,0x64,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x6e,0x6c,0x4c,0x69,0x74,0x65,0x2e,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x73,0x65,0x74,0x20,0x55,0x49,0x20,0x2d,0x20,0x6b,0x65,0x65,0x70,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x20,0x61,0x75,0x74,0x68,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6d,0x61,0x69,0x6e,0x49,0x6e,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4c,0x69,0x73,0x74,0x2e,0x61,0x64,0x64,0x28,0x27,0x68,0x69,0x64,0x64,0x65,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4c,0x69,0x73,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x27,0x68,0x69,0x64,0x64,0x65,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x43,0x6f,0x6e,0x66,0x69,0x67,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x66,0x61,0x6c,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x4c,0x6f,0x67,0x69,0x6e,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x42,0x75,0x74,0x74,0x6f,0x6e,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x4c,0x6f,0x67,0x67,0x65,0x64,0x20,0x6f,0x75,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x27,0x20,0x2b,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x43,0x6f,0x6e,0x66,0x69,0x67,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x6c,0x6f,0x61,0x64,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x6f,0x61,0x64,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4c,0x69,0x73,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x27,0x68,0x69,0x64,0x64,0x65,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4c,0x69,0x73,0x74,0x2e,0x61,0x64,0x64,0x28,0x27,0x68,0x69,0x64,0x64,0x65,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x20,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x49,0x44,0x20,0x28,0x61,0x76,0x6f,0x69,0x64,0x69,0x6e,0x67,0x20,0x63,0x6f,0x6c,0x6f,0x6e,0x73,0x20,0x77,0x68,0x69,0x63,0x68,0x20,0x61,0x72,0x65,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x65,0x64,0x20,0x62,0x79,0x20,0x72,0x65,0x6c,0x61,0x79,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x53,0x75,0x62,0x49,0x64,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x61,0x6c,0x70,0x68,0x61,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x2c,0x20,0x75,0x6e,0x64,0x65,0x72,0x73,0x63,0x6f,0x72,0x65,0x73,0x2c,0x20,0x61,0x6e,0x64,0x20,0x68,0x79,0x70,0x68,0x65,0x6e,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x61,0x72,0x73,0x20,0x3d,0x20,0x27,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x5f,0x2d,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x27,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x31,0x32,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x63,0x68,0x61,0x72,0x73,0x2e,0x63,0x68,0x61,0x72,0x41,0x74,0x28,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x4d,0x61,0x74,0x68,0x2e,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x28,0x29,0x20,0x2a,0x20,0x63,0x68,0x61,0x72,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x6e,0x6f,0x73,0x74,0x72,0x2d,0x74,0x6f,0x6f,0x6c,0x73,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x62,0x65,0x54,0x6f,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x53,0x54,0x41,0x52,0x54,0x49,0x4e,0x47,0x20,0x53,0x49,0x4d,0x50,0x4c,0x45,0x50,0x4f,0x4f,0x4c,0x20,0x43,0x4f,0x4e,0x46,0x49,0x47,0x55,0x52,0x41,0x54,0x49,0x4f,0x4e,0x20,0x53,0x55,0x42,0x53,0x43,0x52,0x49,0x50,0x54,0x49,0x4f,0x4e,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x57,0x41,0x52,0x4e,0x49,0x4e,0x47,0x3a,0x20,0x4e,0x6f,0x74,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x2c,0x20,0x62,0x75,0x74,0x20,0x70,0x72,0x6f,0x63,0x65,0x65,0x64,0x69,0x6e,0x67,0x20,0x77,0x69,0x74,0x68,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x74,0x65,0x73,0x74,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x55,0x72,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x75,0x72,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x65,0x6e,0x74,0x65,0x72,0x20,0x61,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x55,0x52,0x4c,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x76,0x69,0x61,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x3a,0x20,0x24,0x7b,0x75,0x72,0x6c,0x7d,0x60,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6c,0x65,0x61,0x6e,0x20,0x75,0x70,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x20,0x70,0x6f,0x6f,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x43,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x20,0x70,0x6f,0x6f,0x6c,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x28,0x5b,0x75,0x72,0x6c,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x49,0x64,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x6e,0x65,0x77,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x49,0x64,0x20,0x3d,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x53,0x75,0x62,0x49,0x64,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x64,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x49,0x44,0x3a,0x20,0x24,0x7b,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x49,0x64,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0x55,0x73,0x65,0x72,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x24,0x7b,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x7d,0x60,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x75,0x62,0x73,0x63,0x72,0x69,0x62,0x65,0x20,0x74,0x6f,0x20,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x37,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x20,0x28,0x61,0x64,0x6d,0x69,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x29,0x2c,0x20,0x6b,0x69,0x6e,0x64,0x20,0x34,0x20,0x28,0x4e,0x49,0x50,0x2d,0x30,0x34,0x20,0x44,0x4d,0x73,0x29,0x2c,0x20,0x61,0x6e,0x64,0x20,0x6b,0x69,0x6e,0x64,0x20,0x31,0x30,0x35,0x39,0x20,0x28,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x47,0x69,0x66,0x74,0x57,0x72,0x61,0x70,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x62,0x65,0x4d,0x61,0x6e,0x79,0x28,0x5b,0x75,0x72,0x6c,0x5d,0x2c,0x20,0x5b,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x69,0x6e,0x63,0x65,0x3a,0x20,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x2f,0x20,0x31,0x30,0x30,0x30,0x29,0x20,0x2d,0x20,0x35,0x2c,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x6f,0x6b,0x20,0x62,0x61,0x63,0x6b,0x20,0x35,0x20,0x73,0x65,0x63,0x6f,0x6e,0x64,0x73,0x20,0x74,0x6f,0x20,0x61,0x76,0x6f,0x69,0x64,0x20,0x72,0x61,0x63,0x65,0x20,0x63,0x6f,0x6e,0x64,0x69,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x73,0x3a,0x20,0x5b,0x32,0x33,0x34,0x35,0x37,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x68,0x6f,0x72,0x73,0x3a,0x20,0x5b,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x5d,0x2c,0x20,0x2f,0x2f,0x20,0x4f,0x6e,0x6c,0x79,0x20,0x6c,0x69,0x73,0x74,0x65,0x6e,0x20,0x74,0x6f,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x20,0x66,0x72,0x6f,0x6d,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x23,0x70,0x22,0x3a,0x20,0x5b,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x5d,0x2c,0x20,0x2f,0x2f,0x20,0x4f,0x6e,0x6c,0x79,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x65,0x64,0x20,0x74,0x6f,0x20,0x74,0x68,0x69,0x73,0x20,0x75,0x73,0x65,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6d,0x69,0x74,0x3a,0x20,0x35,0x30,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x69,0x6e,0x63,0x65,0x3a,0x20,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x2f,0x20,0x31,0x30,0x30,0x30,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x73,0x3a,0x20,0x5b,0x34,0x5d,0x2c,0x20,0x2f,0x2f,0x20,0x4e,0x49,0x50,0x2d,0x30,0x34,0x20,0x44,0x69,0x72,0x65,0x63,0x74,0x20,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x68,0x6f,0x72,0x73,0x3a,0x20,0x5b,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x5d,0x2c,0x20,0x2f,0x2f,0x20,0x4f,0x6e,0x6c,0x79,0x20,0x6c,0x69,0x73,0x74,0x65,0x6e,0x20,0x74,0x6f,0x20,0x44,0x4d,0x73,0x20,0x66,0x72,0x6f,0x6d,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x23,0x70,0x22,0x3a,0x20,0x5b,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x5d,0x2c,0x20,0x2f,0x2f,0x20,0x4f,0x6e,0x6c,0x79,0x20,0x44,0x4d,0x73,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x65,0x64,0x20,0x74,0x6f,0x20,0x74,0x68,0x69,0x73,0x20,0x75,0x73,0x65,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6d,0x69,0x74,0x3a,0x20,0x35,0x30,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x73,0x3a,0x20,0x5b,0x31,0x30,0x35,0x39,0x5d,0x2c,0x20,0x2f,0x2f,0x20,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x47,0x69,0x66,0x74,0x57,0x72,0x61,0x70,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x23,0x70,0x22,0x3a,0x20,0x5b,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x5d,0x2c,0x20,0x2f,0x2f,0x20,0x4f,0x6e,0x6c,0x79,0x20,0x47,0x69,0x66,0x74,0x57,0x72,0x61,0x70,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x20,0x61,0x64,0x64,0x72,0x65,0x73,0x73,0x65,0x64,0x20,0x74,0x6f,0x20,0x74,0x68,0x69,0x73,0x20,0x75,0x73,0x65,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6d,0x69,0x74,0x3a,0x20,0x35,0x30,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x5d,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x6f,0x6e,0x65,0x76,0x65,0x6e,0x74,0x28,0x65,0x76,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x45,0x56,0x45,0x4e,0x54,0x20,0x52,0x45,0x43,0x45,0x49,0x56,0x45,0x44,0x20,0x56,0x49,0x41,0x20,0x53,0x49,0x4d,0x50,0x4c,0x45,0x50,0x4f,0x4f,0x4c,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x45,0x76,0x65,0x6e,0x74,0x20,0x64,0x61,0x74,0x61,0x3a,0x27,0x2c,0x20,0x65,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x45,0x76,0x65,0x6e,0x74,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x27,0x2c,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x6b,0x69,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x45,0x76,0x65,0x6e,0x74,0x20,0x74,0x61,0x67,0x73,0x3a,0x27,0x2c,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x74,0x61,0x67,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x45,0x76,0x65,0x6e,0x74,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x27,0x2c,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x45,0x4e,0x44,0x20,0x45,0x56,0x45,0x4e,0x54,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x4e,0x49,0x50,0x2d,0x30,0x34,0x20,0x44,0x4d,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x76,0x65,0x6e,0x74,0x2e,0x6b,0x69,0x6e,0x64,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x4e,0x49,0x50,0x2d,0x30,0x34,0x20,0x44,0x4d,0x20,0x52,0x45,0x43,0x45,0x49,0x56,0x45,0x44,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x65,0x63,0x72,0x79,0x70,0x74,0x20,0x74,0x68,0x65,0x20,0x44,0x4d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x6e,0x69,0x70,0x30,0x34,0x2e,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x28,0x65,0x76,0x65,0x6e,0x74,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x2c,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x52,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x20,0x4e,0x49,0x50,0x2d,0x30,0x34,0x20,0x44,0x4d,0x20,0x66,0x72,0x6f,0x6d,0x20,0x72,0x65,0x6c,0x61,0x79,0x3a,0x20,0x24,0x7b,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x30,0x2c,0x20,0x35,0x30,0x29,0x7d,0x2e,0x2e,0x2e,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x64,0x64,0x20,0x74,0x6f,0x20,0x69,0x6e,0x62,0x6f,0x78,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x44,0x61,0x74,0x65,0x28,0x65,0x76,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x20,0x2a,0x20,0x31,0x30,0x30,0x30,0x29,0x2e,0x74,0x6f,0x4c,0x6f,0x63,0x61,0x6c,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x64,0x64,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x54,0x6f,0x49,0x6e,0x62,0x6f,0x78,0x28,0x27,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x27,0x2c,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x20,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x2c,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x66,0x6f,0x72,0x20,0x74,0x65,0x73,0x74,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x60,0x4e,0x49,0x50,0x2d,0x30,0x34,0x20,0x44,0x4d,0x3a,0x20,0x24,0x7b,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7d,0x60,0x2c,0x20,0x27,0x44,0x4d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x45,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x20,0x4e,0x49,0x50,0x2d,0x30,0x34,0x20,0x44,0x4d,0x3a,0x20,0x24,0x7b,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x45,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x20,0x44,0x4d,0x3a,0x20,0x24,0x7b,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x45,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x44,0x4d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x47,0x69,0x66,0x74,0x57,0x72,0x61,0x70,0x20,0x44,0x4d,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x76,0x65,0x6e,0x74,0x2e,0x6b,0x69,0x6e,0x64,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x30,0x35,0x39,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x47,0x49,0x46,0x54,0x57,0x52,0x41,0x50,0x20,0x52,0x45,0x43,0x45,0x49,0x56,0x45,0x44,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x65,0x70,0x20,0x31,0x3a,0x20,0x55,0x6e,0x77,0x72,0x61,0x70,0x20,0x67,0x69,0x66,0x74,0x20,0x77,0x72,0x61,0x70,0x20,0x74,0x6f,0x20,0x67,0x65,0x74,0x20,0x73,0x65,0x61,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x65,0x61,0x6c,0x4a,0x73,0x6f,0x6e,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x6e,0x69,0x70,0x34,0x34,0x2e,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x28,0x65,0x76,0x65,0x6e,0x74,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x2c,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x65,0x61,0x6c,0x20,0x3d,0x20,0x73,0x61,0x66,0x65,0x4a,0x73,0x6f,0x6e,0x50,0x61,0x72,0x73,0x65,0x28,0x73,0x65,0x61,0x6c,0x4a,0x73,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x65,0x61,0x6c,0x20,0x7c,0x7c,0x20,0x73,0x65,0x61,0x6c,0x2e,0x6b,0x69,0x6e,0x64,0x20,0x21,0x3d,0x3d,0x20,0x31,0x33,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x55,0x6e,0x77,0x72,0x61,0x70,0x70,0x65,0x64,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x61,0x20,0x76,0x61,0x6c,0x69,0x64,0x20,0x73,0x65,0x61,0x6c,0x20,0x28,0x6b,0x69,0x6e,0x64,0x20,0x31,0x33,0x29,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x65,0x70,0x20,0x32,0x3a,0x20,0x55,0x6e,0x73,0x65,0x61,0x6c,0x20,0x74,0x6f,0x20,0x67,0x65,0x74,0x20,0x72,0x75,0x6d,0x6f,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x75,0x6d,0x6f,0x72,0x4a,0x73,0x6f,0x6e,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x6e,0x69,0x70,0x34,0x34,0x2e,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x28,0x73,0x65,0x61,0x6c,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x2c,0x20,0x73,0x65,0x61,0x6c,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x75,0x6d,0x6f,0x72,0x20,0x3d,0x20,0x73,0x61,0x66,0x65,0x4a,0x73,0x6f,0x6e,0x50,0x61,0x72,0x73,0x65,0x28,0x72,0x75,0x6d,0x6f,0x72,0x4a,0x73,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x75,0x6d,0x6f,0x72,0x20,0x7c,0x7c,0x20,0x72,0x75,0x6d,0x6f,0x72,0x2e,0x6b,0x69,0x6e,0x64,0x20,0x21,0x3d,0x3d,0x20,0x31,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x55,0x6e,0x73,0x65,0x61,0x6c,0x65,0x64,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x61,0x20,0x76,0x61,0x6c,0x69,0x64,0x20,0x72,0x75,0x6d,0x6f,0x72,0x20,0x28,0x6b,0x69,0x6e,0x64,0x20,0x31,0x34,0x29,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x52,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x20,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x44,0x4d,0x20,0x66,0x72,0x6f,0x6d,0x20,0x72,0x65,0x6c,0x61,0x79,0x3a,0x20,0x24,0x7b,0x72,0x75,0x6d,0x6f,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x30,0x2c,0x20,0x35,0x30,0x29,0x7d,0x2e,0x2e,0x2e,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x64,0x64,0x20,0x74,0x6f,0x20,0x69,0x6e,0x62,0x6f,0x78,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x44,0x61,0x74,0x65,0x28,0x65,0x76,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x20,0x2a,0x20,0x31,0x30,0x30,0x30,0x29,0x2e,0x74,0x6f,0x4c,0x6f,0x63,0x61,0x6c,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x64,0x64,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x54,0x6f,0x49,0x6e,0x62,0x6f,0x78,0x28,0x27,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x27,0x2c,0x20,0x72,0x75,0x6d,0x6f,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x20,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x2c,0x20,0x72,0x75,0x6d,0x6f,0x72,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x66,0x6f,0x72,0x20,0x74,0x65,0x73,0x74,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x60,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x44,0x4d,0x3a,0x20,0x24,0x7b,0x72,0x75,0x6d,0x6f,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7d,0x60,0x2c,0x20,0x27,0x44,0x4d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x75,0x6e,0x77,0x72,0x61,0x70,0x45,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x75,0x6e,0x77,0x72,0x61,0x70,0x20,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x44,0x4d,0x3a,0x20,0x24,0x7b,0x75,0x6e,0x77,0x72,0x61,0x70,0x45,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x75,0x6e,0x77,0x72,0x61,0x70,0x20,0x44,0x4d,0x3a,0x20,0x24,0x7b,0x75,0x6e,0x77,0x72,0x61,0x70,0x45,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x44,0x4d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x20,0x28,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x37,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x76,0x65,0x6e,0x74,0x2e,0x6b,0x69,0x6e,0x64,0x20,0x3d,0x3d,0x3d,0x20,0x32,0x33,0x34,0x35,0x37,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x61,0x6c,0x6c,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x20,0x66,0x6f,0x72,0x20,0x74,0x65,0x73,0x74,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x60,0x41,0x64,0x6d,0x69,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x3a,0x20,0x24,0x7b,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x65,0x76,0x65,0x6e,0x74,0x29,0x7d,0x60,0x2c,0x20,0x27,0x45,0x56,0x45,0x4e,0x54,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x41,0x64,0x6d,0x69,0x6e,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x65,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6e,0x65,0x6f,0x73,0x65,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x45,0x4f,0x53,0x45,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x20,0x2d,0x20,0x45,0x6e,0x64,0x20,0x6f,0x66,0x20,0x73,0x74,0x6f,0x72,0x65,0x64,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x45,0x4f,0x53,0x45,0x3a,0x27,0x2c,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6e,0x66,0x69,0x67,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6e,0x66,0x69,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x4e,0x6f,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x20,0x77,0x65,0x72,0x65,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x28,0x72,0x65,0x61,0x73,0x6f,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x53,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6c,0x6f,0x73,0x65,0x64,0x3a,0x27,0x2c,0x20,0x72,0x65,0x61,0x73,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x43,0x6f,0x6e,0x66,0x69,0x67,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x66,0x61,0x6c,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x6f,0x72,0x65,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6f,0x72,0x20,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x53,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x65,0x73,0x74,0x61,0x62,0x6c,0x69,0x73,0x68,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x27,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x27,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x72,0x72,0x6f,0x72,0x20,0x73,0x74,0x61,0x63,0x6b,0x3a,0x27,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x73,0x74,0x61,0x63,0x6b,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x20,0x28,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x37,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x41,0x64,0x6d,0x69,0x6e,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x65,0x76,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x50,0x52,0x4f,0x43,0x45,0x53,0x53,0x49,0x4e,0x47,0x20,0x41,0x44,0x4d,0x49,0x4e,0x20,0x52,0x45,0x53,0x50,0x4f,0x4e,0x53,0x45,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x3a,0x27,0x2c,0x20,0x65,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x56,0x65,0x72,0x69,0x66,0x79,0x20,0x74,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x61,0x20,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x37,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x76,0x65,0x6e,0x74,0x2e,0x6b,0x69,0x6e,0x64,0x20,0x21,0x3d,0x3d,0x20,0x32,0x33,0x34,0x35,0x37,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x49,0x67,0x6e,0x6f,0x72,0x69,0x6e,0x67,0x20,0x6e,0x6f,0x6e,0x2d,0x61,0x64,0x6d,0x69,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x2c,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x27,0x2c,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x6b,0x69,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x56,0x65,0x72,0x69,0x66,0x79,0x20,0x74,0x68,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x69,0x73,0x20,0x66,0x72,0x6f,0x6d,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x76,0x65,0x6e,0x74,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x21,0x3d,0x3d,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x49,0x67,0x6e,0x6f,0x72,0x69,0x6e,0x67,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x66,0x72,0x6f,0x6d,0x20,0x75,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x27,0x2c,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x65,0x63,0x72,0x79,0x70,0x74,0x20,0x74,0x68,0x65,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x46,0x72,0x6f,0x6d,0x52,0x65,0x6c,0x61,0x79,0x28,0x65,0x76,0x65,0x6e,0x74,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x44,0x65,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x3a,0x27,0x2c,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x61,0x72,0x73,0x65,0x20,0x74,0x68,0x65,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x20,0x4a,0x53,0x4f,0x4e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x20,0x3d,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x50,0x61,0x72,0x73,0x65,0x64,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x64,0x61,0x74,0x61,0x3a,0x27,0x2c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x66,0x6f,0x72,0x20,0x74,0x65,0x73,0x74,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x60,0x44,0x65,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x3a,0x20,0x24,0x7b,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x7d,0x60,0x2c,0x20,0x27,0x52,0x45,0x53,0x50,0x4f,0x4e,0x53,0x45,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x64,0x69,0x66,0x66,0x65,0x72,0x65,0x6e,0x74,0x20,0x74,0x79,0x70,0x65,0x73,0x20,0x6f,0x66,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x41,0x64,0x6d,0x69,0x6e,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x72,0x72,0x6f,0x72,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x69,0x6e,0x67,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x3a,0x27,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x64,0x69,0x66,0x66,0x65,0x72,0x65,0x6e,0x74,0x20,0x74,0x79,0x70,0x65,0x73,0x20,0x6f,0x66,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x64,0x61,0x74,0x61,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x41,0x64,0x6d,0x69,0x6e,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x48,0x41,0x4e,0x44,0x4c,0x49,0x4e,0x47,0x20,0x41,0x44,0x4d,0x49,0x4e,0x20,0x52,0x45,0x53,0x50,0x4f,0x4e,0x53,0x45,0x20,0x44,0x41,0x54,0x41,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x64,0x61,0x74,0x61,0x3a,0x27,0x2c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x71,0x75,0x65,0x72,0x79,0x5f,0x74,0x79,0x70,0x65,0x3a,0x27,0x2c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x71,0x75,0x65,0x72,0x79,0x5f,0x74,0x79,0x70,0x65,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x20,0x2d,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x20,0x74,0x6f,0x20,0x6d,0x61,0x74,0x63,0x68,0x20,0x62,0x61,0x63,0x6b,0x65,0x6e,0x64,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x74,0x79,0x70,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x71,0x75,0x65,0x72,0x79,0x5f,0x74,0x79,0x70,0x65,0x20,0x26,0x26,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x71,0x75,0x65,0x72,0x79,0x5f,0x74,0x79,0x70,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x27,0x61,0x75,0x74,0x68,0x5f,0x72,0x75,0x6c,0x65,0x73,0x27,0x29,0x20,0x7c,0x7c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x71,0x75,0x65,0x72,0x79,0x5f,0x74,0x79,0x70,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x27,0x61,0x75,0x74,0x68,0x27,0x29,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x52,0x6f,0x75,0x74,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x61,0x75,0x74,0x68,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x41,0x75,0x74,0x68,0x51,0x75,0x65,0x72,0x79,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x20,0x73,0x70,0x65,0x63,0x69,0x66,0x69,0x63,0x61,0x6c,0x6c,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x71,0x75,0x65,0x72,0x79,0x5f,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5f,0x75,0x70,0x64,0x61,0x74,0x65,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x52,0x6f,0x75,0x74,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x43,0x6f,0x6e,0x66,0x69,0x67,0x55,0x70,0x64,0x61,0x74,0x65,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x20,0x2d,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x20,0x74,0x6f,0x20,0x6d,0x61,0x74,0x63,0x68,0x20,0x62,0x61,0x63,0x6b,0x65,0x6e,0x64,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x74,0x79,0x70,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x71,0x75,0x65,0x72,0x79,0x5f,0x74,0x79,0x70,0x65,0x20,0x26,0x26,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x71,0x75,0x65,0x72,0x79,0x5f,0x74,0x79,0x70,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x27,0x63,0x6f,0x6e,0x66,0x69,0x67,0x27,0x29,0x20,0x7c,0x7c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x71,0x75,0x65,0x72,0x79,0x5f,0x74,0x79,0x70,0x65,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x27,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5f,0x27,0x29,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x52,0x6f,0x75,0x74,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x43,0x6f,0x6e,0x66,0x69,0x67,0x51,0x75,0x65,0x72,0x79,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x73,0x79,0x73,0x74,0x65,0x6d,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x52,0x6f,0x75,0x74,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x73,0x79,0x73,0x74,0x65,0x6d,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x53,0x79,0x73,0x74,0x65,0x6d,0x43,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x6f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x7c,0x7c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x72,0x75,0x6c,0x65,0x73,0x5f,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x65,0x64,0x20,0x21,0x3d,0x3d,0x20,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x52,0x6f,0x75,0x74,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x73,0x74,0x61,0x74,0x73,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x71,0x75,0x65,0x72,0x79,0x5f,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x73,0x74,0x61,0x74,0x73,0x5f,0x71,0x75,0x65,0x72,0x79,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x52,0x6f,0x75,0x74,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x73,0x74,0x61,0x74,0x73,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x53,0x74,0x61,0x74,0x73,0x51,0x75,0x65,0x72,0x79,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x47,0x65,0x6e,0x65,0x72,0x69,0x63,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x68,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x55,0x73,0x69,0x6e,0x67,0x20,0x67,0x65,0x6e,0x65,0x72,0x69,0x63,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x60,0x47,0x65,0x6e,0x65,0x72,0x69,0x63,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x3a,0x20,0x24,0x7b,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x7d,0x60,0x2c,0x20,0x27,0x52,0x45,0x53,0x50,0x4f,0x4e,0x53,0x45,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x72,0x72,0x6f,0x72,0x20,0x68,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x64,0x61,0x74,0x61,0x3a,0x27,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x64,0x61,0x74,0x61,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x43,0x6f,0x6e,0x66,0x69,0x67,0x51,0x75,0x65,0x72,0x79,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x43,0x4f,0x4e,0x46,0x49,0x47,0x20,0x51,0x55,0x45,0x52,0x59,0x20,0x52,0x45,0x53,0x50,0x4f,0x4e,0x53,0x45,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x51,0x75,0x65,0x72,0x79,0x20,0x74,0x79,0x70,0x65,0x3a,0x27,0x2c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x71,0x75,0x65,0x72,0x79,0x5f,0x74,0x79,0x70,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x54,0x6f,0x74,0x61,0x6c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x3a,0x27,0x2c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x74,0x6f,0x74,0x61,0x6c,0x5f,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x44,0x61,0x74,0x61,0x3a,0x27,0x2c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6f,0x6e,0x76,0x65,0x72,0x74,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x64,0x61,0x74,0x61,0x20,0x74,0x6f,0x20,0x74,0x68,0x65,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x62,0x79,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x20,0x26,0x26,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x43,0x6f,0x6e,0x76,0x65,0x72,0x74,0x69,0x6e,0x67,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x74,0x6f,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x2e,0x2e,0x2e,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x61,0x20,0x73,0x79,0x6e,0x74,0x68,0x65,0x74,0x69,0x63,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x73,0x74,0x72,0x75,0x63,0x74,0x75,0x72,0x65,0x20,0x66,0x6f,0x72,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x79,0x6e,0x74,0x68,0x65,0x74,0x69,0x63,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x64,0x3a,0x20,0x27,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5f,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x5f,0x27,0x20,0x2b,0x20,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x3a,0x20,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x2f,0x20,0x31,0x30,0x30,0x30,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x20,0x27,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5f,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x27,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x66,0x72,0x6f,0x6d,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x41,0x50,0x49,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x73,0x3a,0x20,0x5b,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6f,0x6e,0x76,0x65,0x72,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x64,0x61,0x74,0x61,0x20,0x74,0x6f,0x20,0x74,0x61,0x67,0x73,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x6b,0x65,0x79,0x20,0x7c,0x7c,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5f,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x7c,0x7c,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5f,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x26,0x26,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x21,0x3d,0x3d,0x20,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x79,0x6e,0x74,0x68,0x65,0x74,0x69,0x63,0x45,0x76,0x65,0x6e,0x74,0x2e,0x74,0x61,0x67,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x5b,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x53,0x79,0x6e,0x74,0x68,0x65,0x74,0x69,0x63,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x3a,0x27,0x2c,0x20,0x73,0x79,0x6e,0x74,0x68,0x65,0x74,0x69,0x63,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x43,0x61,0x6c,0x6c,0x69,0x6e,0x67,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x77,0x69,0x74,0x68,0x20,0x73,0x79,0x6e,0x74,0x68,0x65,0x74,0x69,0x63,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x2e,0x2e,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x74,0x68,0x65,0x20,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x28,0x73,0x79,0x6e,0x74,0x68,0x65,0x74,0x69,0x63,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x6f,0x61,0x64,0x65,0x64,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x74,0x6f,0x74,0x61,0x6c,0x5f,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x7d,0x20,0x70,0x61,0x72,0x61,0x6d,0x65,0x74,0x65,0x72,0x73,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x4e,0x6f,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x64,0x61,0x74,0x61,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x43,0x6f,0x6e,0x66,0x69,0x67,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x66,0x61,0x6c,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x6c,0x73,0x6f,0x20,0x6c,0x6f,0x67,0x20,0x74,0x6f,0x20,0x74,0x65,0x73,0x74,0x20,0x69,0x6e,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x20,0x66,0x6f,0x72,0x20,0x64,0x65,0x62,0x75,0x67,0x67,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x60,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x71,0x75,0x65,0x72,0x79,0x5f,0x74,0x79,0x70,0x65,0x7d,0x2c,0x20,0x24,0x7b,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x74,0x6f,0x74,0x61,0x6c,0x5f,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x7d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x60,0x2c,0x20,0x27,0x43,0x4f,0x4e,0x46,0x49,0x47,0x5f,0x51,0x55,0x45,0x52,0x59,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x20,0x26,0x26,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x27,0x3d,0x3d,0x3d,0x20,0x43,0x4f,0x4e,0x46,0x49,0x47,0x55,0x52,0x41,0x54,0x49,0x4f,0x4e,0x20,0x56,0x41,0x4c,0x55,0x45,0x53,0x20,0x3d,0x3d,0x3d,0x27,0x2c,0x20,0x27,0x43,0x4f,0x4e,0x46,0x49,0x47,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x6b,0x65,0x79,0x20,0x7c,0x7c,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5f,0x6b,0x65,0x79,0x20,0x7c,0x7c,0x20,0x60,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5f,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x7c,0x7c,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x7c,0x7c,0x20,0x27,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0x20,0x7c,0x7c,0x20,0x27,0x67,0x65,0x6e,0x65,0x72,0x61,0x6c,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x61,0x74,0x61,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x64,0x61,0x74,0x61,0x5f,0x74,0x79,0x70,0x65,0x20,0x7c,0x7c,0x20,0x27,0x73,0x74,0x72,0x69,0x6e,0x67,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x60,0x24,0x7b,0x6b,0x65,0x79,0x7d,0x3a,0x20,0x24,0x7b,0x76,0x61,0x6c,0x75,0x65,0x7d,0x20,0x28,0x24,0x7b,0x64,0x61,0x74,0x61,0x54,0x79,0x70,0x65,0x7d,0x2c,0x20,0x24,0x7b,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0x7d,0x29,0x60,0x2c,0x20,0x27,0x43,0x4f,0x4e,0x46,0x49,0x47,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x27,0x3d,0x3d,0x3d,0x20,0x45,0x4e,0x44,0x20,0x43,0x4f,0x4e,0x46,0x49,0x47,0x55,0x52,0x41,0x54,0x49,0x4f,0x4e,0x20,0x56,0x41,0x4c,0x55,0x45,0x53,0x20,0x3d,0x3d,0x3d,0x27,0x2c,0x20,0x27,0x43,0x4f,0x4e,0x46,0x49,0x47,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x27,0x4e,0x6f,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x76,0x61,0x6c,0x75,0x65,0x73,0x20,0x66,0x6f,0x75,0x6e,0x64,0x27,0x2c,0x20,0x27,0x43,0x4f,0x4e,0x46,0x49,0x47,0x5f,0x51,0x55,0x45,0x52,0x59,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x43,0x6f,0x6e,0x66,0x69,0x67,0x55,0x70,0x64,0x61,0x74,0x65,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x43,0x4f,0x4e,0x46,0x49,0x47,0x20,0x55,0x50,0x44,0x41,0x54,0x45,0x20,0x52,0x45,0x53,0x50,0x4f,0x4e,0x53,0x45,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x51,0x75,0x65,0x72,0x79,0x20,0x74,0x79,0x70,0x65,0x3a,0x27,0x2c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x71,0x75,0x65,0x72,0x79,0x5f,0x74,0x79,0x70,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x53,0x74,0x61,0x74,0x75,0x73,0x3a,0x27,0x2c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x44,0x61,0x74,0x61,0x3a,0x27,0x2c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x73,0x41,0x70,0x70,0x6c,0x69,0x65,0x64,0x20,0x3d,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x75,0x70,0x64,0x61,0x74,0x65,0x73,0x5f,0x61,0x70,0x70,0x6c,0x69,0x65,0x64,0x20,0x7c,0x7c,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x3a,0x20,0x24,0x7b,0x75,0x70,0x64,0x61,0x74,0x65,0x73,0x41,0x70,0x70,0x6c,0x69,0x65,0x64,0x7d,0x20,0x70,0x61,0x72,0x61,0x6d,0x65,0x74,0x65,0x72,0x73,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x64,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x68,0x6f,0x77,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x77,0x69,0x74,0x68,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x20,0x26,0x26,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0xe2,0x9c,0x93,0x20,0x24,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x6b,0x65,0x79,0x7d,0x3a,0x20,0x24,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x76,0x61,0x6c,0x75,0x65,0x7d,0x20,0x28,0x24,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x64,0x61,0x74,0x61,0x5f,0x74,0x79,0x70,0x65,0x7d,0x29,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0xe2,0x9c,0x97,0x20,0x24,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x6b,0x65,0x79,0x7d,0x3a,0x20,0x24,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x65,0x72,0x72,0x6f,0x72,0x20,0x7c,0x7c,0x20,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x27,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x20,0x2d,0x20,0x75,0x73,0x65,0x72,0x20,0x63,0x61,0x6e,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x6c,0x79,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x46,0x65,0x74,0x63,0x68,0x20,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x62,0x75,0x74,0x74,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x2e,0x20,0x43,0x6c,0x69,0x63,0x6b,0x20,0x22,0x46,0x65,0x74,0x63,0x68,0x20,0x43,0x6f,0x6e,0x66,0x69,0x67,0x22,0x20,0x74,0x6f,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x20,0x74,0x68,0x65,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x3d,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x65,0x72,0x72,0x6f,0x72,0x20,0x7c,0x7c,0x20,0x27,0x55,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x20,0x65,0x72,0x72,0x6f,0x72,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x68,0x6f,0x77,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x69,0x6e,0x66,0x6f,0x72,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x20,0x69,0x66,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x20,0x26,0x26,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x65,0x72,0x72,0x6f,0x72,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0xe2,0x9c,0x97,0x20,0x24,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x6b,0x65,0x79,0x7d,0x3a,0x20,0x24,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x65,0x72,0x72,0x6f,0x72,0x20,0x7c,0x7c,0x20,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x27,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x74,0x6f,0x20,0x74,0x65,0x73,0x74,0x20,0x69,0x6e,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x20,0x66,0x6f,0x72,0x20,0x64,0x65,0x62,0x75,0x67,0x67,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x60,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x7d,0x60,0x2c,0x20,0x27,0x43,0x4f,0x4e,0x46,0x49,0x47,0x5f,0x55,0x50,0x44,0x41,0x54,0x45,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x20,0x26,0x26,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x27,0x20,0x3f,0x20,0x27,0xe2,0x9c,0x93,0x27,0x20,0x3a,0x20,0x27,0xe2,0x9c,0x97,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x27,0x20,0x3f,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x24,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x6b,0x65,0x79,0x7d,0x20,0x3d,0x20,0x24,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x76,0x61,0x6c,0x75,0x65,0x7d,0x60,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x24,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x6b,0x65,0x79,0x7d,0x3a,0x20,0x24,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x65,0x72,0x72,0x6f,0x72,0x20,0x7c,0x7c,0x20,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x27,0x7d,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x60,0x24,0x7b,0x73,0x74,0x61,0x74,0x75,0x73,0x7d,0x20,0x24,0x7b,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x43,0x4f,0x4e,0x46,0x49,0x47,0x5f,0x55,0x50,0x44,0x41,0x54,0x45,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x27,0x4e,0x6f,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x27,0x2c,0x20,0x27,0x43,0x4f,0x4e,0x46,0x49,0x47,0x5f,0x55,0x50,0x44,0x41,0x54,0x45,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x41,0x75,0x74,0x68,0x51,0x75,0x65,0x72,0x79,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x41,0x55,0x54,0x48,0x20,0x51,0x55,0x45,0x52,0x59,0x20,0x52,0x45,0x53,0x50,0x4f,0x4e,0x53,0x45,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x51,0x75,0x65,0x72,0x79,0x20,0x74,0x79,0x70,0x65,0x3a,0x27,0x2c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x71,0x75,0x65,0x72,0x79,0x5f,0x74,0x79,0x70,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x54,0x6f,0x74,0x61,0x6c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x3a,0x27,0x2c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x74,0x6f,0x74,0x61,0x6c,0x5f,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x44,0x61,0x74,0x61,0x3a,0x27,0x2c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x74,0x68,0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x64,0x61,0x74,0x61,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x20,0x26,0x26,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x55,0x70,0x64,0x61,0x74,0x65,0x64,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x20,0x77,0x69,0x74,0x68,0x27,0x2c,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x20,0x27,0x72,0x75,0x6c,0x65,0x73,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x6c,0x77,0x61,0x79,0x73,0x20,0x73,0x68,0x6f,0x77,0x20,0x74,0x68,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x77,0x68,0x65,0x6e,0x20,0x77,0x65,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x20,0x64,0x61,0x74,0x61,0x20,0x28,0x6e,0x6f,0x20,0x56,0x49,0x45,0x57,0x20,0x52,0x55,0x4c,0x45,0x53,0x20,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x61,0x6e,0x79,0x6d,0x6f,0x72,0x65,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x41,0x75,0x74,0x6f,0x2d,0x73,0x68,0x6f,0x77,0x69,0x6e,0x67,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x73,0x69,0x6e,0x63,0x65,0x20,0x77,0x65,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x20,0x64,0x61,0x74,0x61,0x2e,0x2e,0x2e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x68,0x6f,0x77,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x6c,0x6f,0x61,0x64,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x4c,0x6f,0x61,0x64,0x65,0x64,0x20,0x24,0x7b,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x74,0x6f,0x74,0x61,0x6c,0x5f,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x7d,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x66,0x72,0x6f,0x6d,0x20,0x72,0x65,0x6c,0x61,0x79,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x4e,0x6f,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x64,0x61,0x74,0x61,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x2c,0x20,0x63,0x6c,0x65,0x61,0x72,0x65,0x64,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x68,0x6f,0x77,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x28,0x6e,0x6f,0x20,0x56,0x49,0x45,0x57,0x20,0x52,0x55,0x4c,0x45,0x53,0x20,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x61,0x6e,0x79,0x6d,0x6f,0x72,0x65,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x41,0x75,0x74,0x6f,0x2d,0x73,0x68,0x6f,0x77,0x69,0x6e,0x67,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x77,0x69,0x74,0x68,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x64,0x61,0x74,0x61,0x2e,0x2e,0x2e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x68,0x6f,0x77,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x6c,0x6f,0x61,0x64,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x4e,0x6f,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x6f,0x6e,0x20,0x72,0x65,0x6c,0x61,0x79,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x60,0x41,0x75,0x74,0x68,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x71,0x75,0x65,0x72,0x79,0x5f,0x74,0x79,0x70,0x65,0x7d,0x2c,0x20,0x24,0x7b,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x74,0x6f,0x74,0x61,0x6c,0x5f,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x7d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x60,0x2c,0x20,0x27,0x41,0x55,0x54,0x48,0x5f,0x51,0x55,0x45,0x52,0x59,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x20,0x26,0x26,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x72,0x75,0x6c,0x65,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x60,0x52,0x75,0x6c,0x65,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x7d,0x20,0x2d,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x7c,0x7c,0x20,0x72,0x75,0x6c,0x65,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x61,0x72,0x67,0x65,0x74,0x7d,0x60,0x2c,0x20,0x27,0x41,0x55,0x54,0x48,0x5f,0x52,0x55,0x4c,0x45,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x27,0x4e,0x6f,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x66,0x6f,0x75,0x6e,0x64,0x27,0x2c,0x20,0x27,0x41,0x55,0x54,0x48,0x5f,0x51,0x55,0x45,0x52,0x59,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x73,0x79,0x73,0x74,0x65,0x6d,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x53,0x79,0x73,0x74,0x65,0x6d,0x43,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x53,0x59,0x53,0x54,0x45,0x4d,0x20,0x43,0x4f,0x4d,0x4d,0x41,0x4e,0x44,0x20,0x52,0x45,0x53,0x50,0x4f,0x4e,0x53,0x45,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x43,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x3a,0x27,0x2c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x53,0x74,0x61,0x74,0x75,0x73,0x3a,0x27,0x2c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x64,0x65,0x6c,0x65,0x74,0x65,0x5f,0x61,0x75,0x74,0x68,0x5f,0x72,0x75,0x6c,0x65,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x41,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x66,0x72,0x65,0x73,0x68,0x20,0x74,0x68,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x61,0x64,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x27,0x55,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x20,0x65,0x72,0x72,0x6f,0x72,0x27,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x63,0x6c,0x65,0x61,0x72,0x20,0x61,0x6c,0x6c,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x63,0x6c,0x65,0x61,0x72,0x5f,0x61,0x6c,0x6c,0x5f,0x61,0x75,0x74,0x68,0x5f,0x72,0x75,0x6c,0x65,0x73,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x75,0x6c,0x65,0x73,0x43,0x6c,0x65,0x61,0x72,0x65,0x64,0x20,0x3d,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x72,0x75,0x6c,0x65,0x73,0x5f,0x63,0x6c,0x65,0x61,0x72,0x65,0x64,0x20,0x7c,0x7c,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x53,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x20,0x63,0x6c,0x65,0x61,0x72,0x65,0x64,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x73,0x43,0x6c,0x65,0x61,0x72,0x65,0x64,0x7d,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6c,0x65,0x61,0x72,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x61,0x6e,0x64,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x6c,0x65,0x61,0x72,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x27,0x55,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x20,0x65,0x72,0x72,0x6f,0x72,0x27,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x60,0x53,0x79,0x73,0x74,0x65,0x6d,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x7d,0x20,0x2d,0x20,0x24,0x7b,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x7d,0x60,0x2c,0x20,0x27,0x53,0x59,0x53,0x54,0x45,0x4d,0x5f,0x43,0x4d,0x44,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x41,0x55,0x54,0x48,0x20,0x52,0x55,0x4c,0x45,0x20,0x4d,0x4f,0x44,0x49,0x46,0x49,0x43,0x41,0x54,0x49,0x4f,0x4e,0x20,0x52,0x45,0x53,0x50,0x4f,0x4e,0x53,0x45,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x4f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x27,0x2c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x6f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x53,0x74,0x61,0x74,0x75,0x73,0x3a,0x27,0x2c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x61,0x64,0x64,0x69,0x74,0x69,0x6f,0x6e,0x2f,0x6d,0x6f,0x64,0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x75,0x6c,0x65,0x73,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x65,0x64,0x20,0x3d,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x72,0x75,0x6c,0x65,0x73,0x5f,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x65,0x64,0x20,0x7c,0x7c,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x53,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x65,0x64,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x73,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x65,0x64,0x7d,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x73,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x66,0x72,0x65,0x73,0x68,0x20,0x74,0x68,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x74,0x6f,0x20,0x73,0x68,0x6f,0x77,0x20,0x74,0x68,0x65,0x20,0x6e,0x65,0x77,0x20,0x72,0x75,0x6c,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x26,0x26,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x21,0x3d,0x3d,0x20,0x27,0x6e,0x6f,0x6e,0x65,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x61,0x64,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x27,0x55,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x20,0x65,0x72,0x72,0x6f,0x72,0x27,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x60,0x41,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x6f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x7d,0x20,0x2d,0x20,0x24,0x7b,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x7d,0x60,0x2c,0x20,0x27,0x41,0x55,0x54,0x48,0x5f,0x52,0x55,0x4c,0x45,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x65,0x64,0x5f,0x72,0x75,0x6c,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x65,0x64,0x5f,0x72,0x75,0x6c,0x65,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x72,0x75,0x6c,0x65,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x60,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x65,0x64,0x20,0x72,0x75,0x6c,0x65,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x7d,0x20,0x2d,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x7c,0x7c,0x20,0x72,0x75,0x6c,0x65,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x61,0x72,0x67,0x65,0x74,0x7d,0x60,0x2c,0x20,0x27,0x41,0x55,0x54,0x48,0x5f,0x52,0x55,0x4c,0x45,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x65,0x6c,0x70,0x65,0x72,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x66,0x72,0x6f,0x6d,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x46,0x72,0x6f,0x6d,0x52,0x65,0x6c,0x61,0x79,0x28,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x44,0x65,0x63,0x72,0x79,0x70,0x74,0x69,0x6e,0x67,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x66,0x72,0x6f,0x6d,0x20,0x72,0x65,0x6c,0x61,0x79,0x2e,0x2e,0x2e,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x47,0x65,0x74,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x70,0x75,0x62,0x6c,0x69,0x63,0x20,0x6b,0x65,0x79,0x20,0x66,0x6f,0x72,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x4e,0x49,0x50,0x2d,0x30,0x37,0x20,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x27,0x73,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x20,0x7c,0x7c,0x20,0x21,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x6e,0x69,0x70,0x34,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x4e,0x49,0x50,0x2d,0x34,0x34,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x20,0x76,0x69,0x61,0x20,0x4e,0x49,0x50,0x2d,0x30,0x37,0x20,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x6e,0x69,0x70,0x34,0x34,0x2e,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x28,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x4e,0x49,0x50,0x2d,0x34,0x34,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x65,0x64,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x53,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x66,0x72,0x6f,0x6d,0x20,0x72,0x65,0x6c,0x61,0x79,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x4e,0x49,0x50,0x2d,0x34,0x34,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x69,0x6f,0x6e,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x27,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x65,0x74,0x63,0x68,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x41,0x50,0x49,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x65,0x74,0x63,0x68,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x46,0x45,0x54,0x43,0x48,0x49,0x4e,0x47,0x20,0x43,0x4f,0x4e,0x46,0x49,0x47,0x55,0x52,0x41,0x54,0x49,0x4f,0x4e,0x20,0x56,0x49,0x41,0x20,0x41,0x44,0x4d,0x49,0x4e,0x20,0x41,0x50,0x49,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x71,0x75,0x69,0x72,0x65,0x20,0x62,0x6f,0x74,0x68,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x20,0x61,0x6e,0x64,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x7c,0x7c,0x20,0x21,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x4d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x6f,0x20,0x66,0x65,0x74,0x63,0x68,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x52,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x20,0x7c,0x7c,0x20,0x21,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x4d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x74,0x6f,0x20,0x66,0x65,0x74,0x63,0x68,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x20,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x75,0x73,0x65,0x20,0x74,0x68,0x65,0x20,0x52,0x65,0x6c,0x61,0x79,0x20,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x69,0x72,0x73,0x74,0x2e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x69,0x72,0x73,0x74,0x20,0x65,0x73,0x74,0x61,0x62,0x6c,0x69,0x73,0x68,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x52,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x62,0x65,0x54,0x6f,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x52,0x65,0x73,0x75,0x6c,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x65,0x73,0x74,0x61,0x62,0x6c,0x69,0x73,0x68,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x57,0x61,0x69,0x74,0x20,0x61,0x20,0x6d,0x6f,0x6d,0x65,0x6e,0x74,0x20,0x66,0x6f,0x72,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x65,0x73,0x74,0x61,0x62,0x6c,0x69,0x73,0x68,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x6e,0x65,0x77,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x28,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x20,0x3d,0x3e,0x20,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x2c,0x20,0x35,0x30,0x30,0x29,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x65,0x6e,0x64,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x69,0x66,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x26,0x26,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x26,0x26,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x53,0x65,0x6e,0x64,0x69,0x6e,0x67,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x2e,0x2e,0x2e,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x66,0x6f,0x72,0x20,0x67,0x65,0x74,0x74,0x69,0x6e,0x67,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x20,0x3d,0x20,0x5b,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5f,0x71,0x75,0x65,0x72,0x79,0x22,0x2c,0x20,0x22,0x61,0x6c,0x6c,0x22,0x5d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6c,0x79,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x46,0x6f,0x72,0x52,0x65,0x6c,0x61,0x79,0x28,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x20,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x36,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x20,0x32,0x33,0x34,0x35,0x36,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x3a,0x20,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x2f,0x20,0x31,0x30,0x30,0x30,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x73,0x3a,0x20,0x5b,0x5b,0x22,0x70,0x22,0x2c,0x20,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x5d,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x69,0x67,0x6e,0x20,0x74,0x68,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x73,0x69,0x67,0x6e,0x45,0x76,0x65,0x6e,0x74,0x28,0x63,0x6f,0x6e,0x66,0x69,0x67,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x2e,0x73,0x69,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x76,0x65,0x6e,0x74,0x20,0x73,0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x2c,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x69,0x6e,0x67,0x2e,0x2e,0x2e,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x76,0x69,0x61,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x77,0x69,0x74,0x68,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x55,0x72,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x28,0x5b,0x75,0x72,0x6c,0x5d,0x2c,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x20,0x70,0x65,0x72,0x2d,0x72,0x65,0x6c,0x61,0x79,0x20,0x6f,0x75,0x74,0x63,0x6f,0x6d,0x65,0x73,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x20,0x6f,0x66,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6e,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x66,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6c,0x66,0x69,0x6c,0x6c,0x65,0x64,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0xe2,0x9c,0x85,0x20,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x28,0x24,0x7b,0x75,0x72,0x6c,0x7d,0x29,0x3a,0x20,0x45,0x76,0x65,0x6e,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x60,0xe2,0x9d,0x8c,0x20,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x28,0x24,0x7b,0x75,0x72,0x6c,0x7d,0x29,0x3a,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x60,0x2c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x69,0x66,0x20,0x61,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x6d,0x61,0x70,0x28,0x28,0x72,0x2c,0x20,0x69,0x29,0x20,0x3d,0x3e,0x20,0x60,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x27,0x3b,0x20,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x41,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x65,0x64,0x20,0x74,0x68,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x20,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x73,0x65,0x6e,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x20,0x2d,0x20,0x77,0x61,0x69,0x74,0x69,0x6e,0x67,0x20,0x66,0x6f,0x72,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x2e,0x2e,0x2e,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x4e,0x6f,0x74,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x20,0x2d,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x65,0x73,0x74,0x61,0x62,0x6c,0x69,0x73,0x68,0x65,0x64,0x20,0x66,0x6f,0x72,0x20,0x74,0x65,0x73,0x74,0x69,0x6e,0x67,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x66,0x65,0x74,0x63,0x68,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x27,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x28,0x65,0x76,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x44,0x49,0x53,0x50,0x4c,0x41,0x59,0x49,0x4e,0x47,0x20,0x43,0x4f,0x4e,0x46,0x49,0x47,0x55,0x52,0x41,0x54,0x49,0x4f,0x4e,0x20,0x45,0x56,0x45,0x4e,0x54,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x45,0x76,0x65,0x6e,0x74,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x20,0x66,0x6f,0x72,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x27,0x2c,0x20,0x65,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x3d,0x20,0x65,0x76,0x65,0x6e,0x74,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6c,0x65,0x61,0x72,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x20,0x74,0x61,0x62,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x54,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x27,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x74,0x61,0x67,0x73,0x20,0x28,0x65,0x64,0x69,0x74,0x61,0x62,0x6c,0x65,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x70,0x61,0x72,0x61,0x6d,0x65,0x74,0x65,0x72,0x73,0x20,0x6f,0x6e,0x6c,0x79,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x69,0x6e,0x67,0x20,0x24,0x7b,0x65,0x76,0x65,0x6e,0x74,0x2e,0x74,0x61,0x67,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x7d,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x70,0x61,0x72,0x61,0x6d,0x65,0x74,0x65,0x72,0x73,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x74,0x61,0x67,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x74,0x61,0x67,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x61,0x67,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x3d,0x20,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x6f,0x77,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x27,0x74,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x3d,0x20,0x74,0x61,0x67,0x5b,0x30,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x74,0x61,0x67,0x5b,0x31,0x5d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x65,0x64,0x69,0x74,0x61,0x62,0x6c,0x65,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x66,0x6f,0x72,0x20,0x76,0x61,0x6c,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x49,0x6e,0x70,0x75,0x74,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x27,0x69,0x6e,0x70,0x75,0x74,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x49,0x6e,0x70,0x75,0x74,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x27,0x74,0x65,0x78,0x74,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x49,0x6e,0x70,0x75,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x49,0x6e,0x70,0x75,0x74,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x27,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x76,0x61,0x6c,0x75,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x49,0x6e,0x70,0x75,0x74,0x2e,0x64,0x61,0x74,0x61,0x73,0x65,0x74,0x2e,0x6b,0x65,0x79,0x20,0x3d,0x20,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x49,0x6e,0x70,0x75,0x74,0x2e,0x64,0x61,0x74,0x61,0x73,0x65,0x74,0x2e,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x49,0x6e,0x70,0x75,0x74,0x2e,0x64,0x61,0x74,0x61,0x73,0x65,0x74,0x2e,0x72,0x6f,0x77,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x69,0x6e,0x64,0x65,0x78,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x63,0x6c,0x69,0x63,0x6b,0x61,0x62,0x6c,0x65,0x20,0x41,0x63,0x74,0x69,0x6f,0x6e,0x73,0x20,0x63,0x65,0x6c,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x27,0x74,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x27,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x2d,0x63,0x65,0x6c,0x6c,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x53,0x41,0x56,0x45,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x64,0x61,0x74,0x61,0x73,0x65,0x74,0x2e,0x6b,0x65,0x79,0x20,0x3d,0x20,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x64,0x61,0x74,0x61,0x73,0x65,0x74,0x2e,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x64,0x61,0x74,0x61,0x73,0x65,0x74,0x2e,0x72,0x6f,0x77,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x69,0x6e,0x64,0x65,0x78,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x6e,0x69,0x74,0x69,0x61,0x6c,0x6c,0x79,0x20,0x68,0x69,0x64,0x65,0x20,0x74,0x68,0x65,0x20,0x53,0x41,0x56,0x45,0x20,0x74,0x65,0x78,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x27,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x68,0x6f,0x77,0x20,0x53,0x41,0x56,0x45,0x20,0x74,0x65,0x78,0x74,0x20,0x61,0x6e,0x64,0x20,0x6d,0x61,0x6b,0x65,0x20,0x63,0x6c,0x69,0x63,0x6b,0x61,0x62,0x6c,0x65,0x20,0x77,0x68,0x65,0x6e,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x49,0x6e,0x70,0x75,0x74,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x69,0x6e,0x70,0x75,0x74,0x27,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x21,0x3d,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x61,0x74,0x61,0x73,0x65,0x74,0x2e,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x27,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x63,0x75,0x72,0x73,0x6f,0x72,0x20,0x3d,0x20,0x27,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x73,0x61,0x76,0x65,0x49,0x6e,0x64,0x69,0x76,0x69,0x64,0x75,0x61,0x6c,0x43,0x6f,0x6e,0x66,0x69,0x67,0x28,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x49,0x6e,0x70,0x75,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x49,0x6e,0x70,0x75,0x74,0x2e,0x64,0x61,0x74,0x61,0x73,0x65,0x74,0x2e,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x27,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x63,0x75,0x72,0x73,0x6f,0x72,0x20,0x3d,0x20,0x27,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x77,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x60,0x3c,0x74,0x64,0x3e,0x24,0x7b,0x6b,0x65,0x79,0x7d,0x3c,0x2f,0x74,0x64,0x3e,0x3c,0x74,0x64,0x3e,0x3c,0x2f,0x74,0x64,0x3e,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x77,0x2e,0x63,0x65,0x6c,0x6c,0x73,0x5b,0x31,0x5d,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x43,0x68,0x69,0x6c,0x64,0x28,0x76,0x61,0x6c,0x75,0x65,0x49,0x6e,0x70,0x75,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x77,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x43,0x68,0x69,0x6c,0x64,0x28,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x54,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x43,0x68,0x69,0x6c,0x64,0x28,0x72,0x6f,0x77,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x68,0x6f,0x77,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x69,0x66,0x20,0x6e,0x6f,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x70,0x61,0x72,0x61,0x6d,0x65,0x74,0x65,0x72,0x73,0x20,0x66,0x6f,0x75,0x6e,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x76,0x65,0x6e,0x74,0x2e,0x74,0x61,0x67,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x6f,0x77,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x27,0x74,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x77,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x60,0x3c,0x74,0x64,0x20,0x63,0x6f,0x6c,0x73,0x70,0x61,0x6e,0x3d,0x22,0x33,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x20,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x20,0x69,0x74,0x61,0x6c,0x69,0x63,0x3b,0x22,0x3e,0x4e,0x6f,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x70,0x61,0x72,0x61,0x6d,0x65,0x74,0x65,0x72,0x73,0x20,0x66,0x6f,0x75,0x6e,0x64,0x3c,0x2f,0x74,0x64,0x3e,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x54,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x43,0x68,0x69,0x6c,0x64,0x28,0x72,0x6f,0x77,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x63,0x6f,0x6d,0x70,0x6c,0x65,0x74,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x43,0x6f,0x6e,0x66,0x69,0x67,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x72,0x72,0x6f,0x72,0x20,0x69,0x6e,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x27,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x65,0x72,0x72,0x6f,0x72,0x3a,0x27,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x61,0x76,0x65,0x20,0x69,0x6e,0x64,0x69,0x76,0x69,0x64,0x75,0x61,0x6c,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x70,0x61,0x72,0x61,0x6d,0x65,0x74,0x65,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x61,0x76,0x65,0x49,0x6e,0x64,0x69,0x76,0x69,0x64,0x75,0x61,0x6c,0x43,0x6f,0x6e,0x66,0x69,0x67,0x28,0x6b,0x65,0x79,0x2c,0x20,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x7c,0x7c,0x20,0x21,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x4d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x6f,0x20,0x73,0x61,0x76,0x65,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6e,0x66,0x69,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x4e,0x6f,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x6f,0x6e,0x27,0x74,0x20,0x73,0x61,0x76,0x65,0x20,0x69,0x66,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x68,0x61,0x73,0x6e,0x27,0x74,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x53,0x61,0x76,0x69,0x6e,0x67,0x20,0x69,0x6e,0x64,0x69,0x76,0x69,0x64,0x75,0x61,0x6c,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x3a,0x20,0x24,0x7b,0x6b,0x65,0x79,0x7d,0x20,0x3d,0x20,0x24,0x7b,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x7d,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x65,0x20,0x64,0x61,0x74,0x61,0x20,0x74,0x79,0x70,0x65,0x20,0x62,0x61,0x73,0x65,0x64,0x20,0x6f,0x6e,0x20,0x6b,0x65,0x79,0x20,0x6e,0x61,0x6d,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x64,0x61,0x74,0x61,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x27,0x73,0x74,0x72,0x69,0x6e,0x67,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5b,0x27,0x6d,0x61,0x78,0x5f,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x27,0x2c,0x20,0x27,0x70,0x6f,0x77,0x5f,0x6d,0x69,0x6e,0x5f,0x64,0x69,0x66,0x66,0x69,0x63,0x75,0x6c,0x74,0x79,0x27,0x2c,0x20,0x27,0x6e,0x69,0x70,0x34,0x32,0x5f,0x63,0x68,0x61,0x6c,0x6c,0x65,0x6e,0x67,0x65,0x5f,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x27,0x2c,0x20,0x27,0x6d,0x61,0x78,0x5f,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x73,0x5f,0x70,0x65,0x72,0x5f,0x63,0x6c,0x69,0x65,0x6e,0x74,0x27,0x2c,0x20,0x27,0x6d,0x61,0x78,0x5f,0x65,0x76,0x65,0x6e,0x74,0x5f,0x74,0x61,0x67,0x73,0x27,0x2c,0x20,0x27,0x6d,0x61,0x78,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x5f,0x6c,0x65,0x6e,0x67,0x74,0x68,0x27,0x5d,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x61,0x74,0x61,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x27,0x69,0x6e,0x74,0x65,0x67,0x65,0x72,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x5b,0x27,0x61,0x75,0x74,0x68,0x5f,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x27,0x2c,0x20,0x27,0x6e,0x69,0x70,0x34,0x32,0x5f,0x61,0x75,0x74,0x68,0x5f,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x64,0x27,0x2c,0x20,0x27,0x6e,0x69,0x70,0x34,0x30,0x5f,0x65,0x78,0x70,0x69,0x72,0x61,0x74,0x69,0x6f,0x6e,0x5f,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x27,0x5d,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x61,0x74,0x61,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x27,0x62,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x65,0x20,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0x20,0x62,0x61,0x73,0x65,0x64,0x20,0x6f,0x6e,0x20,0x6b,0x65,0x79,0x20,0x6e,0x61,0x6d,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0x20,0x3d,0x20,0x27,0x67,0x65,0x6e,0x65,0x72,0x61,0x6c,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x27,0x72,0x65,0x6c,0x61,0x79,0x5f,0x27,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0x20,0x3d,0x20,0x27,0x72,0x65,0x6c,0x61,0x79,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x27,0x6e,0x69,0x70,0x34,0x30,0x5f,0x27,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0x20,0x3d,0x20,0x27,0x65,0x78,0x70,0x69,0x72,0x61,0x74,0x69,0x6f,0x6e,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x27,0x6e,0x69,0x70,0x34,0x32,0x5f,0x27,0x29,0x20,0x7c,0x7c,0x20,0x6b,0x65,0x79,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x27,0x61,0x75,0x74,0x68,0x5f,0x27,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0x20,0x3d,0x20,0x27,0x61,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x27,0x70,0x6f,0x77,0x5f,0x27,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0x20,0x3d,0x20,0x27,0x70,0x72,0x6f,0x6f,0x66,0x5f,0x6f,0x66,0x5f,0x77,0x6f,0x72,0x6b,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x27,0x6d,0x61,0x78,0x5f,0x27,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0x20,0x3d,0x20,0x27,0x6c,0x69,0x6d,0x69,0x74,0x73,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x4f,0x62,0x6a,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x3a,0x20,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x3a,0x20,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x61,0x74,0x61,0x5f,0x74,0x79,0x70,0x65,0x3a,0x20,0x64,0x61,0x74,0x61,0x54,0x79,0x70,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0x3a,0x20,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x63,0x65,0x6c,0x6c,0x20,0x64,0x75,0x72,0x69,0x6e,0x67,0x20,0x73,0x61,0x76,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x53,0x41,0x56,0x49,0x4e,0x47,0x2e,0x2e,0x2e,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x27,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x63,0x75,0x72,0x73,0x6f,0x72,0x20,0x3d,0x20,0x27,0x6e,0x6f,0x74,0x2d,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x65,0x6e,0x64,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x73,0x65,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x55,0x70,0x64,0x61,0x74,0x65,0x43,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x28,0x5b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x4f,0x62,0x6a,0x5d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x74,0x68,0x65,0x20,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x6f,0x6e,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x3d,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x65,0x6c,0x6c,0x73,0x5b,0x31,0x5d,0x2e,0x71,0x75,0x65,0x72,0x79,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x28,0x27,0x69,0x6e,0x70,0x75,0x74,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x70,0x75,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x70,0x75,0x74,0x2e,0x64,0x61,0x74,0x61,0x73,0x65,0x74,0x2e,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x69,0x64,0x65,0x20,0x53,0x41,0x56,0x45,0x20,0x74,0x65,0x78,0x74,0x20,0x73,0x69,0x6e,0x63,0x65,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x6e,0x6f,0x77,0x20,0x6d,0x61,0x74,0x63,0x68,0x65,0x73,0x20,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x27,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x63,0x75,0x72,0x73,0x6f,0x72,0x20,0x3d,0x20,0x27,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x53,0x41,0x56,0x45,0x44,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x27,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x53,0x41,0x56,0x45,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4b,0x65,0x65,0x70,0x20,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x69,0x66,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x6d,0x61,0x74,0x63,0x68,0x65,0x73,0x20,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x70,0x75,0x74,0x20,0x26,0x26,0x20,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x69,0x6e,0x70,0x75,0x74,0x2e,0x64,0x61,0x74,0x61,0x73,0x65,0x74,0x2e,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x27,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x20,0x32,0x30,0x30,0x30,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x53,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x20,0x73,0x61,0x76,0x65,0x64,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x3a,0x20,0x24,0x7b,0x6b,0x65,0x79,0x7d,0x20,0x3d,0x20,0x24,0x7b,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x7d,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x73,0x61,0x76,0x65,0x20,0x69,0x6e,0x64,0x69,0x76,0x69,0x64,0x75,0x61,0x6c,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x24,0x7b,0x6b,0x65,0x79,0x7d,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x53,0x41,0x56,0x45,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x27,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x63,0x75,0x72,0x73,0x6f,0x72,0x20,0x3d,0x20,0x27,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x73,0x61,0x76,0x65,0x49,0x6e,0x64,0x69,0x76,0x69,0x64,0x75,0x61,0x6c,0x43,0x6f,0x6e,0x66,0x69,0x67,0x28,0x6b,0x65,0x79,0x2c,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x65,0x6c,0x6c,0x73,0x5b,0x31,0x5d,0x2e,0x71,0x75,0x65,0x72,0x79,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x28,0x27,0x69,0x6e,0x70,0x75,0x74,0x27,0x29,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x0a,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x65,0x6e,0x64,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x36,0x20,0x77,0x69,0x74,0x68,0x20,0x41,0x64,0x6d,0x69,0x6e,0x69,0x73,0x74,0x72,0x61,0x74,0x6f,0x72,0x20,0x41,0x50,0x49,0x20,0x28,0x69,0x6e,0x6e,0x65,0x72,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x55,0x70,0x64,0x61,0x74,0x65,0x43,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x28,0x63,0x6f,0x6e,0x66,0x69,0x67,0x4f,0x62,0x6a,0x65,0x63,0x74,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0x53,0x65,0x6e,0x64,0x69,0x6e,0x67,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5f,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x77,0x69,0x74,0x68,0x20,0x24,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x4f,0x62,0x6a,0x65,0x63,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x7d,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x28,0x73,0x29,0x60,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x66,0x6f,0x72,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x20,0x3d,0x20,0x5b,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5f,0x75,0x70,0x64,0x61,0x74,0x65,0x22,0x2c,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x4f,0x62,0x6a,0x65,0x63,0x74,0x73,0x5d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6c,0x79,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x46,0x6f,0x72,0x52,0x65,0x6c,0x61,0x79,0x28,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x20,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x36,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x20,0x32,0x33,0x34,0x35,0x36,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x3a,0x20,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x2f,0x20,0x31,0x30,0x30,0x30,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x73,0x3a,0x20,0x5b,0x5b,0x22,0x70,0x22,0x2c,0x20,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x5d,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x69,0x67,0x6e,0x20,0x74,0x68,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x73,0x69,0x67,0x6e,0x45,0x76,0x65,0x6e,0x74,0x28,0x63,0x6f,0x6e,0x66,0x69,0x67,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x2e,0x73,0x69,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x76,0x65,0x6e,0x74,0x20,0x73,0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x20,0x24,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x4f,0x62,0x6a,0x65,0x63,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x7d,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x28,0x73,0x29,0x60,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x76,0x69,0x61,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x77,0x69,0x74,0x68,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x55,0x72,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x28,0x5b,0x75,0x72,0x6c,0x5d,0x2c,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x20,0x70,0x65,0x72,0x2d,0x72,0x65,0x6c,0x61,0x79,0x20,0x6f,0x75,0x74,0x63,0x6f,0x6d,0x65,0x73,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x20,0x6f,0x66,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6e,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x66,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6c,0x66,0x69,0x6c,0x6c,0x65,0x64,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0xe2,0x9c,0x85,0x20,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x28,0x24,0x7b,0x75,0x72,0x6c,0x7d,0x29,0x3a,0x20,0x45,0x76,0x65,0x6e,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x60,0xe2,0x9d,0x8c,0x20,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x28,0x24,0x7b,0x75,0x72,0x6c,0x7d,0x29,0x3a,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x60,0x2c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x69,0x66,0x20,0x61,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x6d,0x61,0x70,0x28,0x28,0x72,0x2c,0x20,0x69,0x29,0x20,0x3d,0x3e,0x20,0x60,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x27,0x3b,0x20,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x41,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x65,0x64,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x20,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x73,0x65,0x6e,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x20,0x77,0x69,0x74,0x68,0x20,0x24,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x4f,0x62,0x6a,0x65,0x63,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x7d,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x28,0x73,0x29,0x60,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x66,0x6f,0x72,0x20,0x74,0x65,0x73,0x74,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x53,0x45,0x4e,0x54,0x27,0x2c,0x20,0x60,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x3a,0x20,0x24,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x4f,0x62,0x6a,0x65,0x63,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x7d,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x28,0x73,0x29,0x60,0x2c,0x20,0x27,0x43,0x4f,0x4e,0x46,0x49,0x47,0x5f,0x55,0x50,0x44,0x41,0x54,0x45,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x4f,0x62,0x6a,0x65,0x63,0x74,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x53,0x45,0x4e,0x54,0x27,0x2c,0x20,0x60,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x7d,0x3a,0x20,0x24,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x6b,0x65,0x79,0x7d,0x20,0x3d,0x20,0x24,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x76,0x61,0x6c,0x75,0x65,0x7d,0x20,0x28,0x24,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x64,0x61,0x74,0x61,0x5f,0x74,0x79,0x70,0x65,0x7d,0x29,0x60,0x2c,0x20,0x27,0x43,0x4f,0x4e,0x46,0x49,0x47,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x73,0x65,0x6e,0x64,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5f,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x3a,0x60,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x69,0x6e,0x2f,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x20,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x74,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x4c,0x6f,0x67,0x69,0x6e,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x42,0x75,0x74,0x74,0x6f,0x6e,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x6c,0x6f,0x67,0x69,0x6e,0x2d,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x2d,0x62,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6c,0x6f,0x67,0x69,0x6e,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x42,0x74,0x6e,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x42,0x74,0x6e,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x4c,0x4f,0x47,0x4f,0x55,0x54,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x42,0x74,0x6e,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x27,0x6c,0x6f,0x67,0x69,0x6e,0x2d,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x2d,0x62,0x74,0x6e,0x20,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x2d,0x73,0x74,0x61,0x74,0x65,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x42,0x74,0x6e,0x2e,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x20,0x3d,0x20,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x68,0x6f,0x77,0x20,0x75,0x73,0x65,0x72,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x77,0x68,0x65,0x6e,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x27,0x62,0x6c,0x6f,0x63,0x6b,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x42,0x74,0x6e,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x41,0x44,0x4d,0x49,0x4e,0x20,0x4e,0x4f,0x53,0x54,0x52,0x20,0x4c,0x4f,0x47,0x49,0x4e,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x42,0x74,0x6e,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x27,0x6c,0x6f,0x67,0x69,0x6e,0x2d,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x2d,0x62,0x74,0x6e,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x42,0x74,0x6e,0x2e,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x4f,0x53,0x54,0x52,0x5f,0x4c,0x4f,0x47,0x49,0x4e,0x5f,0x4c,0x49,0x54,0x45,0x20,0x26,0x26,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x4f,0x53,0x54,0x52,0x5f,0x4c,0x4f,0x47,0x49,0x4e,0x5f,0x4c,0x49,0x54,0x45,0x2e,0x6c,0x61,0x75,0x6e,0x63,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x4f,0x53,0x54,0x52,0x5f,0x4c,0x4f,0x47,0x49,0x4e,0x5f,0x4c,0x49,0x54,0x45,0x2e,0x6c,0x61,0x75,0x6e,0x63,0x68,0x28,0x27,0x6c,0x6f,0x67,0x69,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x4e,0x4f,0x53,0x54,0x52,0x5f,0x4c,0x4f,0x47,0x49,0x4e,0x5f,0x4c,0x49,0x54,0x45,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x69,0x64,0x65,0x20,0x75,0x73,0x65,0x72,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x77,0x68,0x65,0x6e,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x6f,0x75,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x27,0x6e,0x6f,0x6e,0x65,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x76,0x65,0x6e,0x74,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x6e,0x69,0x74,0x69,0x61,0x6c,0x69,0x7a,0x65,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x2f,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x20,0x62,0x75,0x74,0x74,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x4c,0x6f,0x67,0x69,0x6e,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x42,0x75,0x74,0x74,0x6f,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x65,0x74,0x63,0x68,0x43,0x6f,0x6e,0x66,0x69,0x67,0x42,0x74,0x6e,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x63,0x6c,0x69,0x63,0x6b,0x27,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x28,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x2e,0x70,0x72,0x65,0x76,0x65,0x6e,0x74,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x2e,0x73,0x74,0x6f,0x70,0x50,0x72,0x6f,0x70,0x61,0x67,0x61,0x74,0x69,0x6f,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x65,0x74,0x63,0x68,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x28,0x29,0x2e,0x63,0x61,0x74,0x63,0x68,0x28,0x65,0x72,0x72,0x6f,0x72,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x4d,0x61,0x6e,0x75,0x61,0x6c,0x20,0x66,0x65,0x74,0x63,0x68,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x27,0x20,0x2b,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x0a,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x6c,0x61,0x79,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x63,0x6c,0x69,0x63,0x6b,0x27,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x28,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x2e,0x70,0x72,0x65,0x76,0x65,0x6e,0x74,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x2e,0x73,0x74,0x6f,0x70,0x50,0x72,0x6f,0x70,0x61,0x67,0x61,0x74,0x69,0x6f,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x54,0x6f,0x52,0x65,0x6c,0x61,0x79,0x28,0x29,0x2e,0x63,0x61,0x74,0x63,0x68,0x28,0x65,0x72,0x72,0x6f,0x72,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x52,0x65,0x6c,0x61,0x79,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x27,0x20,0x2b,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x63,0x6c,0x69,0x63,0x6b,0x27,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x28,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x2e,0x70,0x72,0x65,0x76,0x65,0x6e,0x74,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x2e,0x73,0x74,0x6f,0x70,0x50,0x72,0x6f,0x70,0x61,0x67,0x61,0x74,0x69,0x6f,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x46,0x72,0x6f,0x6d,0x52,0x65,0x6c,0x61,0x79,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x63,0x6c,0x69,0x63,0x6b,0x27,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x28,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x2e,0x70,0x72,0x65,0x76,0x65,0x6e,0x74,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x2e,0x73,0x74,0x6f,0x70,0x50,0x72,0x6f,0x70,0x61,0x67,0x61,0x74,0x69,0x6f,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x6e,0x64,0x52,0x65,0x73,0x74,0x61,0x72,0x74,0x43,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x28,0x29,0x2e,0x63,0x61,0x74,0x63,0x68,0x28,0x65,0x72,0x72,0x6f,0x72,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x52,0x65,0x73,0x74,0x61,0x72,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,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,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x55,0x54,0x48,0x20,0x52,0x55,0x4c,0x45,0x53,0x20,0x4d,0x41,0x4e,0x41,0x47,0x45,0x4d,0x45,0x4e,0x54,0x20,0x46,0x55,0x4e,0x43,0x54,0x49,0x4f,0x4e,0x53,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,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,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x73,0x74,0x61,0x74,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x65,0x64,0x69,0x74,0x69,0x6e,0x67,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x4f,0x4d,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x20,0x66,0x6f,0x72,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x42,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x54,0x69,0x74,0x6c,0x65,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x54,0x69,0x74,0x6c,0x65,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x61,0x76,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x73,0x61,0x76,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x42,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x6e,0x63,0x65,0x6c,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x63,0x61,0x6e,0x63,0x65,0x6c,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x42,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x68,0x6f,0x77,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x68,0x6f,0x77,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x27,0x62,0x6c,0x6f,0x63,0x6b,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x72,0x65,0x61,0x64,0x79,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x41,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x20,0x6e,0x6f,0x77,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x69,0x64,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x6e,0x20,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x69,0x64,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x27,0x6e,0x6f,0x6e,0x65,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x64,0x64,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x63,0x68,0x65,0x63,0x6b,0x73,0x20,0x66,0x6f,0x72,0x20,0x61,0x6c,0x6c,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x27,0x6e,0x6f,0x6e,0x65,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x27,0x6e,0x6f,0x6e,0x65,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x64,0x69,0x74,0x69,0x6e,0x67,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x41,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x69,0x64,0x64,0x65,0x6e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x20,0x28,0x72,0x65,0x6d,0x6f,0x76,0x65,0x64,0x20,0x2d,0x20,0x6e,0x6f,0x20,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x73,0x74,0x61,0x74,0x75,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x61,0x74,0x75,0x73,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x64,0x20,0x2d,0x20,0x6e,0x6f,0x2d,0x6f,0x70,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x61,0x64,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x66,0x72,0x6f,0x6d,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x41,0x50,0x49,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x6f,0x61,0x64,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x4c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x76,0x69,0x61,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x41,0x50,0x49,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x7c,0x7c,0x20,0x21,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x4d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x6f,0x20,0x6c,0x6f,0x61,0x64,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x66,0x6f,0x72,0x20,0x67,0x65,0x74,0x74,0x69,0x6e,0x67,0x20,0x61,0x6c,0x6c,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x20,0x3d,0x20,0x5b,0x22,0x61,0x75,0x74,0x68,0x5f,0x71,0x75,0x65,0x72,0x79,0x22,0x2c,0x20,0x22,0x61,0x6c,0x6c,0x22,0x5d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6c,0x79,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x46,0x6f,0x72,0x52,0x65,0x6c,0x61,0x79,0x28,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x20,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x36,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x75,0x74,0x68,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x20,0x32,0x33,0x34,0x35,0x36,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x3a,0x20,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x2f,0x20,0x31,0x30,0x30,0x30,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x73,0x3a,0x20,0x5b,0x5b,0x22,0x70,0x22,0x2c,0x20,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x5d,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x69,0x67,0x6e,0x20,0x74,0x68,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x73,0x69,0x67,0x6e,0x45,0x76,0x65,0x6e,0x74,0x28,0x61,0x75,0x74,0x68,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x2e,0x73,0x69,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x76,0x65,0x6e,0x74,0x20,0x73,0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x53,0x65,0x6e,0x64,0x69,0x6e,0x67,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x76,0x69,0x61,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x77,0x69,0x74,0x68,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x55,0x72,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x28,0x5b,0x75,0x72,0x6c,0x5d,0x2c,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x20,0x70,0x65,0x72,0x2d,0x72,0x65,0x6c,0x61,0x79,0x20,0x6f,0x75,0x74,0x63,0x6f,0x6d,0x65,0x73,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x20,0x6f,0x66,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6e,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x66,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6c,0x66,0x69,0x6c,0x6c,0x65,0x64,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0xe2,0x9c,0x85,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x73,0x20,0x51,0x75,0x65,0x72,0x79,0x20,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x28,0x24,0x7b,0x75,0x72,0x6c,0x7d,0x29,0x3a,0x20,0x45,0x76,0x65,0x6e,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x41,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x60,0xe2,0x9d,0x8c,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x73,0x20,0x51,0x75,0x65,0x72,0x79,0x20,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x28,0x24,0x7b,0x75,0x72,0x6c,0x7d,0x29,0x3a,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x60,0x2c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x41,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x69,0x66,0x20,0x61,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x6d,0x61,0x70,0x28,0x28,0x72,0x2c,0x20,0x69,0x29,0x20,0x3d,0x3e,0x20,0x60,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x27,0x3b,0x20,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x41,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x65,0x64,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x20,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x41,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x73,0x65,0x6e,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x20,0x2d,0x20,0x77,0x61,0x69,0x74,0x69,0x6e,0x67,0x20,0x66,0x6f,0x72,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x6c,0x6f,0x61,0x64,0x65,0x64,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x6c,0x6f,0x61,0x64,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x65,0x72,0x72,0x6f,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x74,0x61,0x62,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x28,0x72,0x75,0x6c,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x44,0x49,0x53,0x50,0x4c,0x41,0x59,0x20,0x41,0x55,0x54,0x48,0x20,0x52,0x55,0x4c,0x45,0x53,0x20,0x44,0x45,0x42,0x55,0x47,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3a,0x27,0x2c,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x52,0x75,0x6c,0x65,0x73,0x20,0x74,0x6f,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x27,0x2c,0x20,0x72,0x75,0x6c,0x65,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x52,0x75,0x6c,0x65,0x73,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3a,0x27,0x2c,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x3f,0x20,0x72,0x75,0x6c,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3a,0x20,0x27,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x27,0x2c,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x3f,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3a,0x20,0x27,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x3a,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x27,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x43,0x6c,0x65,0x61,0x72,0x65,0x64,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x75,0x6c,0x65,0x73,0x20,0x7c,0x7c,0x20,0x72,0x75,0x6c,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x4e,0x6f,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x74,0x6f,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x2c,0x20,0x73,0x68,0x6f,0x77,0x69,0x6e,0x67,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x6f,0x77,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x27,0x74,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x77,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x60,0x3c,0x74,0x64,0x20,0x63,0x6f,0x6c,0x73,0x70,0x61,0x6e,0x3d,0x22,0x36,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x20,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x20,0x69,0x74,0x61,0x6c,0x69,0x63,0x3b,0x22,0x3e,0x4e,0x6f,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x65,0x64,0x3c,0x2f,0x74,0x64,0x3e,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x43,0x68,0x69,0x6c,0x64,0x28,0x72,0x6f,0x77,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x41,0x64,0x64,0x65,0x64,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x72,0x6f,0x77,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x69,0x6e,0x67,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x7d,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x75,0x6c,0x65,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x72,0x75,0x6c,0x65,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0x41,0x64,0x64,0x69,0x6e,0x67,0x20,0x72,0x75,0x6c,0x65,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x7d,0x3a,0x60,0x2c,0x20,0x72,0x75,0x6c,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x6f,0x77,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x27,0x74,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x77,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x24,0x7b,0x72,0x75,0x6c,0x65,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x7d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x24,0x7b,0x72,0x75,0x6c,0x65,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x74,0x79,0x70,0x65,0x20,0x7c,0x7c,0x20,0x72,0x75,0x6c,0x65,0x2e,0x6f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x7c,0x7c,0x20,0x27,0x2d,0x27,0x7d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x27,0x43,0x6f,0x75,0x72,0x69,0x65,0x72,0x20,0x4e,0x65,0x77,0x27,0x2c,0x20,0x6d,0x6f,0x6e,0x6f,0x73,0x70,0x61,0x63,0x65,0x3b,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x32,0x70,0x78,0x3b,0x20,0x77,0x6f,0x72,0x64,0x2d,0x62,0x72,0x65,0x61,0x6b,0x3a,0x20,0x62,0x72,0x65,0x61,0x6b,0x2d,0x61,0x6c,0x6c,0x3b,0x20,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x32,0x30,0x30,0x70,0x78,0x3b,0x22,0x3e,0x24,0x7b,0x72,0x75,0x6c,0x65,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x7c,0x7c,0x20,0x72,0x75,0x6c,0x65,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x7c,0x7c,0x20,0x27,0x2d,0x27,0x7d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x24,0x7b,0x72,0x75,0x6c,0x65,0x2e,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x20,0x21,0x3d,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x20,0x3f,0x20,0x27,0x41,0x63,0x74,0x69,0x76,0x65,0x27,0x20,0x3a,0x20,0x27,0x49,0x6e,0x61,0x63,0x74,0x69,0x76,0x65,0x27,0x7d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x73,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x65,0x64,0x69,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x28,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x29,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x32,0x70,0x78,0x3b,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x34,0x70,0x78,0x20,0x38,0x70,0x78,0x3b,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x32,0x70,0x78,0x3b,0x22,0x3e,0x45,0x44,0x49,0x54,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x64,0x65,0x6c,0x65,0x74,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x28,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x29,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x32,0x70,0x78,0x3b,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x34,0x70,0x78,0x20,0x38,0x70,0x78,0x3b,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x32,0x70,0x78,0x3b,0x22,0x3e,0x44,0x45,0x4c,0x45,0x54,0x45,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x43,0x68,0x69,0x6c,0x64,0x28,0x72,0x6f,0x77,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0x54,0x6f,0x74,0x61,0x6c,0x20,0x52,0x75,0x6c,0x65,0x73,0x3a,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x7d,0x2c,0x20,0x41,0x63,0x74,0x69,0x76,0x65,0x20,0x52,0x75,0x6c,0x65,0x73,0x3a,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x73,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x72,0x20,0x3d,0x3e,0x20,0x72,0x2e,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x20,0x21,0x3d,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x7d,0x60,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x45,0x4e,0x44,0x20,0x44,0x49,0x53,0x50,0x4c,0x41,0x59,0x20,0x41,0x55,0x54,0x48,0x20,0x52,0x55,0x4c,0x45,0x53,0x20,0x44,0x45,0x42,0x55,0x47,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x68,0x6f,0x77,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x28,0x61,0x75,0x74,0x6f,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,0x6c,0x79,0x20,0x63,0x61,0x6c,0x6c,0x65,0x64,0x20,0x77,0x68,0x65,0x6e,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x61,0x72,0x65,0x20,0x6c,0x6f,0x61,0x64,0x65,0x64,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x68,0x6f,0x77,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x53,0x48,0x4f,0x57,0x20,0x41,0x55,0x54,0x48,0x20,0x52,0x55,0x4c,0x45,0x53,0x20,0x54,0x41,0x42,0x4c,0x45,0x20,0x44,0x45,0x42,0x55,0x47,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3a,0x27,0x2c,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x73,0x74,0x79,0x6c,0x65,0x3a,0x27,0x2c,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x3f,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3a,0x20,0x27,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x27,0x62,0x6c,0x6f,0x63,0x6b,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x53,0x65,0x74,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x74,0x6f,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x66,0x20,0x77,0x65,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x68,0x61,0x76,0x65,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x2c,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x74,0x68,0x65,0x6d,0x20,0x69,0x6d,0x6d,0x65,0x64,0x69,0x61,0x74,0x65,0x6c,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x20,0x26,0x26,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x69,0x6e,0x67,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x3a,0x27,0x2c,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x20,0x27,0x72,0x75,0x6c,0x65,0x73,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x6c,0x6f,0x61,0x64,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x41,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x20,0x24,0x7b,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x7d,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x20,0x72,0x75,0x6c,0x65,0x73,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4e,0x6f,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x20,0x72,0x75,0x6c,0x65,0x73,0x2c,0x20,0x6c,0x6f,0x61,0x64,0x20,0x66,0x72,0x6f,0x6d,0x20,0x72,0x65,0x6c,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x4e,0x6f,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x2c,0x20,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x20,0x66,0x72,0x6f,0x6d,0x20,0x72,0x65,0x6c,0x61,0x79,0x2e,0x2e,0x2e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x61,0x64,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x41,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x65,0x64,0x20,0x2d,0x20,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x20,0x66,0x72,0x6f,0x6d,0x20,0x72,0x65,0x6c,0x61,0x79,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x3a,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x45,0x4e,0x44,0x20,0x53,0x48,0x4f,0x57,0x20,0x41,0x55,0x54,0x48,0x20,0x52,0x55,0x4c,0x45,0x53,0x20,0x54,0x41,0x42,0x4c,0x45,0x20,0x44,0x45,0x42,0x55,0x47,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x68,0x6f,0x77,0x20,0x61,0x64,0x64,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x66,0x6f,0x72,0x6d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x68,0x6f,0x77,0x41,0x64,0x64,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x26,0x26,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x54,0x69,0x74,0x6c,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x64,0x69,0x74,0x69,0x6e,0x67,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x54,0x69,0x74,0x6c,0x65,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x41,0x64,0x64,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x2e,0x72,0x65,0x73,0x65,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x27,0x62,0x6c,0x6f,0x63,0x6b,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x4f,0x70,0x65,0x6e,0x65,0x64,0x20,0x61,0x64,0x64,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x66,0x6f,0x72,0x6d,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x68,0x6f,0x77,0x20,0x65,0x64,0x69,0x74,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x66,0x6f,0x72,0x6d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x64,0x69,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x28,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x64,0x65,0x78,0x20,0x3c,0x20,0x30,0x20,0x7c,0x7c,0x20,0x69,0x6e,0x64,0x65,0x78,0x20,0x3e,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x75,0x6c,0x65,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x5b,0x69,0x6e,0x64,0x65,0x78,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x64,0x69,0x74,0x69,0x6e,0x67,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x20,0x3d,0x20,0x7b,0x20,0x2e,0x2e,0x2e,0x72,0x75,0x6c,0x65,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x3a,0x20,0x69,0x6e,0x64,0x65,0x78,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x54,0x69,0x74,0x6c,0x65,0x20,0x26,0x26,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x54,0x69,0x74,0x6c,0x65,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x45,0x64,0x69,0x74,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x20,0x66,0x6f,0x72,0x6d,0x20,0x66,0x69,0x65,0x6c,0x64,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x54,0x79,0x70,0x65,0x27,0x29,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x72,0x75,0x6c,0x65,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x20,0x7c,0x7c,0x20,0x27,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x54,0x79,0x70,0x65,0x27,0x29,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x72,0x75,0x6c,0x65,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x74,0x79,0x70,0x65,0x20,0x7c,0x7c,0x20,0x72,0x75,0x6c,0x65,0x2e,0x6f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x7c,0x7c,0x20,0x27,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x56,0x61,0x6c,0x75,0x65,0x27,0x29,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x72,0x75,0x6c,0x65,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x7c,0x7c,0x20,0x72,0x75,0x6c,0x65,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x7c,0x7c,0x20,0x27,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x41,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x72,0x75,0x6c,0x65,0x2e,0x61,0x63,0x74,0x69,0x6f,0x6e,0x20,0x7c,0x7c,0x20,0x27,0x61,0x6c,0x6c,0x6f,0x77,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x44,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x27,0x29,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x72,0x75,0x6c,0x65,0x2e,0x64,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x7c,0x7c,0x20,0x27,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x27,0x62,0x6c,0x6f,0x63,0x6b,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x45,0x64,0x69,0x74,0x69,0x6e,0x67,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x3a,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x7d,0x20,0x2d,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x7c,0x7c,0x20,0x72,0x75,0x6c,0x65,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x61,0x72,0x67,0x65,0x74,0x7d,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x65,0x6c,0x65,0x74,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x41,0x64,0x6d,0x69,0x6e,0x69,0x73,0x74,0x72,0x61,0x74,0x6f,0x72,0x20,0x41,0x50,0x49,0x20,0x28,0x69,0x6e,0x6e,0x65,0x72,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x28,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x64,0x65,0x78,0x20,0x3c,0x20,0x30,0x20,0x7c,0x7c,0x20,0x69,0x6e,0x64,0x65,0x78,0x20,0x3e,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x75,0x6c,0x65,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x5b,0x69,0x6e,0x64,0x65,0x78,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x72,0x6d,0x4d,0x73,0x67,0x20,0x3d,0x20,0x60,0x44,0x65,0x6c,0x65,0x74,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x3a,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x7d,0x20,0x2d,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x7c,0x7c,0x20,0x72,0x75,0x6c,0x65,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x61,0x72,0x67,0x65,0x74,0x7d,0x3f,0x60,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x6f,0x6e,0x66,0x69,0x72,0x6d,0x28,0x63,0x6f,0x6e,0x66,0x69,0x72,0x6d,0x4d,0x73,0x67,0x29,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x44,0x65,0x6c,0x65,0x74,0x69,0x6e,0x67,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x3a,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x7d,0x20,0x2d,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x7c,0x7c,0x20,0x72,0x75,0x6c,0x65,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x61,0x72,0x67,0x65,0x74,0x7d,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x7c,0x7c,0x20,0x21,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x4d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x6f,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x66,0x6f,0x72,0x20,0x64,0x65,0x6c,0x65,0x74,0x69,0x6e,0x67,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x6f,0x72,0x6d,0x61,0x74,0x3a,0x20,0x5b,0x22,0x73,0x79,0x73,0x74,0x65,0x6d,0x5f,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x22,0x2c,0x20,0x22,0x64,0x65,0x6c,0x65,0x74,0x65,0x5f,0x61,0x75,0x74,0x68,0x5f,0x72,0x75,0x6c,0x65,0x22,0x2c,0x20,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x2c,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x74,0x79,0x70,0x65,0x2c,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x72,0x75,0x6c,0x65,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x72,0x75,0x6c,0x65,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x74,0x79,0x70,0x65,0x20,0x7c,0x7c,0x20,0x27,0x70,0x75,0x62,0x6b,0x65,0x79,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x72,0x75,0x6c,0x65,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x7c,0x7c,0x20,0x72,0x75,0x6c,0x65,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x61,0x72,0x67,0x65,0x74,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x20,0x3d,0x20,0x5b,0x22,0x73,0x79,0x73,0x74,0x65,0x6d,0x5f,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x22,0x2c,0x20,0x22,0x64,0x65,0x6c,0x65,0x74,0x65,0x5f,0x61,0x75,0x74,0x68,0x5f,0x72,0x75,0x6c,0x65,0x22,0x2c,0x20,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x2c,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x74,0x79,0x70,0x65,0x2c,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x5d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6c,0x79,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x46,0x6f,0x72,0x52,0x65,0x6c,0x61,0x79,0x28,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x20,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x36,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x75,0x74,0x68,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x20,0x32,0x33,0x34,0x35,0x36,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x3a,0x20,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x2f,0x20,0x31,0x30,0x30,0x30,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x73,0x3a,0x20,0x5b,0x5b,0x22,0x70,0x22,0x2c,0x20,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x5d,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x69,0x67,0x6e,0x20,0x74,0x68,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x73,0x69,0x67,0x6e,0x45,0x76,0x65,0x6e,0x74,0x28,0x61,0x75,0x74,0x68,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x2e,0x73,0x69,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x76,0x65,0x6e,0x74,0x20,0x73,0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x53,0x65,0x6e,0x64,0x69,0x6e,0x67,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x76,0x69,0x61,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x77,0x69,0x74,0x68,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x55,0x72,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x28,0x5b,0x75,0x72,0x6c,0x5d,0x2c,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x20,0x70,0x65,0x72,0x2d,0x72,0x65,0x6c,0x61,0x79,0x20,0x6f,0x75,0x74,0x63,0x6f,0x6d,0x65,0x73,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x20,0x6f,0x66,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6e,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x66,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6c,0x66,0x69,0x6c,0x6c,0x65,0x64,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0xe2,0x9c,0x85,0x20,0x44,0x65,0x6c,0x65,0x74,0x65,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x20,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x28,0x24,0x7b,0x75,0x72,0x6c,0x7d,0x29,0x3a,0x20,0x45,0x76,0x65,0x6e,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x44,0x65,0x6c,0x65,0x74,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x60,0xe2,0x9d,0x8c,0x20,0x44,0x65,0x6c,0x65,0x74,0x65,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x20,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x28,0x24,0x7b,0x75,0x72,0x6c,0x7d,0x29,0x3a,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x60,0x2c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x44,0x65,0x6c,0x65,0x74,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x69,0x66,0x20,0x61,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x6d,0x61,0x70,0x28,0x28,0x72,0x2c,0x20,0x69,0x29,0x20,0x3d,0x3e,0x20,0x60,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x27,0x3b,0x20,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x41,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x65,0x64,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x20,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x44,0x65,0x6c,0x65,0x74,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x73,0x65,0x6e,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x20,0x2d,0x20,0x77,0x61,0x69,0x74,0x69,0x6e,0x67,0x20,0x66,0x6f,0x72,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x6d,0x6f,0x76,0x65,0x20,0x66,0x72,0x6f,0x6d,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x69,0x6d,0x6d,0x65,0x64,0x69,0x61,0x74,0x65,0x6c,0x79,0x20,0x66,0x6f,0x72,0x20,0x55,0x49,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x69,0x76,0x65,0x6e,0x65,0x73,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x2e,0x73,0x70,0x6c,0x69,0x63,0x65,0x28,0x69,0x6e,0x64,0x65,0x78,0x2c,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x69,0x64,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x66,0x6f,0x72,0x6d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x69,0x64,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x27,0x6e,0x6f,0x6e,0x65,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x64,0x69,0x74,0x69,0x6e,0x67,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x41,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x66,0x6f,0x72,0x6d,0x20,0x68,0x69,0x64,0x64,0x65,0x6e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x66,0x6f,0x72,0x6d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x75,0x6c,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x54,0x79,0x70,0x65,0x27,0x29,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x54,0x79,0x70,0x65,0x27,0x29,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x56,0x61,0x6c,0x75,0x65,0x27,0x29,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x41,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x75,0x6c,0x65,0x54,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x27,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x20,0x61,0x20,0x72,0x75,0x6c,0x65,0x20,0x74,0x79,0x70,0x65,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x54,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x27,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x20,0x61,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x20,0x74,0x79,0x70,0x65,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x27,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x65,0x6e,0x74,0x65,0x72,0x20,0x61,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x20,0x76,0x61,0x6c,0x75,0x65,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x61,0x63,0x74,0x69,0x6f,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x27,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x20,0x61,0x6e,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x20,0x66,0x6f,0x72,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x72,0x75,0x6c,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x72,0x75,0x6c,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x70,0x75,0x62,0x6b,0x65,0x79,0x5f,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x27,0x20,0x7c,0x7c,0x20,0x72,0x75,0x6c,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x70,0x75,0x62,0x6b,0x65,0x79,0x5f,0x62,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x27,0x29,0x20,0x26,0x26,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x56,0x61,0x6c,0x75,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x21,0x3d,0x3d,0x20,0x36,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x27,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x6d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x65,0x78,0x61,0x63,0x74,0x6c,0x79,0x20,0x36,0x34,0x20,0x68,0x65,0x78,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x20,0x68,0x65,0x78,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x20,0x66,0x6f,0x72,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x72,0x75,0x6c,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x72,0x75,0x6c,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x70,0x75,0x62,0x6b,0x65,0x79,0x5f,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x27,0x20,0x7c,0x7c,0x20,0x72,0x75,0x6c,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x70,0x75,0x62,0x6b,0x65,0x79,0x5f,0x62,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x27,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x65,0x78,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x20,0x3d,0x20,0x2f,0x5e,0x5b,0x30,0x2d,0x39,0x61,0x2d,0x66,0x41,0x2d,0x46,0x5d,0x2b,0x24,0x2f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x68,0x65,0x78,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x2e,0x74,0x65,0x73,0x74,0x28,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x56,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x27,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x6d,0x75,0x73,0x74,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x68,0x65,0x78,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x20,0x28,0x30,0x2d,0x39,0x2c,0x20,0x61,0x2d,0x66,0x2c,0x20,0x41,0x2d,0x46,0x29,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x61,0x76,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x28,0x61,0x64,0x64,0x20,0x6f,0x72,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x61,0x76,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x28,0x65,0x76,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x70,0x72,0x65,0x76,0x65,0x6e,0x74,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x28,0x29,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x75,0x6c,0x65,0x44,0x61,0x74,0x61,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x3a,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x54,0x79,0x70,0x65,0x27,0x29,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x74,0x79,0x70,0x65,0x3a,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x54,0x79,0x70,0x65,0x27,0x29,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x3a,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x56,0x61,0x6c,0x75,0x65,0x27,0x29,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x41,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x44,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x27,0x29,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x20,0x7c,0x7c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x3a,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x64,0x69,0x74,0x69,0x6e,0x67,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x55,0x70,0x64,0x61,0x74,0x69,0x6e,0x67,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x3a,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x44,0x61,0x74,0x61,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x7d,0x20,0x2d,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x44,0x61,0x74,0x61,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x7d,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x4f,0x44,0x4f,0x3a,0x20,0x49,0x6d,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x61,0x63,0x74,0x75,0x61,0x6c,0x20,0x72,0x75,0x6c,0x65,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x76,0x69,0x61,0x20,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x20,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x36,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x6f,0x72,0x20,0x6e,0x6f,0x77,0x2c,0x20,0x6a,0x75,0x73,0x74,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x20,0x61,0x72,0x72,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x5b,0x65,0x64,0x69,0x74,0x69,0x6e,0x67,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x2e,0x69,0x6e,0x64,0x65,0x78,0x5d,0x20,0x3d,0x20,0x7b,0x20,0x2e,0x2e,0x2e,0x72,0x75,0x6c,0x65,0x44,0x61,0x74,0x61,0x2c,0x20,0x69,0x64,0x3a,0x20,0x65,0x64,0x69,0x74,0x69,0x6e,0x67,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x2e,0x69,0x64,0x20,0x7c,0x7c,0x20,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x41,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x20,0x28,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x20,0x69,0x6d,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x29,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x41,0x64,0x64,0x69,0x6e,0x67,0x20,0x6e,0x65,0x77,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x3a,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x44,0x61,0x74,0x61,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x7d,0x20,0x2d,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x44,0x61,0x74,0x61,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x7d,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x4f,0x44,0x4f,0x3a,0x20,0x49,0x6d,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x61,0x63,0x74,0x75,0x61,0x6c,0x20,0x72,0x75,0x6c,0x65,0x20,0x63,0x72,0x65,0x61,0x74,0x69,0x6f,0x6e,0x20,0x76,0x69,0x61,0x20,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x20,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x36,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x6f,0x72,0x20,0x6e,0x6f,0x77,0x2c,0x20,0x6a,0x75,0x73,0x74,0x20,0x61,0x64,0x64,0x20,0x74,0x6f,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x20,0x61,0x72,0x72,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x7b,0x20,0x2e,0x2e,0x2e,0x72,0x75,0x6c,0x65,0x44,0x61,0x74,0x61,0x2c,0x20,0x69,0x64,0x3a,0x20,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x41,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x61,0x64,0x64,0x65,0x64,0x20,0x28,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x20,0x69,0x6d,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x29,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x64,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x73,0x61,0x76,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x20,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x20,0x61,0x6e,0x64,0x20,0x73,0x68,0x6f,0x77,0x4d,0x61,0x69,0x6e,0x49,0x6e,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x73,0x20,0x74,0x6f,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x61,0x6e,0x64,0x20,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x44,0x4d,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x20,0x3d,0x20,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x20,0x3d,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x64,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6c,0x65,0x61,0x72,0x20,0x44,0x4d,0x20,0x69,0x6e,0x62,0x6f,0x78,0x20,0x61,0x6e,0x64,0x20,0x6f,0x75,0x74,0x62,0x6f,0x78,0x20,0x6f,0x6e,0x20,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x6d,0x49,0x6e,0x62,0x6f,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6d,0x49,0x6e,0x62,0x6f,0x78,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x27,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6c,0x6f,0x67,0x2d,0x65,0x6e,0x74,0x72,0x79,0x22,0x3e,0x4e,0x6f,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x20,0x79,0x65,0x74,0x2e,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x6d,0x4f,0x75,0x74,0x62,0x6f,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6d,0x4f,0x75,0x74,0x62,0x6f,0x78,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x27,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x53,0x68,0x6f,0x77,0x4d,0x61,0x69,0x6e,0x49,0x6e,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x20,0x3d,0x20,0x73,0x68,0x6f,0x77,0x4d,0x61,0x69,0x6e,0x49,0x6e,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x68,0x6f,0x77,0x4d,0x61,0x69,0x6e,0x49,0x6e,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x53,0x68,0x6f,0x77,0x4d,0x61,0x69,0x6e,0x49,0x6e,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x6d,0x6f,0x76,0x65,0x64,0x20,0x73,0x68,0x6f,0x77,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x20,0x63,0x61,0x6c,0x6c,0x20,0x2d,0x20,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x20,0x6e,0x6f,0x77,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x64,0x20,0x62,0x79,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x41,0x64,0x6d,0x69,0x6e,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x56,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x28,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x42,0x74,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x42,0x74,0x6e,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x63,0x6c,0x69,0x63,0x6b,0x27,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x28,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x2e,0x70,0x72,0x65,0x76,0x65,0x6e,0x74,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x61,0x64,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x73,0x75,0x62,0x6d,0x69,0x74,0x27,0x2c,0x20,0x73,0x61,0x76,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x61,0x6e,0x63,0x65,0x6c,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x42,0x74,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6e,0x63,0x65,0x6c,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x42,0x74,0x6e,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x63,0x6c,0x69,0x63,0x6b,0x27,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x28,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x2e,0x70,0x72,0x65,0x76,0x65,0x6e,0x74,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x64,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,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,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x54,0x52,0x45,0x41,0x4d,0x4c,0x49,0x4e,0x45,0x44,0x20,0x41,0x55,0x54,0x48,0x20,0x52,0x55,0x4c,0x45,0x20,0x46,0x55,0x4e,0x43,0x54,0x49,0x4f,0x4e,0x53,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,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,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x74,0x69,0x6c,0x69,0x74,0x79,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x20,0x63,0x6f,0x6e,0x76,0x65,0x72,0x74,0x20,0x6e,0x73,0x65,0x63,0x20,0x74,0x6f,0x20,0x68,0x65,0x78,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x6f,0x72,0x20,0x6e,0x70,0x75,0x62,0x20,0x74,0x6f,0x20,0x68,0x65,0x78,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x73,0x65,0x63,0x54,0x6f,0x48,0x65,0x78,0x28,0x69,0x6e,0x70,0x75,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x6e,0x70,0x75,0x74,0x20,0x7c,0x7c,0x20,0x69,0x6e,0x70,0x75,0x74,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x72,0x69,0x6d,0x6d,0x65,0x64,0x20,0x3d,0x20,0x69,0x6e,0x70,0x75,0x74,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x66,0x20,0x69,0x74,0x27,0x73,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x36,0x34,0x2d,0x63,0x68,0x61,0x72,0x20,0x68,0x65,0x78,0x2c,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x73,0x2d,0x69,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x2f,0x5e,0x5b,0x30,0x2d,0x39,0x61,0x2d,0x66,0x41,0x2d,0x46,0x5d,0x7b,0x36,0x34,0x7d,0x24,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x74,0x72,0x69,0x6d,0x6d,0x65,0x64,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x69,0x6d,0x6d,0x65,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x66,0x20,0x69,0x74,0x20,0x73,0x74,0x61,0x72,0x74,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x6e,0x73,0x65,0x63,0x31,0x2c,0x20,0x74,0x72,0x79,0x20,0x74,0x6f,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x72,0x69,0x6d,0x6d,0x65,0x64,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x27,0x6e,0x73,0x65,0x63,0x31,0x27,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x20,0x26,0x26,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x6e,0x69,0x70,0x31,0x39,0x20,0x26,0x26,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x6e,0x69,0x70,0x31,0x39,0x2e,0x64,0x65,0x63,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x64,0x20,0x3d,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x6e,0x69,0x70,0x31,0x39,0x2e,0x64,0x65,0x63,0x6f,0x64,0x65,0x28,0x74,0x72,0x69,0x6d,0x6d,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x65,0x63,0x6f,0x64,0x65,0x64,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x6e,0x73,0x65,0x63,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x64,0x69,0x66,0x66,0x65,0x72,0x65,0x6e,0x74,0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x73,0x20,0x6f,0x66,0x20,0x6e,0x6f,0x73,0x74,0x72,0x2d,0x74,0x6f,0x6f,0x6c,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x64,0x2e,0x64,0x61,0x74,0x61,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x73,0x74,0x72,0x69,0x6e,0x67,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x76,0x31,0x20,0x73,0x74,0x79,0x6c,0x65,0x20,0x2d,0x20,0x64,0x61,0x74,0x61,0x20,0x69,0x73,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x68,0x65,0x78,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x64,0x2e,0x64,0x61,0x74,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x76,0x32,0x20,0x73,0x74,0x79,0x6c,0x65,0x20,0x2d,0x20,0x64,0x61,0x74,0x61,0x20,0x69,0x73,0x20,0x55,0x69,0x6e,0x74,0x38,0x41,0x72,0x72,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x65,0x78,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x66,0x72,0x6f,0x6d,0x28,0x64,0x65,0x63,0x6f,0x64,0x65,0x64,0x2e,0x64,0x61,0x74,0x61,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x6d,0x61,0x70,0x28,0x62,0x20,0x3d,0x3e,0x20,0x62,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x31,0x36,0x29,0x2e,0x70,0x61,0x64,0x53,0x74,0x61,0x72,0x74,0x28,0x32,0x2c,0x20,0x27,0x30,0x27,0x29,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x27,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x68,0x65,0x78,0x50,0x75,0x62,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x20,0x6e,0x73,0x65,0x63,0x3a,0x27,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x66,0x20,0x69,0x74,0x20,0x73,0x74,0x61,0x72,0x74,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x6e,0x70,0x75,0x62,0x31,0x2c,0x20,0x74,0x72,0x79,0x20,0x74,0x6f,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x20,0x74,0x6f,0x20,0x68,0x65,0x78,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x72,0x69,0x6d,0x6d,0x65,0x64,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x27,0x6e,0x70,0x75,0x62,0x31,0x27,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x20,0x26,0x26,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x6e,0x69,0x70,0x31,0x39,0x20,0x26,0x26,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x6e,0x69,0x70,0x31,0x39,0x2e,0x64,0x65,0x63,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x64,0x20,0x3d,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x6e,0x69,0x70,0x31,0x39,0x2e,0x64,0x65,0x63,0x6f,0x64,0x65,0x28,0x74,0x72,0x69,0x6d,0x6d,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x65,0x63,0x6f,0x64,0x65,0x64,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x6e,0x70,0x75,0x62,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x64,0x69,0x66,0x66,0x65,0x72,0x65,0x6e,0x74,0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x73,0x20,0x6f,0x66,0x20,0x6e,0x6f,0x73,0x74,0x72,0x2d,0x74,0x6f,0x6f,0x6c,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x64,0x2e,0x64,0x61,0x74,0x61,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x73,0x74,0x72,0x69,0x6e,0x67,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x76,0x31,0x20,0x73,0x74,0x79,0x6c,0x65,0x20,0x2d,0x20,0x64,0x61,0x74,0x61,0x20,0x69,0x73,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x68,0x65,0x78,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x64,0x2e,0x64,0x61,0x74,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x76,0x32,0x20,0x73,0x74,0x79,0x6c,0x65,0x20,0x2d,0x20,0x64,0x61,0x74,0x61,0x20,0x69,0x73,0x20,0x55,0x69,0x6e,0x74,0x38,0x41,0x72,0x72,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x65,0x78,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x66,0x72,0x6f,0x6d,0x28,0x64,0x65,0x63,0x6f,0x64,0x65,0x64,0x2e,0x64,0x61,0x74,0x61,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x6d,0x61,0x70,0x28,0x62,0x20,0x3d,0x3e,0x20,0x62,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x31,0x36,0x29,0x2e,0x70,0x61,0x64,0x53,0x74,0x61,0x72,0x74,0x28,0x32,0x2c,0x20,0x27,0x30,0x27,0x29,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x27,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x68,0x65,0x78,0x50,0x75,0x62,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x20,0x6e,0x70,0x75,0x62,0x3a,0x27,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x20,0x2f,0x2f,0x20,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x64,0x64,0x20,0x62,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x20,0x72,0x75,0x6c,0x65,0x20,0x28,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x20,0x74,0x6f,0x20,0x75,0x73,0x65,0x20,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x65,0x64,0x20,0x69,0x6e,0x70,0x75,0x74,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x64,0x64,0x42,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x52,0x75,0x6c,0x65,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x50,0x75,0x62,0x6b,0x65,0x79,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x6e,0x70,0x75,0x74,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x70,0x75,0x74,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x6e,0x70,0x75,0x74,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x65,0x6e,0x74,0x65,0x72,0x20,0x61,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x6f,0x72,0x20,0x6e,0x73,0x65,0x63,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6f,0x6e,0x76,0x65,0x72,0x74,0x20,0x6e,0x73,0x65,0x63,0x20,0x6f,0x72,0x20,0x6e,0x70,0x75,0x62,0x20,0x74,0x6f,0x20,0x68,0x65,0x78,0x20,0x69,0x66,0x20,0x6e,0x65,0x65,0x64,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x65,0x78,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x6e,0x73,0x65,0x63,0x54,0x6f,0x48,0x65,0x78,0x28,0x69,0x6e,0x70,0x75,0x74,0x56,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x68,0x65,0x78,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x2e,0x20,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x65,0x6e,0x74,0x65,0x72,0x20,0x6e,0x73,0x65,0x63,0x31,0x2e,0x2e,0x2e,0x2c,0x20,0x6e,0x70,0x75,0x62,0x31,0x2e,0x2e,0x2e,0x2c,0x20,0x6f,0x72,0x20,0x36,0x34,0x2d,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x20,0x68,0x65,0x78,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x20,0x68,0x65,0x78,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x65,0x78,0x50,0x75,0x62,0x6b,0x65,0x79,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x21,0x3d,0x3d,0x20,0x36,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2e,0x20,0x4d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x65,0x78,0x61,0x63,0x74,0x6c,0x79,0x20,0x36,0x34,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x41,0x64,0x64,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x62,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x64,0x61,0x74,0x61,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x75,0x6c,0x65,0x44,0x61,0x74,0x61,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x3a,0x20,0x27,0x70,0x75,0x62,0x6b,0x65,0x79,0x5f,0x62,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x74,0x79,0x70,0x65,0x3a,0x20,0x27,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x3a,0x20,0x68,0x65,0x78,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x27,0x64,0x65,0x6e,0x79,0x27,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x64,0x64,0x20,0x74,0x6f,0x20,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x20,0x71,0x75,0x65,0x75,0x65,0x20,0x66,0x6f,0x72,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x64,0x64,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x56,0x69,0x61,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x28,0x72,0x75,0x6c,0x65,0x44,0x61,0x74,0x61,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x74,0x68,0x65,0x6e,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x24,0x7b,0x68,0x65,0x78,0x50,0x75,0x62,0x6b,0x65,0x79,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x30,0x2c,0x20,0x31,0x36,0x29,0x7d,0x2e,0x2e,0x2e,0x20,0x61,0x64,0x64,0x65,0x64,0x20,0x74,0x6f,0x20,0x62,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x27,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x66,0x72,0x65,0x73,0x68,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x69,0x66,0x20,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x26,0x26,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x21,0x3d,0x3d,0x20,0x27,0x6e,0x6f,0x6e,0x65,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x61,0x64,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x63,0x61,0x74,0x63,0x68,0x28,0x65,0x72,0x72,0x6f,0x72,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x61,0x64,0x64,0x20,0x72,0x75,0x6c,0x65,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x64,0x64,0x20,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x20,0x72,0x75,0x6c,0x65,0x20,0x28,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x20,0x74,0x6f,0x20,0x75,0x73,0x65,0x20,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x65,0x64,0x20,0x69,0x6e,0x70,0x75,0x74,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x64,0x64,0x57,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x52,0x75,0x6c,0x65,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x50,0x75,0x62,0x6b,0x65,0x79,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x44,0x69,0x76,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x57,0x61,0x72,0x6e,0x69,0x6e,0x67,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x6e,0x70,0x75,0x74,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x70,0x75,0x74,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x6e,0x70,0x75,0x74,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x65,0x6e,0x74,0x65,0x72,0x20,0x61,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x6f,0x72,0x20,0x6e,0x73,0x65,0x63,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6f,0x6e,0x76,0x65,0x72,0x74,0x20,0x6e,0x73,0x65,0x63,0x20,0x6f,0x72,0x20,0x6e,0x70,0x75,0x62,0x20,0x74,0x6f,0x20,0x68,0x65,0x78,0x20,0x69,0x66,0x20,0x6e,0x65,0x65,0x64,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x65,0x78,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x6e,0x73,0x65,0x63,0x54,0x6f,0x48,0x65,0x78,0x28,0x69,0x6e,0x70,0x75,0x74,0x56,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x68,0x65,0x78,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x2e,0x20,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x65,0x6e,0x74,0x65,0x72,0x20,0x6e,0x73,0x65,0x63,0x31,0x2e,0x2e,0x2e,0x2c,0x20,0x6e,0x70,0x75,0x62,0x31,0x2e,0x2e,0x2e,0x2c,0x20,0x6f,0x72,0x20,0x36,0x34,0x2d,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x20,0x68,0x65,0x78,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x20,0x68,0x65,0x78,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x65,0x78,0x50,0x75,0x62,0x6b,0x65,0x79,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x21,0x3d,0x3d,0x20,0x36,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2e,0x20,0x4d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x65,0x78,0x61,0x63,0x74,0x6c,0x79,0x20,0x36,0x34,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x68,0x6f,0x77,0x20,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x20,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x44,0x69,0x76,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x44,0x69,0x76,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x27,0x62,0x6c,0x6f,0x63,0x6b,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x41,0x64,0x64,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x64,0x61,0x74,0x61,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x75,0x6c,0x65,0x44,0x61,0x74,0x61,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x3a,0x20,0x27,0x70,0x75,0x62,0x6b,0x65,0x79,0x5f,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x74,0x79,0x70,0x65,0x3a,0x20,0x27,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x3a,0x20,0x68,0x65,0x78,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x27,0x61,0x6c,0x6c,0x6f,0x77,0x27,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x64,0x64,0x20,0x74,0x6f,0x20,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x20,0x71,0x75,0x65,0x75,0x65,0x20,0x66,0x6f,0x72,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x64,0x64,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x56,0x69,0x61,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x28,0x72,0x75,0x6c,0x65,0x44,0x61,0x74,0x61,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x74,0x68,0x65,0x6e,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x24,0x7b,0x68,0x65,0x78,0x50,0x75,0x62,0x6b,0x65,0x79,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x30,0x2c,0x20,0x31,0x36,0x29,0x7d,0x2e,0x2e,0x2e,0x20,0x61,0x64,0x64,0x65,0x64,0x20,0x74,0x6f,0x20,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x27,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x66,0x72,0x65,0x73,0x68,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x69,0x66,0x20,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x26,0x26,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x21,0x3d,0x3d,0x20,0x27,0x6e,0x6f,0x6e,0x65,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x61,0x64,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x63,0x61,0x74,0x63,0x68,0x28,0x65,0x72,0x72,0x6f,0x72,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x61,0x64,0x64,0x20,0x72,0x75,0x6c,0x65,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x64,0x64,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x76,0x69,0x61,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x28,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x36,0x20,0x65,0x76,0x65,0x6e,0x74,0x29,0x20,0x2d,0x20,0x46,0x49,0x58,0x45,0x44,0x20,0x74,0x6f,0x20,0x6d,0x61,0x74,0x63,0x68,0x20,0x77,0x6f,0x72,0x6b,0x69,0x6e,0x67,0x20,0x74,0x65,0x73,0x74,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x64,0x64,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x56,0x69,0x61,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x28,0x72,0x75,0x6c,0x65,0x44,0x61,0x74,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x7c,0x7c,0x20,0x21,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x4d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x6f,0x20,0x61,0x64,0x64,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x41,0x64,0x64,0x69,0x6e,0x67,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x3a,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x44,0x61,0x74,0x61,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x7d,0x20,0x2d,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x44,0x61,0x74,0x61,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x30,0x2c,0x20,0x31,0x36,0x29,0x7d,0x2e,0x2e,0x2e,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4d,0x61,0x70,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x2d,0x73,0x69,0x64,0x65,0x20,0x72,0x75,0x6c,0x65,0x20,0x74,0x79,0x70,0x65,0x73,0x20,0x74,0x6f,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x20,0x28,0x6d,0x61,0x74,0x63,0x68,0x69,0x6e,0x67,0x20,0x77,0x6f,0x72,0x6b,0x69,0x6e,0x67,0x20,0x74,0x65,0x73,0x74,0x73,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x52,0x75,0x6c,0x65,0x54,0x79,0x70,0x65,0x2c,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x54,0x79,0x70,0x65,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x77,0x69,0x74,0x63,0x68,0x20,0x28,0x72,0x75,0x6c,0x65,0x44,0x61,0x74,0x61,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x27,0x70,0x75,0x62,0x6b,0x65,0x79,0x5f,0x62,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x27,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x52,0x75,0x6c,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x27,0x62,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x27,0x70,0x75,0x62,0x6b,0x65,0x79,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x27,0x70,0x75,0x62,0x6b,0x65,0x79,0x5f,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x27,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x52,0x75,0x6c,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x27,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x27,0x70,0x75,0x62,0x6b,0x65,0x79,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x27,0x68,0x61,0x73,0x68,0x5f,0x62,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x27,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x52,0x75,0x6c,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x27,0x62,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x27,0x68,0x61,0x73,0x68,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x55,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x20,0x72,0x75,0x6c,0x65,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x44,0x61,0x74,0x61,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6d,0x65,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x20,0x61,0x73,0x20,0x77,0x6f,0x72,0x6b,0x69,0x6e,0x67,0x20,0x74,0x65,0x73,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x6f,0x72,0x6d,0x61,0x74,0x3a,0x20,0x5b,0x22,0x62,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x22,0x2c,0x20,0x22,0x70,0x75,0x62,0x6b,0x65,0x79,0x22,0x2c,0x20,0x22,0x61,0x62,0x63,0x31,0x32,0x33,0x2e,0x2e,0x2e,0x22,0x5d,0x20,0x6f,0x72,0x20,0x5b,0x22,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x22,0x2c,0x20,0x22,0x70,0x75,0x62,0x6b,0x65,0x79,0x22,0x2c,0x20,0x22,0x64,0x65,0x66,0x34,0x35,0x36,0x2e,0x2e,0x2e,0x22,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x20,0x3d,0x20,0x5b,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x52,0x75,0x6c,0x65,0x54,0x79,0x70,0x65,0x2c,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x54,0x79,0x70,0x65,0x2c,0x20,0x72,0x75,0x6c,0x65,0x44,0x61,0x74,0x61,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x5d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6c,0x79,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x46,0x6f,0x72,0x52,0x65,0x6c,0x61,0x79,0x28,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x20,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x36,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x75,0x74,0x68,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x20,0x32,0x33,0x34,0x35,0x36,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x3a,0x20,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x2f,0x20,0x31,0x30,0x30,0x30,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x73,0x3a,0x20,0x5b,0x5b,0x22,0x70,0x22,0x2c,0x20,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x5d,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x45,0x42,0x55,0x47,0x3a,0x20,0x4c,0x6f,0x67,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6d,0x70,0x6c,0x65,0x74,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x73,0x74,0x72,0x75,0x63,0x74,0x75,0x72,0x65,0x20,0x62,0x65,0x69,0x6e,0x67,0x20,0x73,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x41,0x55,0x54,0x48,0x20,0x52,0x55,0x4c,0x45,0x20,0x45,0x56,0x45,0x4e,0x54,0x20,0x44,0x45,0x42,0x55,0x47,0x20,0x28,0x41,0x64,0x6d,0x69,0x6e,0x69,0x73,0x74,0x72,0x61,0x74,0x6f,0x72,0x20,0x41,0x50,0x49,0x29,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x4f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x20,0x52,0x75,0x6c,0x65,0x20,0x44,0x61,0x74,0x61,0x3a,0x27,0x2c,0x20,0x72,0x75,0x6c,0x65,0x44,0x61,0x74,0x61,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x43,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x41,0x72,0x72,0x61,0x79,0x3a,0x27,0x2c,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x20,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x27,0x2c,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x30,0x2c,0x20,0x35,0x30,0x29,0x20,0x2b,0x20,0x27,0x2e,0x2e,0x2e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x41,0x75,0x74,0x68,0x20,0x45,0x76,0x65,0x6e,0x74,0x20,0x28,0x62,0x65,0x66,0x6f,0x72,0x65,0x20,0x73,0x69,0x67,0x6e,0x69,0x6e,0x67,0x29,0x3a,0x27,0x2c,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x61,0x75,0x74,0x68,0x45,0x76,0x65,0x6e,0x74,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x32,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x45,0x4e,0x44,0x20,0x41,0x55,0x54,0x48,0x20,0x52,0x55,0x4c,0x45,0x20,0x45,0x56,0x45,0x4e,0x54,0x20,0x44,0x45,0x42,0x55,0x47,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x69,0x67,0x6e,0x20,0x74,0x68,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x73,0x69,0x67,0x6e,0x45,0x76,0x65,0x6e,0x74,0x28,0x61,0x75,0x74,0x68,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x2e,0x73,0x69,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x76,0x65,0x6e,0x74,0x20,0x73,0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x76,0x69,0x61,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x77,0x69,0x74,0x68,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x55,0x72,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x28,0x5b,0x75,0x72,0x6c,0x5d,0x2c,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x20,0x70,0x65,0x72,0x2d,0x72,0x65,0x6c,0x61,0x79,0x20,0x6f,0x75,0x74,0x63,0x6f,0x6d,0x65,0x73,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x20,0x6f,0x66,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6e,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x66,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6c,0x66,0x69,0x6c,0x6c,0x65,0x64,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0xe2,0x9c,0x85,0x20,0x41,0x64,0x64,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x20,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x28,0x24,0x7b,0x75,0x72,0x6c,0x7d,0x29,0x3a,0x20,0x45,0x76,0x65,0x6e,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x41,0x64,0x64,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x60,0xe2,0x9d,0x8c,0x20,0x41,0x64,0x64,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x20,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x28,0x24,0x7b,0x75,0x72,0x6c,0x7d,0x29,0x3a,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x60,0x2c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x41,0x64,0x64,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x69,0x66,0x20,0x61,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x6d,0x61,0x70,0x28,0x28,0x72,0x2c,0x20,0x69,0x29,0x20,0x3d,0x3e,0x20,0x60,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x27,0x3b,0x20,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x41,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x65,0x64,0x20,0x61,0x64,0x64,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x20,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x41,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x61,0x64,0x64,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x61,0x64,0x64,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,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,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x45,0x53,0x54,0x20,0x46,0x55,0x4e,0x43,0x54,0x49,0x4f,0x4e,0x53,0x20,0x46,0x4f,0x52,0x20,0x41,0x44,0x4d,0x49,0x4e,0x20,0x41,0x50,0x49,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,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,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x65,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x6c,0x6f,0x67,0x67,0x69,0x6e,0x67,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x2c,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x65,0x73,0x74,0x4c,0x6f,0x67,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x74,0x65,0x73,0x74,0x2d,0x65,0x76,0x65,0x6e,0x74,0x2d,0x6c,0x6f,0x67,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x65,0x73,0x74,0x4c,0x6f,0x67,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x44,0x61,0x74,0x65,0x28,0x29,0x2e,0x74,0x6f,0x49,0x53,0x4f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x27,0x54,0x27,0x29,0x5b,0x31,0x5d,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x27,0x2e,0x27,0x29,0x5b,0x30,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x6f,0x67,0x45,0x6e,0x74,0x72,0x79,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x27,0x64,0x69,0x76,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x45,0x6e,0x74,0x72,0x79,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x27,0x6c,0x6f,0x67,0x2d,0x65,0x6e,0x74,0x72,0x79,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x53,0x45,0x4e,0x54,0x27,0x20,0x3f,0x20,0x27,0x23,0x30,0x30,0x37,0x62,0x66,0x66,0x27,0x20,0x3a,0x20,0x27,0x23,0x32,0x38,0x61,0x37,0x34,0x35,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x45,0x6e,0x74,0x72,0x79,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x73,0x70,0x61,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6c,0x6f,0x67,0x2d,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x22,0x3e,0x24,0x7b,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x7d,0x3c,0x2f,0x73,0x70,0x61,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x73,0x70,0x61,0x6e,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x24,0x7b,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x43,0x6f,0x6c,0x6f,0x72,0x7d,0x3b,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x62,0x6f,0x6c,0x64,0x3b,0x22,0x3e,0x5b,0x24,0x7b,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x7d,0x5d,0x3c,0x2f,0x73,0x70,0x61,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x73,0x70,0x61,0x6e,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x36,0x36,0x36,0x3b,0x22,0x3e,0x5b,0x24,0x7b,0x74,0x79,0x70,0x65,0x7d,0x5d,0x3c,0x2f,0x73,0x70,0x61,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x24,0x7b,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x73,0x74,0x4c,0x6f,0x67,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x43,0x68,0x69,0x6c,0x64,0x28,0x6c,0x6f,0x67,0x45,0x6e,0x74,0x72,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x73,0x74,0x4c,0x6f,0x67,0x2e,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x54,0x6f,0x70,0x20,0x3d,0x20,0x74,0x65,0x73,0x74,0x4c,0x6f,0x67,0x2e,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x48,0x65,0x69,0x67,0x68,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x65,0x73,0x74,0x3a,0x20,0x47,0x65,0x74,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x65,0x73,0x74,0x47,0x65,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x7c,0x7c,0x20,0x21,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x27,0x4d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x6f,0x20,0x74,0x65,0x73,0x74,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x41,0x50,0x49,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x27,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x27,0x54,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x47,0x65,0x74,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x73,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x54,0x45,0x53,0x54,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x66,0x6f,0x72,0x20,0x67,0x65,0x74,0x74,0x69,0x6e,0x67,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x20,0x3d,0x20,0x27,0x5b,0x22,0x61,0x75,0x74,0x68,0x5f,0x71,0x75,0x65,0x72,0x79,0x22,0x2c,0x20,0x22,0x61,0x6c,0x6c,0x22,0x5d,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x46,0x6f,0x72,0x52,0x65,0x6c,0x61,0x79,0x28,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x61,0x75,0x74,0x68,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x36,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x75,0x74,0x68,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x20,0x32,0x33,0x34,0x35,0x36,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x3a,0x20,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x2f,0x20,0x31,0x30,0x30,0x30,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x73,0x3a,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x22,0x70,0x22,0x2c,0x20,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x69,0x67,0x6e,0x20,0x74,0x68,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x73,0x69,0x67,0x6e,0x45,0x76,0x65,0x6e,0x74,0x28,0x61,0x75,0x74,0x68,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x2e,0x73,0x69,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x76,0x65,0x6e,0x74,0x20,0x73,0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x53,0x45,0x4e,0x54,0x27,0x2c,0x20,0x60,0x47,0x65,0x74,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x73,0x20,0x65,0x76,0x65,0x6e,0x74,0x3a,0x20,0x24,0x7b,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x7d,0x60,0x2c,0x20,0x27,0x45,0x56,0x45,0x4e,0x54,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x76,0x69,0x61,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x77,0x69,0x74,0x68,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x55,0x72,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x28,0x5b,0x75,0x72,0x6c,0x5d,0x2c,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x20,0x70,0x65,0x72,0x2d,0x72,0x65,0x6c,0x61,0x79,0x20,0x6f,0x75,0x74,0x63,0x6f,0x6d,0x65,0x73,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x20,0x6f,0x66,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6e,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x66,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6c,0x66,0x69,0x6c,0x6c,0x65,0x64,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x54,0x65,0x73,0x74,0x20,0x41,0x64,0x64,0x20,0x42,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x54,0x65,0x73,0x74,0x20,0x41,0x64,0x64,0x20,0x42,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x69,0x66,0x20,0x61,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x6d,0x61,0x70,0x28,0x28,0x72,0x2c,0x20,0x69,0x29,0x20,0x3d,0x3e,0x20,0x60,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x27,0x3b,0x20,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x41,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x65,0x64,0x20,0x74,0x65,0x73,0x74,0x20,0x61,0x64,0x64,0x20,0x62,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x20,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x27,0x47,0x65,0x74,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x73,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x73,0x65,0x6e,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x27,0x2c,0x20,0x27,0x53,0x55,0x43,0x43,0x45,0x53,0x53,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x47,0x65,0x74,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x73,0x20,0x74,0x65,0x73,0x74,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x65,0x73,0x74,0x3a,0x20,0x43,0x6c,0x65,0x61,0x72,0x20,0x41,0x6c,0x6c,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x65,0x73,0x74,0x43,0x6c,0x65,0x61,0x72,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x7c,0x7c,0x20,0x21,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x27,0x4d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x6f,0x20,0x74,0x65,0x73,0x74,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x41,0x50,0x49,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x27,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x27,0x54,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x43,0x6c,0x65,0x61,0x72,0x20,0x41,0x6c,0x6c,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x73,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x54,0x45,0x53,0x54,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x66,0x6f,0x72,0x20,0x63,0x6c,0x65,0x61,0x72,0x69,0x6e,0x67,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x20,0x3d,0x20,0x27,0x5b,0x22,0x73,0x79,0x73,0x74,0x65,0x6d,0x5f,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x22,0x2c,0x20,0x22,0x63,0x6c,0x65,0x61,0x72,0x5f,0x61,0x6c,0x6c,0x5f,0x61,0x75,0x74,0x68,0x5f,0x72,0x75,0x6c,0x65,0x73,0x22,0x5d,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x46,0x6f,0x72,0x52,0x65,0x6c,0x61,0x79,0x28,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x63,0x6c,0x65,0x61,0x72,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x36,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x75,0x74,0x68,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x20,0x32,0x33,0x34,0x35,0x36,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x3a,0x20,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x2f,0x20,0x31,0x30,0x30,0x30,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x73,0x3a,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x22,0x70,0x22,0x2c,0x20,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x69,0x67,0x6e,0x20,0x74,0x68,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x73,0x69,0x67,0x6e,0x45,0x76,0x65,0x6e,0x74,0x28,0x61,0x75,0x74,0x68,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x2e,0x73,0x69,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x76,0x65,0x6e,0x74,0x20,0x73,0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x53,0x45,0x4e,0x54,0x27,0x2c,0x20,0x60,0x43,0x6c,0x65,0x61,0x72,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x73,0x20,0x65,0x76,0x65,0x6e,0x74,0x3a,0x20,0x24,0x7b,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x7d,0x60,0x2c,0x20,0x27,0x45,0x56,0x45,0x4e,0x54,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x76,0x69,0x61,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x77,0x69,0x74,0x68,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x55,0x72,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x28,0x5b,0x75,0x72,0x6c,0x5d,0x2c,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x20,0x70,0x65,0x72,0x2d,0x72,0x65,0x6c,0x61,0x79,0x20,0x6f,0x75,0x74,0x63,0x6f,0x6d,0x65,0x73,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x20,0x6f,0x66,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6e,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x66,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6c,0x66,0x69,0x6c,0x6c,0x65,0x64,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x54,0x65,0x73,0x74,0x20,0x41,0x64,0x64,0x20,0x57,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x54,0x65,0x73,0x74,0x20,0x41,0x64,0x64,0x20,0x57,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x69,0x66,0x20,0x61,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x6d,0x61,0x70,0x28,0x28,0x72,0x2c,0x20,0x69,0x29,0x20,0x3d,0x3e,0x20,0x60,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x27,0x3b,0x20,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x41,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x65,0x64,0x20,0x74,0x65,0x73,0x74,0x20,0x61,0x64,0x64,0x20,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x20,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x27,0x43,0x6c,0x65,0x61,0x72,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x73,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x73,0x65,0x6e,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x27,0x2c,0x20,0x27,0x53,0x55,0x43,0x43,0x45,0x53,0x53,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x43,0x6c,0x65,0x61,0x72,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x73,0x20,0x74,0x65,0x73,0x74,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x65,0x73,0x74,0x3a,0x20,0x41,0x64,0x64,0x20,0x42,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x65,0x73,0x74,0x41,0x64,0x64,0x42,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x49,0x6e,0x70,0x75,0x74,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x74,0x65,0x73,0x74,0x2d,0x70,0x75,0x62,0x6b,0x65,0x79,0x2d,0x69,0x6e,0x70,0x75,0x74,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x49,0x6e,0x70,0x75,0x74,0x20,0x3f,0x20,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x49,0x6e,0x70,0x75,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x20,0x3a,0x20,0x27,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x61,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x74,0x65,0x73,0x74,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x69,0x66,0x20,0x6e,0x6f,0x6e,0x65,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x27,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x61,0x62,0x63,0x64,0x65,0x66,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x55,0x73,0x69,0x6e,0x67,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x74,0x65,0x73,0x74,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x24,0x7b,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x7d,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x7c,0x7c,0x20,0x21,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x27,0x4d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x6f,0x20,0x74,0x65,0x73,0x74,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x41,0x50,0x49,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x27,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x54,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x41,0x64,0x64,0x20,0x42,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x20,0x66,0x6f,0x72,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x24,0x7b,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x30,0x2c,0x20,0x31,0x36,0x29,0x7d,0x2e,0x2e,0x2e,0x60,0x2c,0x20,0x27,0x54,0x45,0x53,0x54,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x66,0x6f,0x72,0x20,0x61,0x64,0x64,0x69,0x6e,0x67,0x20,0x62,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x20,0x72,0x75,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x20,0x3d,0x20,0x60,0x5b,0x22,0x62,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x22,0x2c,0x20,0x22,0x70,0x75,0x62,0x6b,0x65,0x79,0x22,0x2c,0x20,0x22,0x24,0x7b,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x7d,0x22,0x5d,0x60,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x46,0x6f,0x72,0x52,0x65,0x6c,0x61,0x79,0x28,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x62,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x36,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x75,0x74,0x68,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x20,0x32,0x33,0x34,0x35,0x36,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x3a,0x20,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x2f,0x20,0x31,0x30,0x30,0x30,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x73,0x3a,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x22,0x70,0x22,0x2c,0x20,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x69,0x67,0x6e,0x20,0x74,0x68,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x73,0x69,0x67,0x6e,0x45,0x76,0x65,0x6e,0x74,0x28,0x61,0x75,0x74,0x68,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x2e,0x73,0x69,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x76,0x65,0x6e,0x74,0x20,0x73,0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x53,0x45,0x4e,0x54,0x27,0x2c,0x20,0x60,0x41,0x64,0x64,0x20,0x42,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x3a,0x20,0x24,0x7b,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x7d,0x60,0x2c,0x20,0x27,0x45,0x56,0x45,0x4e,0x54,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x76,0x69,0x61,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x77,0x69,0x74,0x68,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x55,0x72,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x28,0x5b,0x75,0x72,0x6c,0x5d,0x2c,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x20,0x70,0x65,0x72,0x2d,0x72,0x65,0x6c,0x61,0x79,0x20,0x6f,0x75,0x74,0x63,0x6f,0x6d,0x65,0x73,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x20,0x6f,0x66,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6e,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x66,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6c,0x66,0x69,0x6c,0x6c,0x65,0x64,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x54,0x65,0x73,0x74,0x20,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x51,0x75,0x65,0x72,0x79,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x54,0x65,0x73,0x74,0x20,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x51,0x75,0x65,0x72,0x79,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x69,0x66,0x20,0x61,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x6d,0x61,0x70,0x28,0x28,0x72,0x2c,0x20,0x69,0x29,0x20,0x3d,0x3e,0x20,0x60,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x27,0x3b,0x20,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x41,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x65,0x64,0x20,0x74,0x65,0x73,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x20,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x27,0x41,0x64,0x64,0x20,0x42,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x73,0x65,0x6e,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x27,0x2c,0x20,0x27,0x53,0x55,0x43,0x43,0x45,0x53,0x53,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x41,0x64,0x64,0x20,0x42,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x20,0x74,0x65,0x73,0x74,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x65,0x73,0x74,0x3a,0x20,0x41,0x64,0x64,0x20,0x57,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x65,0x73,0x74,0x41,0x64,0x64,0x57,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x49,0x6e,0x70,0x75,0x74,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x74,0x65,0x73,0x74,0x2d,0x70,0x75,0x62,0x6b,0x65,0x79,0x2d,0x69,0x6e,0x70,0x75,0x74,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x49,0x6e,0x70,0x75,0x74,0x20,0x3f,0x20,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x49,0x6e,0x70,0x75,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x20,0x3a,0x20,0x27,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x61,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x74,0x65,0x73,0x74,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x69,0x66,0x20,0x6e,0x6f,0x6e,0x65,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x27,0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x55,0x73,0x69,0x6e,0x67,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x74,0x65,0x73,0x74,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x24,0x7b,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x7d,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x7c,0x7c,0x20,0x21,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x27,0x4d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x6f,0x20,0x74,0x65,0x73,0x74,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x41,0x50,0x49,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x27,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x54,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x41,0x64,0x64,0x20,0x57,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x20,0x66,0x6f,0x72,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x24,0x7b,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x30,0x2c,0x20,0x31,0x36,0x29,0x7d,0x2e,0x2e,0x2e,0x60,0x2c,0x20,0x27,0x54,0x45,0x53,0x54,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x66,0x6f,0x72,0x20,0x61,0x64,0x64,0x69,0x6e,0x67,0x20,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x20,0x72,0x75,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x20,0x3d,0x20,0x60,0x5b,0x22,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x22,0x2c,0x20,0x22,0x70,0x75,0x62,0x6b,0x65,0x79,0x22,0x2c,0x20,0x22,0x24,0x7b,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x7d,0x22,0x5d,0x60,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x46,0x6f,0x72,0x52,0x65,0x6c,0x61,0x79,0x28,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x36,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x75,0x74,0x68,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x20,0x32,0x33,0x34,0x35,0x36,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x3a,0x20,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x2f,0x20,0x31,0x30,0x30,0x30,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x73,0x3a,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x22,0x70,0x22,0x2c,0x20,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x69,0x67,0x6e,0x20,0x74,0x68,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x73,0x69,0x67,0x6e,0x45,0x76,0x65,0x6e,0x74,0x28,0x61,0x75,0x74,0x68,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x2e,0x73,0x69,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x76,0x65,0x6e,0x74,0x20,0x73,0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x53,0x45,0x4e,0x54,0x27,0x2c,0x20,0x60,0x41,0x64,0x64,0x20,0x57,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x3a,0x20,0x24,0x7b,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x7d,0x60,0x2c,0x20,0x27,0x45,0x56,0x45,0x4e,0x54,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x76,0x69,0x61,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x55,0x72,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x28,0x5b,0x75,0x72,0x6c,0x5d,0x2c,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x20,0x70,0x65,0x72,0x2d,0x72,0x65,0x6c,0x61,0x79,0x20,0x6f,0x75,0x74,0x63,0x6f,0x6d,0x65,0x73,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x20,0x6f,0x66,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6e,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x66,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6c,0x66,0x69,0x6c,0x6c,0x65,0x64,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x54,0x65,0x73,0x74,0x20,0x50,0x6f,0x73,0x74,0x20,0x45,0x76,0x65,0x6e,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x54,0x65,0x73,0x74,0x20,0x50,0x6f,0x73,0x74,0x20,0x45,0x76,0x65,0x6e,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x69,0x66,0x20,0x61,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x6d,0x61,0x70,0x28,0x28,0x72,0x2c,0x20,0x69,0x29,0x20,0x3d,0x3e,0x20,0x60,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x27,0x3b,0x20,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x41,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x65,0x64,0x20,0x74,0x65,0x73,0x74,0x20,0x70,0x6f,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x20,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x27,0x41,0x64,0x64,0x20,0x57,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x73,0x65,0x6e,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x27,0x2c,0x20,0x27,0x53,0x55,0x43,0x43,0x45,0x53,0x53,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x41,0x64,0x64,0x20,0x57,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x20,0x74,0x65,0x73,0x74,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x65,0x73,0x74,0x3a,0x20,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x51,0x75,0x65,0x72,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x65,0x73,0x74,0x43,0x6f,0x6e,0x66,0x69,0x67,0x51,0x75,0x65,0x72,0x79,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x7c,0x7c,0x20,0x21,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x27,0x4d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x6f,0x20,0x74,0x65,0x73,0x74,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x41,0x50,0x49,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x27,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x27,0x54,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x51,0x75,0x65,0x72,0x79,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x54,0x45,0x53,0x54,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x66,0x6f,0x72,0x20,0x67,0x65,0x74,0x74,0x69,0x6e,0x67,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x20,0x3d,0x20,0x27,0x5b,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5f,0x71,0x75,0x65,0x72,0x79,0x22,0x2c,0x20,0x22,0x61,0x6c,0x6c,0x22,0x5d,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x46,0x6f,0x72,0x52,0x65,0x6c,0x61,0x79,0x28,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x36,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x20,0x32,0x33,0x34,0x35,0x36,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x3a,0x20,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x2f,0x20,0x31,0x30,0x30,0x30,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x73,0x3a,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x22,0x70,0x22,0x2c,0x20,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x69,0x67,0x6e,0x20,0x74,0x68,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x73,0x69,0x67,0x6e,0x45,0x76,0x65,0x6e,0x74,0x28,0x63,0x6f,0x6e,0x66,0x69,0x67,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x2e,0x73,0x69,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x76,0x65,0x6e,0x74,0x20,0x73,0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x53,0x45,0x4e,0x54,0x27,0x2c,0x20,0x60,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x51,0x75,0x65,0x72,0x79,0x20,0x65,0x76,0x65,0x6e,0x74,0x3a,0x20,0x24,0x7b,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x7d,0x60,0x2c,0x20,0x27,0x45,0x56,0x45,0x4e,0x54,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x76,0x69,0x61,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x77,0x69,0x74,0x68,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x55,0x72,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x28,0x5b,0x75,0x72,0x6c,0x5d,0x2c,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x20,0x70,0x65,0x72,0x2d,0x72,0x65,0x6c,0x61,0x79,0x20,0x6f,0x75,0x74,0x63,0x6f,0x6d,0x65,0x73,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x20,0x6f,0x66,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6e,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x66,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6c,0x66,0x69,0x6c,0x6c,0x65,0x64,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x54,0x65,0x73,0x74,0x20,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x51,0x75,0x65,0x72,0x79,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x54,0x65,0x73,0x74,0x20,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x51,0x75,0x65,0x72,0x79,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x69,0x66,0x20,0x61,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x6d,0x61,0x70,0x28,0x28,0x72,0x2c,0x20,0x69,0x29,0x20,0x3d,0x3e,0x20,0x60,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x27,0x3b,0x20,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x41,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x65,0x64,0x20,0x74,0x65,0x73,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x20,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x27,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x51,0x75,0x65,0x72,0x79,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x73,0x65,0x6e,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x27,0x2c,0x20,0x27,0x53,0x55,0x43,0x43,0x45,0x53,0x53,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x51,0x75,0x65,0x72,0x79,0x20,0x74,0x65,0x73,0x74,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x65,0x73,0x74,0x3a,0x20,0x50,0x6f,0x73,0x74,0x20,0x42,0x61,0x73,0x69,0x63,0x20,0x45,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x65,0x73,0x74,0x50,0x6f,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x7c,0x7c,0x20,0x21,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x27,0x4d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x6f,0x20,0x74,0x65,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x70,0x6f,0x73,0x74,0x69,0x6e,0x67,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x27,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x27,0x54,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x62,0x61,0x73,0x69,0x63,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x70,0x6f,0x73,0x74,0x69,0x6e,0x67,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x54,0x45,0x53,0x54,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x61,0x20,0x73,0x69,0x6d,0x70,0x6c,0x65,0x20,0x6b,0x69,0x6e,0x64,0x20,0x31,0x20,0x74,0x65,0x78,0x74,0x20,0x6e,0x6f,0x74,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x20,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x3a,0x20,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x2f,0x20,0x31,0x30,0x30,0x30,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x73,0x3a,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x22,0x74,0x22,0x2c,0x20,0x22,0x74,0x65,0x73,0x74,0x22,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x22,0x63,0x6c,0x69,0x65,0x6e,0x74,0x22,0x2c,0x20,0x22,0x63,0x2d,0x72,0x65,0x6c,0x61,0x79,0x2d,0x61,0x64,0x6d,0x69,0x6e,0x2d,0x61,0x70,0x69,0x22,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x60,0x54,0x65,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x66,0x72,0x6f,0x6d,0x20,0x43,0x2d,0x52,0x65,0x6c,0x61,0x79,0x20,0x41,0x64,0x6d,0x69,0x6e,0x20,0x41,0x50,0x49,0x20,0x61,0x74,0x20,0x24,0x7b,0x6e,0x65,0x77,0x20,0x44,0x61,0x74,0x65,0x28,0x29,0x2e,0x74,0x6f,0x49,0x53,0x4f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x7d,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x53,0x45,0x4e,0x54,0x27,0x2c,0x20,0x60,0x54,0x65,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x28,0x62,0x65,0x66,0x6f,0x72,0x65,0x20,0x73,0x69,0x67,0x6e,0x69,0x6e,0x67,0x29,0x3a,0x20,0x24,0x7b,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x74,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x29,0x7d,0x60,0x2c,0x20,0x27,0x45,0x56,0x45,0x4e,0x54,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x69,0x67,0x6e,0x20,0x74,0x68,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x30,0x37,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x73,0x69,0x67,0x6e,0x45,0x76,0x65,0x6e,0x74,0x28,0x74,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x2e,0x73,0x69,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x76,0x65,0x6e,0x74,0x20,0x73,0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x53,0x45,0x4e,0x54,0x27,0x2c,0x20,0x60,0x53,0x69,0x67,0x6e,0x65,0x64,0x20,0x74,0x65,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x3a,0x20,0x24,0x7b,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x7d,0x60,0x2c,0x20,0x27,0x45,0x56,0x45,0x4e,0x54,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x76,0x69,0x61,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x74,0x6f,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6d,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x77,0x69,0x74,0x68,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x55,0x72,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x3a,0x20,0x24,0x7b,0x75,0x72,0x6c,0x7d,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x28,0x5b,0x75,0x72,0x6c,0x5d,0x2c,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x20,0x70,0x65,0x72,0x2d,0x72,0x65,0x6c,0x61,0x79,0x20,0x6f,0x75,0x74,0x63,0x6f,0x6d,0x65,0x73,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x20,0x6f,0x66,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6e,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x66,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6c,0x66,0x69,0x6c,0x6c,0x65,0x64,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x54,0x65,0x73,0x74,0x20,0x50,0x6f,0x73,0x74,0x20,0x45,0x76,0x65,0x6e,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x54,0x65,0x73,0x74,0x20,0x50,0x6f,0x73,0x74,0x20,0x45,0x76,0x65,0x6e,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x69,0x66,0x20,0x61,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x6d,0x61,0x70,0x28,0x28,0x72,0x2c,0x20,0x69,0x29,0x20,0x3d,0x3e,0x20,0x60,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x27,0x3b,0x20,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x41,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x65,0x64,0x20,0x74,0x65,0x73,0x74,0x20,0x70,0x6f,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x20,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x27,0x54,0x65,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x21,0x27,0x2c,0x20,0x27,0x53,0x55,0x43,0x43,0x45,0x53,0x53,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x27,0x43,0x68,0x65,0x63,0x6b,0x20,0x69,0x66,0x20,0x74,0x68,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x61,0x70,0x70,0x65,0x61,0x72,0x73,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x61,0x62,0x6f,0x76,0x65,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x50,0x6f,0x73,0x74,0x20,0x45,0x76,0x65,0x6e,0x74,0x20,0x74,0x65,0x73,0x74,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x50,0x6f,0x73,0x74,0x20,0x45,0x76,0x65,0x6e,0x74,0x20,0x74,0x65,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x3a,0x27,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x65,0x6c,0x70,0x65,0x72,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x66,0x6f,0x72,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x46,0x6f,0x72,0x52,0x65,0x6c,0x61,0x79,0x28,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x69,0x6e,0x67,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x24,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7d,0x60,0x2c,0x20,0x27,0x44,0x45,0x42,0x55,0x47,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x47,0x65,0x74,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x70,0x75,0x62,0x6c,0x69,0x63,0x20,0x6b,0x65,0x79,0x20,0x66,0x6f,0x72,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x68,0x65,0x63,0x6b,0x20,0x69,0x66,0x20,0x77,0x65,0x20,0x68,0x61,0x76,0x65,0x20,0x61,0x63,0x63,0x65,0x73,0x73,0x20,0x74,0x6f,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x69,0x6f,0x6e,0x20,0x76,0x69,0x61,0x20,0x6e,0x6f,0x73,0x74,0x72,0x2d,0x74,0x6f,0x6f,0x6c,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x20,0x7c,0x7c,0x20,0x21,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x6e,0x69,0x70,0x34,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x4e,0x49,0x50,0x2d,0x34,0x34,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x20,0x2d,0x20,0x6e,0x6f,0x73,0x74,0x72,0x2d,0x74,0x6f,0x6f,0x6c,0x73,0x20,0x6c,0x69,0x62,0x72,0x61,0x72,0x79,0x20,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x47,0x65,0x74,0x20,0x75,0x73,0x65,0x72,0x27,0x73,0x20,0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x20,0x6b,0x65,0x79,0x20,0x66,0x6f,0x72,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x57,0x65,0x20,0x6e,0x65,0x65,0x64,0x20,0x74,0x6f,0x20,0x75,0x73,0x65,0x20,0x74,0x68,0x65,0x20,0x4e,0x49,0x50,0x2d,0x30,0x37,0x20,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x20,0x67,0x65,0x74,0x20,0x74,0x68,0x65,0x20,0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x20,0x6b,0x65,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x20,0x7c,0x7c,0x20,0x21,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x6e,0x69,0x70,0x34,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x4e,0x49,0x50,0x2d,0x34,0x34,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x20,0x76,0x69,0x61,0x20,0x4e,0x49,0x50,0x2d,0x30,0x37,0x20,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x4e,0x49,0x50,0x2d,0x30,0x37,0x20,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x27,0x73,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x6e,0x69,0x70,0x34,0x34,0x2e,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x28,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x4e,0x49,0x50,0x2d,0x34,0x34,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x65,0x64,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x53,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x60,0x2c,0x20,0x27,0x44,0x45,0x42,0x55,0x47,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x24,0x7b,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x30,0x2c,0x20,0x35,0x30,0x29,0x7d,0x2e,0x2e,0x2e,0x60,0x2c,0x20,0x27,0x44,0x45,0x42,0x55,0x47,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x4e,0x49,0x50,0x2d,0x34,0x34,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x69,0x6f,0x6e,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x3a,0x20,0x54,0x72,0x79,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x6e,0x6f,0x73,0x74,0x72,0x2d,0x74,0x6f,0x6f,0x6c,0x73,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6c,0x79,0x20,0x69,0x66,0x20,0x4e,0x49,0x50,0x2d,0x30,0x37,0x20,0x66,0x61,0x69,0x6c,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x27,0x41,0x74,0x74,0x65,0x6d,0x70,0x74,0x69,0x6e,0x67,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x69,0x6f,0x6e,0x20,0x77,0x69,0x74,0x68,0x20,0x6e,0x6f,0x73,0x74,0x72,0x2d,0x74,0x6f,0x6f,0x6c,0x73,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x44,0x45,0x42,0x55,0x47,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x20,0x7c,0x7c,0x20,0x21,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x6e,0x69,0x70,0x34,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x6e,0x6f,0x73,0x74,0x72,0x2d,0x74,0x6f,0x6f,0x6c,0x73,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x57,0x65,0x20,0x6e,0x65,0x65,0x64,0x20,0x74,0x68,0x65,0x20,0x75,0x73,0x65,0x72,0x27,0x73,0x20,0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x20,0x6b,0x65,0x79,0x2c,0x20,0x62,0x75,0x74,0x20,0x77,0x65,0x20,0x63,0x61,0x6e,0x27,0x74,0x20,0x67,0x65,0x74,0x20,0x69,0x74,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6c,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x61,0x20,0x73,0x65,0x63,0x75,0x72,0x69,0x74,0x79,0x20,0x6c,0x69,0x6d,0x69,0x74,0x61,0x74,0x69,0x6f,0x6e,0x20,0x2d,0x20,0x77,0x65,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x75,0x73,0x65,0x20,0x4e,0x49,0x50,0x2d,0x30,0x37,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x43,0x61,0x6e,0x6e,0x6f,0x74,0x20,0x61,0x63,0x63,0x65,0x73,0x73,0x20,0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x20,0x6b,0x65,0x79,0x20,0x66,0x6f,0x72,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x69,0x6f,0x6e,0x20,0x2d,0x20,0x75,0x73,0x65,0x20,0x4e,0x49,0x50,0x2d,0x30,0x37,0x20,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x45,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x69,0x6f,0x6e,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x45,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x65,0x6e,0x64,0x20,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x44,0x69,0x72,0x65,0x63,0x74,0x20,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x35,0x39,0x20,0x6c,0x61,0x79,0x65,0x72,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x6e,0x64,0x4e,0x49,0x50,0x31,0x37,0x44,0x4d,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x7c,0x7c,0x20,0x21,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x4d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x6f,0x20,0x73,0x65,0x6e,0x64,0x20,0x44,0x4d,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x52,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x20,0x7c,0x7c,0x20,0x21,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x4d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x74,0x6f,0x20,0x73,0x65,0x6e,0x64,0x20,0x44,0x4d,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x3d,0x20,0x64,0x6d,0x4f,0x75,0x74,0x62,0x6f,0x78,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x65,0x6e,0x74,0x65,0x72,0x20,0x61,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x74,0x6f,0x20,0x73,0x65,0x6e,0x64,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x61,0x70,0x61,0x62,0x69,0x6c,0x69,0x74,0x79,0x20,0x63,0x68,0x65,0x63,0x6b,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x20,0x7c,0x7c,0x20,0x21,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x6e,0x69,0x70,0x34,0x34,0x20,0x7c,0x7c,0x20,0x21,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x73,0x69,0x67,0x6e,0x45,0x76,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x44,0x4d,0x73,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x20,0x61,0x20,0x4e,0x49,0x50,0x2d,0x30,0x37,0x20,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x20,0x77,0x69,0x74,0x68,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x27,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x44,0x4d,0x73,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x20,0x61,0x20,0x4e,0x49,0x50,0x2d,0x30,0x37,0x20,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x20,0x77,0x69,0x74,0x68,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x2e,0x20,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x69,0x6e,0x73,0x74,0x61,0x6c,0x6c,0x20,0x61,0x6e,0x64,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x65,0x20,0x61,0x20,0x63,0x6f,0x6d,0x70,0x61,0x74,0x69,0x62,0x6c,0x65,0x20,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x2e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x20,0x7c,0x7c,0x20,0x21,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x53,0x65,0x63,0x72,0x65,0x74,0x4b,0x65,0x79,0x20,0x7c,0x7c,0x20,0x21,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x67,0x65,0x74,0x50,0x75,0x62,0x6c,0x69,0x63,0x4b,0x65,0x79,0x20,0x7c,0x7c,0x20,0x21,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x66,0x69,0x6e,0x61,0x6c,0x69,0x7a,0x65,0x45,0x76,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x20,0x6c,0x69,0x62,0x72,0x61,0x72,0x79,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x20,0x66,0x6f,0x72,0x20,0x65,0x70,0x68,0x65,0x6d,0x65,0x72,0x61,0x6c,0x20,0x6b,0x65,0x79,0x20,0x6f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x73,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x27,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x20,0x6c,0x69,0x62,0x72,0x61,0x72,0x79,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x2e,0x20,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x65,0x6e,0x73,0x75,0x72,0x65,0x20,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x62,0x75,0x6e,0x64,0x6c,0x65,0x2e,0x6a,0x73,0x20,0x69,0x73,0x20,0x6c,0x6f,0x61,0x64,0x65,0x64,0x2e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x53,0x65,0x6e,0x64,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x44,0x4d,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x3a,0x20,0x24,0x7b,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x30,0x2c,0x20,0x35,0x30,0x29,0x7d,0x2e,0x2e,0x2e,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x65,0x70,0x20,0x31,0x3a,0x20,0x42,0x75,0x69,0x6c,0x64,0x20,0x75,0x6e,0x73,0x69,0x67,0x6e,0x65,0x64,0x20,0x72,0x75,0x6d,0x6f,0x72,0x20,0x28,0x6b,0x69,0x6e,0x64,0x20,0x31,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x75,0x6d,0x6f,0x72,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x20,0x31,0x34,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x3a,0x20,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x2f,0x20,0x31,0x30,0x30,0x30,0x29,0x2c,0x20,0x2f,0x2f,0x20,0x43,0x61,0x6e,0x6f,0x6e,0x69,0x63,0x61,0x6c,0x20,0x74,0x69,0x6d,0x65,0x20,0x66,0x6f,0x72,0x20,0x72,0x75,0x6d,0x6f,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x73,0x3a,0x20,0x5b,0x5b,0x22,0x70,0x22,0x2c,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x5d,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4e,0x4f,0x54,0x45,0x3a,0x20,0x52,0x75,0x6d,0x6f,0x72,0x20,0x72,0x65,0x6d,0x61,0x69,0x6e,0x73,0x20,0x75,0x6e,0x73,0x69,0x67,0x6e,0x65,0x64,0x20,0x70,0x65,0x72,0x20,0x4e,0x49,0x50,0x2d,0x35,0x39,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x52,0x75,0x6d,0x6f,0x72,0x20,0x62,0x75,0x69,0x6c,0x74,0x20,0x28,0x75,0x6e,0x73,0x69,0x67,0x6e,0x65,0x64,0x29,0x2c,0x20,0x63,0x72,0x65,0x61,0x74,0x69,0x6e,0x67,0x20,0x73,0x65,0x61,0x6c,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x65,0x70,0x20,0x32,0x3a,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x73,0x65,0x61,0x6c,0x20,0x28,0x6b,0x69,0x6e,0x64,0x20,0x31,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x65,0x61,0x6c,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x20,0x31,0x33,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x3a,0x20,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x4e,0x6f,0x77,0x28,0x29,0x2c,0x20,0x2f,0x2f,0x20,0x52,0x61,0x6e,0x64,0x6f,0x6d,0x69,0x7a,0x65,0x64,0x20,0x74,0x6f,0x20,0x70,0x61,0x73,0x74,0x20,0x66,0x6f,0x72,0x20,0x6d,0x65,0x74,0x61,0x64,0x61,0x74,0x61,0x20,0x70,0x72,0x6f,0x74,0x65,0x63,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x73,0x3a,0x20,0x5b,0x5d,0x2c,0x20,0x2f,0x2f,0x20,0x45,0x6d,0x70,0x74,0x79,0x20,0x74,0x61,0x67,0x73,0x20,0x70,0x65,0x72,0x20,0x4e,0x49,0x50,0x2d,0x35,0x39,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x6e,0x69,0x70,0x34,0x34,0x2e,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x28,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x72,0x75,0x6d,0x6f,0x72,0x29,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x69,0x67,0x6e,0x20,0x73,0x65,0x61,0x6c,0x20,0x77,0x69,0x74,0x68,0x20,0x6c,0x6f,0x6e,0x67,0x2d,0x74,0x65,0x72,0x6d,0x20,0x6b,0x65,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x53,0x65,0x61,0x6c,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x73,0x69,0x67,0x6e,0x45,0x76,0x65,0x6e,0x74,0x28,0x73,0x65,0x61,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x53,0x65,0x61,0x6c,0x20,0x7c,0x7c,0x20,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x53,0x65,0x61,0x6c,0x2e,0x73,0x69,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x73,0x69,0x67,0x6e,0x20,0x73,0x65,0x61,0x6c,0x20,0x65,0x76,0x65,0x6e,0x74,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x53,0x65,0x61,0x6c,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x20,0x61,0x6e,0x64,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x2c,0x20,0x63,0x72,0x65,0x61,0x74,0x69,0x6e,0x67,0x20,0x67,0x69,0x66,0x74,0x20,0x77,0x72,0x61,0x70,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x65,0x70,0x20,0x33,0x3a,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x67,0x69,0x66,0x74,0x20,0x77,0x72,0x61,0x70,0x20,0x28,0x6b,0x69,0x6e,0x64,0x20,0x31,0x30,0x35,0x39,0x29,0x20,0x77,0x69,0x74,0x68,0x20,0x65,0x70,0x68,0x65,0x6d,0x65,0x72,0x61,0x6c,0x20,0x6b,0x65,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x70,0x68,0x65,0x6d,0x65,0x72,0x61,0x6c,0x50,0x72,0x69,0x76,0x20,0x3d,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x53,0x65,0x63,0x72,0x65,0x74,0x4b,0x65,0x79,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x70,0x68,0x65,0x6d,0x65,0x72,0x61,0x6c,0x50,0x75,0x62,0x20,0x3d,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x67,0x65,0x74,0x50,0x75,0x62,0x6c,0x69,0x63,0x4b,0x65,0x79,0x28,0x65,0x70,0x68,0x65,0x6d,0x65,0x72,0x61,0x6c,0x50,0x72,0x69,0x76,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x67,0x69,0x66,0x74,0x57,0x72,0x61,0x70,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x20,0x31,0x30,0x35,0x39,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x65,0x70,0x68,0x65,0x6d,0x65,0x72,0x61,0x6c,0x50,0x75,0x62,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x3a,0x20,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x4e,0x6f,0x77,0x28,0x29,0x2c,0x20,0x2f,0x2f,0x20,0x52,0x61,0x6e,0x64,0x6f,0x6d,0x69,0x7a,0x65,0x64,0x20,0x74,0x6f,0x20,0x70,0x61,0x73,0x74,0x20,0x66,0x6f,0x72,0x20,0x6d,0x65,0x74,0x61,0x64,0x61,0x74,0x61,0x20,0x70,0x72,0x6f,0x74,0x65,0x63,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x73,0x3a,0x20,0x5b,0x5b,0x22,0x70,0x22,0x2c,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x5d,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x6e,0x69,0x70,0x34,0x34,0x2e,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x73,0x69,0x67,0x6e,0x65,0x64,0x53,0x65,0x61,0x6c,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x6e,0x69,0x70,0x34,0x34,0x2e,0x67,0x65,0x74,0x43,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x4b,0x65,0x79,0x28,0x65,0x70,0x68,0x65,0x6d,0x65,0x72,0x61,0x6c,0x50,0x72,0x69,0x76,0x2c,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x69,0x67,0x6e,0x20,0x67,0x69,0x66,0x74,0x20,0x77,0x72,0x61,0x70,0x20,0x77,0x69,0x74,0x68,0x20,0x65,0x70,0x68,0x65,0x6d,0x65,0x72,0x61,0x6c,0x20,0x6b,0x65,0x79,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x66,0x69,0x6e,0x61,0x6c,0x69,0x7a,0x65,0x45,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x47,0x69,0x66,0x74,0x57,0x72,0x61,0x70,0x20,0x3d,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x66,0x69,0x6e,0x61,0x6c,0x69,0x7a,0x65,0x45,0x76,0x65,0x6e,0x74,0x28,0x67,0x69,0x66,0x74,0x57,0x72,0x61,0x70,0x2c,0x20,0x65,0x70,0x68,0x65,0x6d,0x65,0x72,0x61,0x6c,0x50,0x72,0x69,0x76,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x47,0x69,0x66,0x74,0x57,0x72,0x61,0x70,0x20,0x7c,0x7c,0x20,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x47,0x69,0x66,0x74,0x57,0x72,0x61,0x70,0x2e,0x73,0x69,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x73,0x69,0x67,0x6e,0x20,0x67,0x69,0x66,0x74,0x20,0x77,0x72,0x61,0x70,0x20,0x65,0x76,0x65,0x6e,0x74,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x44,0x4d,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x20,0x61,0x6e,0x64,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x20,0x65,0x70,0x68,0x65,0x6d,0x65,0x72,0x61,0x6c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x69,0x6e,0x67,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x76,0x69,0x61,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x55,0x72,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x28,0x5b,0x75,0x72,0x6c,0x5d,0x2c,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x47,0x69,0x66,0x74,0x57,0x72,0x61,0x70,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x20,0x70,0x65,0x72,0x2d,0x72,0x65,0x6c,0x61,0x79,0x20,0x6f,0x75,0x74,0x63,0x6f,0x6d,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6c,0x66,0x69,0x6c,0x6c,0x65,0x64,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0xe2,0x9c,0x85,0x20,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x44,0x4d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0xe2,0x9d,0x8c,0x20,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x44,0x4d,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x20,0x6f,0x6e,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x6d,0x61,0x70,0x28,0x28,0x72,0x2c,0x20,0x69,0x29,0x20,0x3d,0x3e,0x20,0x60,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x27,0x3b,0x20,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x41,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x65,0x64,0x20,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x44,0x4d,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x20,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6c,0x65,0x61,0x72,0x20,0x74,0x68,0x65,0x20,0x6f,0x75,0x74,0x62,0x6f,0x78,0x20,0x61,0x6e,0x64,0x20,0x73,0x68,0x6f,0x77,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6d,0x4f,0x75,0x74,0x62,0x6f,0x78,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x27,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x44,0x4d,0x20,0x73,0x65,0x6e,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x64,0x64,0x20,0x74,0x6f,0x20,0x69,0x6e,0x62,0x6f,0x78,0x20,0x66,0x6f,0x72,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x64,0x64,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x54,0x6f,0x49,0x6e,0x62,0x6f,0x78,0x28,0x27,0x73,0x65,0x6e,0x74,0x27,0x2c,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x2c,0x20,0x6e,0x65,0x77,0x20,0x44,0x61,0x74,0x65,0x28,0x29,0x2e,0x74,0x6f,0x4c,0x6f,0x63,0x61,0x6c,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x73,0x65,0x6e,0x64,0x20,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x44,0x4d,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x64,0x64,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x74,0x6f,0x20,0x69,0x6e,0x62,0x6f,0x78,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x64,0x64,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x54,0x6f,0x49,0x6e,0x62,0x6f,0x78,0x28,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x2c,0x20,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x2c,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x64,0x6d,0x49,0x6e,0x62,0x6f,0x78,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x44,0x69,0x76,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x27,0x64,0x69,0x76,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x44,0x69,0x76,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x27,0x6c,0x6f,0x67,0x2d,0x65,0x6e,0x74,0x72,0x79,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x73,0x65,0x6e,0x74,0x27,0x20,0x3f,0x20,0x27,0x23,0x30,0x30,0x37,0x62,0x66,0x66,0x27,0x20,0x3a,0x20,0x27,0x23,0x32,0x38,0x61,0x37,0x34,0x35,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6f,0x6e,0x76,0x65,0x72,0x74,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x73,0x20,0x74,0x6f,0x20,0x3c,0x62,0x72,0x3e,0x20,0x74,0x61,0x67,0x73,0x20,0x66,0x6f,0x72,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x20,0x48,0x54,0x4d,0x4c,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x74,0x65,0x64,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x3d,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5c,0x6e,0x2f,0x67,0x2c,0x20,0x27,0x3c,0x62,0x72,0x3e,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x64,0x64,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x66,0x6f,0x72,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x27,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x26,0x26,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x70,0x75,0x62,0x20,0x3d,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x6e,0x69,0x70,0x31,0x39,0x2e,0x6e,0x70,0x75,0x62,0x45,0x6e,0x63,0x6f,0x64,0x65,0x28,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x60,0x20,0x3c,0x73,0x70,0x61,0x6e,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x36,0x36,0x36,0x3b,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x31,0x70,0x78,0x3b,0x22,0x3e,0x28,0x24,0x7b,0x6e,0x70,0x75,0x62,0x7d,0x29,0x3c,0x2f,0x73,0x70,0x61,0x6e,0x3e,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x74,0x6f,0x20,0x6e,0x70,0x75,0x62,0x3a,0x27,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x44,0x69,0x76,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x73,0x70,0x61,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6c,0x6f,0x67,0x2d,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x22,0x3e,0x24,0x7b,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x7d,0x3c,0x2f,0x73,0x70,0x61,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x73,0x70,0x61,0x6e,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x24,0x7b,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x43,0x6f,0x6c,0x6f,0x72,0x7d,0x3b,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x62,0x6f,0x6c,0x64,0x3b,0x22,0x3e,0x5b,0x24,0x7b,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x74,0x6f,0x55,0x70,0x70,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x7d,0x5d,0x3c,0x2f,0x73,0x70,0x61,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x73,0x70,0x61,0x6e,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x77,0x68,0x69,0x74,0x65,0x2d,0x73,0x70,0x61,0x63,0x65,0x3a,0x20,0x70,0x72,0x65,0x2d,0x77,0x72,0x61,0x70,0x3b,0x22,0x3e,0x24,0x7b,0x66,0x6f,0x72,0x6d,0x61,0x74,0x74,0x65,0x64,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x24,0x7b,0x70,0x75,0x62,0x6b,0x65,0x79,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x7d,0x3c,0x2f,0x73,0x70,0x61,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x6d,0x6f,0x76,0x65,0x20,0x74,0x68,0x65,0x20,0x22,0x4e,0x6f,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x20,0x79,0x65,0x74,0x22,0x20,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x20,0x69,0x66,0x20,0x69,0x74,0x20,0x65,0x78,0x69,0x73,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x20,0x3d,0x20,0x64,0x6d,0x49,0x6e,0x62,0x6f,0x78,0x2e,0x71,0x75,0x65,0x72,0x79,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x28,0x27,0x2e,0x6c,0x6f,0x67,0x2d,0x65,0x6e,0x74,0x72,0x79,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x20,0x26,0x26,0x20,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x4e,0x6f,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x20,0x79,0x65,0x74,0x2e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6d,0x49,0x6e,0x62,0x6f,0x78,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x27,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x64,0x64,0x20,0x6e,0x65,0x77,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x61,0x74,0x20,0x74,0x68,0x65,0x20,0x74,0x6f,0x70,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6d,0x49,0x6e,0x62,0x6f,0x78,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x44,0x69,0x76,0x2c,0x20,0x64,0x6d,0x49,0x6e,0x62,0x6f,0x78,0x2e,0x66,0x69,0x72,0x73,0x74,0x43,0x68,0x69,0x6c,0x64,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x69,0x6d,0x69,0x74,0x20,0x74,0x6f,0x20,0x6c,0x61,0x73,0x74,0x20,0x35,0x30,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x64,0x6d,0x49,0x6e,0x62,0x6f,0x78,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x35,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6d,0x49,0x6e,0x62,0x6f,0x78,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x43,0x68,0x69,0x6c,0x64,0x28,0x64,0x6d,0x49,0x6e,0x62,0x6f,0x78,0x2e,0x6c,0x61,0x73,0x74,0x43,0x68,0x69,0x6c,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x65,0x6c,0x70,0x65,0x72,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x20,0x67,0x65,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x74,0x68,0x65,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x61,0x6c,0x6c,0x79,0x20,0x66,0x65,0x74,0x63,0x68,0x65,0x64,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x69,0x66,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x26,0x26,0x20,0x69,0x73,0x52,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x74,0x6f,0x20,0x68,0x61,0x72,0x64,0x63,0x6f,0x64,0x65,0x64,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x66,0x6f,0x72,0x20,0x74,0x65,0x73,0x74,0x69,0x6e,0x67,0x2f,0x64,0x65,0x76,0x65,0x6c,0x6f,0x70,0x6d,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x57,0x61,0x72,0x6e,0x69,0x6e,0x67,0x3a,0x20,0x55,0x73,0x69,0x6e,0x67,0x20,0x68,0x61,0x72,0x64,0x63,0x6f,0x64,0x65,0x64,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x2e,0x20,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x66,0x69,0x72,0x73,0x74,0x2e,0x27,0x2c,0x20,0x27,0x57,0x41,0x52,0x4e,0x49,0x4e,0x47,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x27,0x34,0x66,0x33,0x35,0x35,0x62,0x64,0x63,0x62,0x37,0x63,0x63,0x30,0x61,0x66,0x37,0x32,0x38,0x65,0x66,0x33,0x63,0x63,0x65,0x62,0x39,0x36,0x31,0x35,0x64,0x39,0x30,0x36,0x38,0x34,0x62,0x62,0x35,0x62,0x32,0x63,0x61,0x35,0x66,0x38,0x35,0x39,0x61,0x62,0x30,0x66,0x30,0x62,0x37,0x30,0x34,0x30,0x37,0x35,0x38,0x37,0x31,0x61,0x61,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x68,0x61,0x6e,0x63,0x65,0x64,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x20,0x74,0x6f,0x20,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x20,0x74,0x65,0x73,0x74,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x6e,0x68,0x61,0x6e,0x63,0x65,0x50,0x6f,0x6f,0x6c,0x46,0x6f,0x72,0x54,0x65,0x73,0x74,0x69,0x6e,0x67,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x73,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x70,0x61,0x72,0x73,0x69,0x6e,0x67,0x20,0x61,0x75,0x74,0x6f,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,0x6c,0x79,0x2c,0x20,0x73,0x6f,0x20,0x77,0x65,0x20,0x6a,0x75,0x73,0x74,0x20,0x6e,0x65,0x65,0x64,0x20,0x74,0x6f,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x65,0x6e,0x73,0x75,0x72,0x65,0x20,0x6f,0x75,0x72,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x20,0x6c,0x6f,0x67,0x20,0x61,0x70,0x70,0x72,0x6f,0x70,0x72,0x69,0x61,0x74,0x65,0x6c,0x79,0x2e,0x20,0x54,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x64,0x6f,0x6e,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x6e,0x65,0x76,0x65,0x6e,0x74,0x20,0x63,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x65,0x6e,0x68,0x61,0x6e,0x63,0x65,0x64,0x20,0x66,0x6f,0x72,0x20,0x74,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x2d,0x20,0x61,0x75,0x74,0x6f,0x6d,0x61,0x74,0x69,0x63,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x68,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x20,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x20,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x20,0x74,0x65,0x73,0x74,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x52,0x61,0x6e,0x64,0x6f,0x6d,0x54,0x65,0x73,0x74,0x4b,0x65,0x79,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x20,0x33,0x32,0x20,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x20,0x62,0x79,0x74,0x65,0x73,0x20,0x28,0x36,0x34,0x20,0x68,0x65,0x78,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x29,0x20,0x66,0x6f,0x72,0x20,0x61,0x20,0x76,0x61,0x6c,0x69,0x64,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x42,0x79,0x74,0x65,0x73,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x55,0x69,0x6e,0x74,0x38,0x41,0x72,0x72,0x61,0x79,0x28,0x33,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x79,0x70,0x74,0x6f,0x2e,0x67,0x65,0x74,0x52,0x61,0x6e,0x64,0x6f,0x6d,0x56,0x61,0x6c,0x75,0x65,0x73,0x28,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x42,0x79,0x74,0x65,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6f,0x6e,0x76,0x65,0x72,0x74,0x20,0x74,0x6f,0x20,0x68,0x65,0x78,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x65,0x78,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x66,0x72,0x6f,0x6d,0x28,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x42,0x79,0x74,0x65,0x73,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x6d,0x61,0x70,0x28,0x62,0x20,0x3d,0x3e,0x20,0x62,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x31,0x36,0x29,0x2e,0x70,0x61,0x64,0x53,0x74,0x61,0x72,0x74,0x28,0x32,0x2c,0x20,0x27,0x30,0x27,0x29,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x27,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x65,0x74,0x20,0x74,0x68,0x65,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x64,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x66,0x69,0x65,0x6c,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x49,0x6e,0x70,0x75,0x74,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x74,0x65,0x73,0x74,0x2d,0x70,0x75,0x62,0x6b,0x65,0x79,0x2d,0x69,0x6e,0x70,0x75,0x74,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x49,0x6e,0x70,0x75,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x49,0x6e,0x70,0x75,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x68,0x65,0x78,0x50,0x75,0x62,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x64,0x20,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x20,0x74,0x65,0x73,0x74,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x24,0x7b,0x68,0x65,0x78,0x50,0x75,0x62,0x6b,0x65,0x79,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x30,0x2c,0x20,0x31,0x36,0x29,0x7d,0x2e,0x2e,0x2e,0x60,0x2c,0x20,0x27,0x4b,0x45,0x59,0x47,0x45,0x4e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x68,0x65,0x78,0x50,0x75,0x62,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,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,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x41,0x54,0x41,0x42,0x41,0x53,0x45,0x20,0x53,0x54,0x41,0x54,0x49,0x53,0x54,0x49,0x43,0x53,0x20,0x46,0x55,0x4e,0x43,0x54,0x49,0x4f,0x4e,0x53,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,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,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x65,0x6e,0x64,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x74,0x6f,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x41,0x64,0x6d,0x69,0x6e,0x69,0x73,0x74,0x72,0x61,0x74,0x6f,0x72,0x20,0x41,0x50,0x49,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x6e,0x64,0x52,0x65,0x73,0x74,0x61,0x72,0x74,0x43,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x7c,0x7c,0x20,0x21,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x4d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x6f,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x53,0x65,0x6e,0x64,0x69,0x6e,0x67,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x66,0x6f,0x72,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x20,0x3d,0x20,0x5b,0x22,0x73,0x79,0x73,0x74,0x65,0x6d,0x5f,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x22,0x2c,0x20,0x22,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x22,0x5d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6c,0x79,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x46,0x6f,0x72,0x52,0x65,0x6c,0x61,0x79,0x28,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x20,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x36,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x20,0x32,0x33,0x34,0x35,0x36,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x3a,0x20,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x2f,0x20,0x31,0x30,0x30,0x30,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x73,0x3a,0x20,0x5b,0x5b,0x22,0x70,0x22,0x2c,0x20,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x5d,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x69,0x67,0x6e,0x20,0x74,0x68,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x73,0x69,0x67,0x6e,0x45,0x76,0x65,0x6e,0x74,0x28,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x2e,0x73,0x69,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x76,0x65,0x6e,0x74,0x20,0x73,0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x76,0x69,0x61,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x55,0x72,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x28,0x5b,0x75,0x72,0x6c,0x5d,0x2c,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x20,0x70,0x65,0x72,0x2d,0x72,0x65,0x6c,0x61,0x79,0x20,0x6f,0x75,0x74,0x63,0x6f,0x6d,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x68,0x65,0x63,0x6b,0x20,0x69,0x66,0x20,0x61,0x6e,0x79,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x61,0x63,0x63,0x65,0x70,0x74,0x65,0x64,0x20,0x74,0x68,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6c,0x66,0x69,0x6c,0x6c,0x65,0x64,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x52,0x65,0x73,0x74,0x61,0x72,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x52,0x65,0x73,0x74,0x61,0x72,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x20,0x6f,0x6e,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x6d,0x61,0x70,0x28,0x28,0x72,0x2c,0x20,0x69,0x29,0x20,0x3d,0x3e,0x20,0x60,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x27,0x3b,0x20,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x41,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x65,0x64,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x2e,0x20,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x52,0x65,0x73,0x74,0x61,0x72,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x73,0x65,0x6e,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x20,0x2d,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x20,0x73,0x68,0x6f,0x72,0x74,0x6c,0x79,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x74,0x6f,0x20,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x65,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x20,0x69,0x73,0x20,0x69,0x6e,0x20,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x52,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6e,0x67,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x52,0x45,0x53,0x54,0x41,0x52,0x54,0x49,0x4e,0x47,0x2e,0x2e,0x2e,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x77,0x69,0x6c,0x6c,0x20,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x20,0x61,0x6e,0x64,0x20,0x6e,0x65,0x65,0x64,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x72,0x65,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x69,0x73,0x20,0x77,0x69,0x6c,0x6c,0x20,0x62,0x65,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x64,0x20,0x62,0x79,0x20,0x74,0x68,0x65,0x20,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x20,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x73,0x65,0x6e,0x64,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x52,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x65,0x72,0x72,0x6f,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x65,0x6e,0x64,0x20,0x73,0x74,0x61,0x74,0x73,0x5f,0x71,0x75,0x65,0x72,0x79,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x74,0x6f,0x20,0x67,0x65,0x74,0x20,0x64,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x20,0x73,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x41,0x64,0x6d,0x69,0x6e,0x69,0x73,0x74,0x72,0x61,0x74,0x6f,0x72,0x20,0x41,0x50,0x49,0x20,0x28,0x69,0x6e,0x6e,0x65,0x72,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x6e,0x64,0x53,0x74,0x61,0x74,0x73,0x51,0x75,0x65,0x72,0x79,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x7c,0x7c,0x20,0x21,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x4d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x6f,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x64,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x20,0x73,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x65,0x72,0x72,0x6f,0x72,0x27,0x2c,0x20,0x27,0x4e,0x6f,0x74,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x65,0x72,0x72,0x6f,0x72,0x27,0x2c,0x20,0x27,0x4e,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x27,0x2c,0x20,0x27,0x51,0x75,0x65,0x72,0x79,0x69,0x6e,0x67,0x20,0x64,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x2e,0x2e,0x2e,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x66,0x6f,0x72,0x20,0x73,0x74,0x61,0x74,0x73,0x20,0x71,0x75,0x65,0x72,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x20,0x3d,0x20,0x5b,0x22,0x73,0x74,0x61,0x74,0x73,0x5f,0x71,0x75,0x65,0x72,0x79,0x22,0x2c,0x20,0x22,0x61,0x6c,0x6c,0x22,0x5d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6c,0x79,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x46,0x6f,0x72,0x52,0x65,0x6c,0x61,0x79,0x28,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x20,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x36,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x74,0x61,0x74,0x73,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x20,0x32,0x33,0x34,0x35,0x36,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x3a,0x20,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x2f,0x20,0x31,0x30,0x30,0x30,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x73,0x3a,0x20,0x5b,0x5b,0x22,0x70,0x22,0x2c,0x20,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x5d,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x69,0x67,0x6e,0x20,0x74,0x68,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x73,0x69,0x67,0x6e,0x45,0x76,0x65,0x6e,0x74,0x28,0x73,0x74,0x61,0x74,0x73,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x2e,0x73,0x69,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x76,0x65,0x6e,0x74,0x20,0x73,0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x53,0x65,0x6e,0x64,0x69,0x6e,0x67,0x20,0x73,0x74,0x61,0x74,0x73,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x76,0x69,0x61,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x55,0x72,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x28,0x5b,0x75,0x72,0x6c,0x5d,0x2c,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x20,0x70,0x65,0x72,0x2d,0x72,0x65,0x6c,0x61,0x79,0x20,0x6f,0x75,0x74,0x63,0x6f,0x6d,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x68,0x65,0x63,0x6b,0x20,0x69,0x66,0x20,0x61,0x6e,0x79,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x61,0x63,0x63,0x65,0x70,0x74,0x65,0x64,0x20,0x74,0x68,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6c,0x66,0x69,0x6c,0x6c,0x65,0x64,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x53,0x74,0x61,0x74,0x73,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x53,0x74,0x61,0x74,0x73,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x20,0x6f,0x6e,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x6d,0x61,0x70,0x28,0x28,0x72,0x2c,0x20,0x69,0x29,0x20,0x3d,0x3e,0x20,0x60,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x27,0x3b,0x20,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x41,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x65,0x64,0x20,0x73,0x74,0x61,0x74,0x73,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x20,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x53,0x74,0x61,0x74,0x73,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x73,0x65,0x6e,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x20,0x2d,0x20,0x77,0x61,0x69,0x74,0x69,0x6e,0x67,0x20,0x66,0x6f,0x72,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x77,0x61,0x69,0x74,0x69,0x6e,0x67,0x27,0x2c,0x20,0x27,0x57,0x61,0x69,0x74,0x69,0x6e,0x67,0x20,0x66,0x6f,0x72,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x2e,0x2e,0x2e,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x73,0x65,0x6e,0x64,0x20,0x73,0x74,0x61,0x74,0x73,0x20,0x71,0x75,0x65,0x72,0x79,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x65,0x72,0x72,0x6f,0x72,0x27,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x73,0x74,0x61,0x74,0x73,0x5f,0x71,0x75,0x65,0x72,0x79,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x61,0x6e,0x64,0x20,0x70,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x20,0x74,0x61,0x62,0x6c,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x53,0x74,0x61,0x74,0x73,0x51,0x75,0x65,0x72,0x79,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x69,0x6e,0x67,0x20,0x73,0x74,0x61,0x74,0x73,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x53,0x74,0x61,0x74,0x73,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x64,0x61,0x74,0x61,0x3a,0x27,0x2c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x71,0x75,0x65,0x72,0x79,0x5f,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x27,0x73,0x74,0x61,0x74,0x73,0x5f,0x71,0x75,0x65,0x72,0x79,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x49,0x67,0x6e,0x6f,0x72,0x69,0x6e,0x67,0x20,0x6e,0x6f,0x6e,0x2d,0x73,0x74,0x61,0x74,0x73,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x27,0x2c,0x20,0x27,0x57,0x41,0x52,0x4e,0x49,0x4e,0x47,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x20,0x6f,0x76,0x65,0x72,0x76,0x69,0x65,0x77,0x20,0x74,0x61,0x62,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x4f,0x76,0x65,0x72,0x76,0x69,0x65,0x77,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x6b,0x69,0x6e,0x64,0x73,0x20,0x74,0x61,0x62,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x4b,0x69,0x6e,0x64,0x73,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x20,0x74,0x69,0x6d,0x65,0x2d,0x62,0x61,0x73,0x65,0x64,0x20,0x73,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x54,0x69,0x6d,0x65,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x20,0x74,0x6f,0x70,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x73,0x20,0x74,0x61,0x62,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x50,0x75,0x62,0x6b,0x65,0x79,0x73,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x6c,0x6f,0x61,0x64,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x44,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x20,0x73,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x45,0x72,0x72,0x6f,0x72,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x69,0x6e,0x67,0x20,0x73,0x74,0x61,0x74,0x73,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x65,0x72,0x72,0x6f,0x72,0x27,0x2c,0x20,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x20,0x64,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x20,0x6f,0x76,0x65,0x72,0x76,0x69,0x65,0x77,0x20,0x74,0x61,0x62,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x4f,0x76,0x65,0x72,0x76,0x69,0x65,0x77,0x28,0x64,0x61,0x74,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x64,0x61,0x74,0x61,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x69,0x6e,0x64,0x69,0x76,0x69,0x64,0x75,0x61,0x6c,0x20,0x63,0x65,0x6c,0x6c,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x62,0x53,0x69,0x7a,0x65,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x64,0x62,0x2d,0x73,0x69,0x7a,0x65,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x6f,0x74,0x61,0x6c,0x45,0x76,0x65,0x6e,0x74,0x73,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x74,0x6f,0x74,0x61,0x6c,0x2d,0x65,0x76,0x65,0x6e,0x74,0x73,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6c,0x64,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x6f,0x6c,0x64,0x65,0x73,0x74,0x2d,0x65,0x76,0x65,0x6e,0x74,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x77,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x6e,0x65,0x77,0x65,0x73,0x74,0x2d,0x65,0x76,0x65,0x6e,0x74,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x62,0x53,0x69,0x7a,0x65,0x29,0x20,0x64,0x62,0x53,0x69,0x7a,0x65,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x64,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x5f,0x73,0x69,0x7a,0x65,0x5f,0x62,0x79,0x74,0x65,0x73,0x20,0x3f,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x46,0x69,0x6c,0x65,0x53,0x69,0x7a,0x65,0x28,0x64,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x5f,0x73,0x69,0x7a,0x65,0x5f,0x62,0x79,0x74,0x65,0x73,0x29,0x20,0x3a,0x20,0x27,0x2d,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x6f,0x74,0x61,0x6c,0x45,0x76,0x65,0x6e,0x74,0x73,0x29,0x20,0x74,0x6f,0x74,0x61,0x6c,0x45,0x76,0x65,0x6e,0x74,0x73,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x64,0x61,0x74,0x61,0x2e,0x74,0x6f,0x74,0x61,0x6c,0x5f,0x65,0x76,0x65,0x6e,0x74,0x73,0x20,0x7c,0x7c,0x20,0x27,0x2d,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x6c,0x64,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x29,0x20,0x6f,0x6c,0x64,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x64,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x5f,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x20,0x3f,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x54,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x28,0x64,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x5f,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x29,0x20,0x3a,0x20,0x27,0x2d,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x77,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x29,0x20,0x6e,0x65,0x77,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x64,0x61,0x74,0x61,0x2e,0x6c,0x61,0x74,0x65,0x73,0x74,0x5f,0x65,0x76,0x65,0x6e,0x74,0x5f,0x61,0x74,0x20,0x3f,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x54,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x28,0x64,0x61,0x74,0x61,0x2e,0x6c,0x61,0x74,0x65,0x73,0x74,0x5f,0x65,0x76,0x65,0x6e,0x74,0x5f,0x61,0x74,0x29,0x20,0x3a,0x20,0x27,0x2d,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x6b,0x69,0x6e,0x64,0x73,0x20,0x64,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x20,0x74,0x61,0x62,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x4b,0x69,0x6e,0x64,0x73,0x28,0x64,0x61,0x74,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x73,0x74,0x61,0x74,0x73,0x2d,0x6b,0x69,0x6e,0x64,0x73,0x2d,0x74,0x61,0x62,0x6c,0x65,0x2d,0x62,0x6f,0x64,0x79,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x20,0x7c,0x7c,0x20,0x21,0x64,0x61,0x74,0x61,0x2e,0x65,0x76,0x65,0x6e,0x74,0x5f,0x6b,0x69,0x6e,0x64,0x73,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x27,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x61,0x74,0x61,0x2e,0x65,0x76,0x65,0x6e,0x74,0x5f,0x6b,0x69,0x6e,0x64,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x6f,0x77,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x27,0x74,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x77,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x27,0x3c,0x74,0x64,0x20,0x63,0x6f,0x6c,0x73,0x70,0x61,0x6e,0x3d,0x22,0x33,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x20,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x20,0x69,0x74,0x61,0x6c,0x69,0x63,0x3b,0x22,0x3e,0x4e,0x6f,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x64,0x61,0x74,0x61,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x43,0x68,0x69,0x6c,0x64,0x28,0x72,0x6f,0x77,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x61,0x74,0x61,0x2e,0x65,0x76,0x65,0x6e,0x74,0x5f,0x6b,0x69,0x6e,0x64,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x6b,0x69,0x6e,0x64,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x6f,0x77,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x27,0x74,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x77,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x24,0x7b,0x6b,0x69,0x6e,0x64,0x2e,0x6b,0x69,0x6e,0x64,0x7d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x24,0x7b,0x6b,0x69,0x6e,0x64,0x2e,0x63,0x6f,0x75,0x6e,0x74,0x7d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x24,0x7b,0x6b,0x69,0x6e,0x64,0x2e,0x70,0x65,0x72,0x63,0x65,0x6e,0x74,0x61,0x67,0x65,0x7d,0x25,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x43,0x68,0x69,0x6c,0x64,0x28,0x72,0x6f,0x77,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x20,0x74,0x69,0x6d,0x65,0x2d,0x62,0x61,0x73,0x65,0x64,0x20,0x73,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x20,0x74,0x61,0x62,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x54,0x69,0x6d,0x65,0x28,0x64,0x61,0x74,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x64,0x61,0x74,0x61,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x32,0x34,0x68,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x65,0x76,0x65,0x6e,0x74,0x73,0x2d,0x32,0x34,0x68,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x37,0x64,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x65,0x76,0x65,0x6e,0x74,0x73,0x2d,0x37,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x33,0x30,0x64,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x65,0x76,0x65,0x6e,0x74,0x73,0x2d,0x33,0x30,0x64,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x63,0x63,0x65,0x73,0x73,0x20,0x74,0x68,0x65,0x20,0x6e,0x65,0x73,0x74,0x65,0x64,0x20,0x74,0x69,0x6d,0x65,0x5f,0x73,0x74,0x61,0x74,0x73,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x20,0x66,0x72,0x6f,0x6d,0x20,0x62,0x61,0x63,0x6b,0x65,0x6e,0x64,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x69,0x6d,0x65,0x53,0x74,0x61,0x74,0x73,0x20,0x3d,0x20,0x64,0x61,0x74,0x61,0x2e,0x74,0x69,0x6d,0x65,0x5f,0x73,0x74,0x61,0x74,0x73,0x20,0x7c,0x7c,0x20,0x7b,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x76,0x65,0x6e,0x74,0x73,0x32,0x34,0x68,0x29,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x32,0x34,0x68,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x74,0x69,0x6d,0x65,0x53,0x74,0x61,0x74,0x73,0x2e,0x6c,0x61,0x73,0x74,0x5f,0x32,0x34,0x68,0x20,0x7c,0x7c,0x20,0x27,0x30,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x76,0x65,0x6e,0x74,0x73,0x37,0x64,0x29,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x37,0x64,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x74,0x69,0x6d,0x65,0x53,0x74,0x61,0x74,0x73,0x2e,0x6c,0x61,0x73,0x74,0x5f,0x37,0x64,0x20,0x7c,0x7c,0x20,0x27,0x30,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x76,0x65,0x6e,0x74,0x73,0x33,0x30,0x64,0x29,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x33,0x30,0x64,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x74,0x69,0x6d,0x65,0x53,0x74,0x61,0x74,0x73,0x2e,0x6c,0x61,0x73,0x74,0x5f,0x33,0x30,0x64,0x20,0x7c,0x7c,0x20,0x27,0x30,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x20,0x74,0x6f,0x70,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x73,0x20,0x74,0x61,0x62,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x50,0x75,0x62,0x6b,0x65,0x79,0x73,0x28,0x64,0x61,0x74,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x73,0x74,0x61,0x74,0x73,0x2d,0x70,0x75,0x62,0x6b,0x65,0x79,0x73,0x2d,0x74,0x61,0x62,0x6c,0x65,0x2d,0x62,0x6f,0x64,0x79,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x20,0x7c,0x7c,0x20,0x21,0x64,0x61,0x74,0x61,0x2e,0x74,0x6f,0x70,0x5f,0x70,0x75,0x62,0x6b,0x65,0x79,0x73,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x27,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x61,0x74,0x61,0x2e,0x74,0x6f,0x70,0x5f,0x70,0x75,0x62,0x6b,0x65,0x79,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x6f,0x77,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x27,0x74,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x77,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x27,0x3c,0x74,0x64,0x20,0x63,0x6f,0x6c,0x73,0x70,0x61,0x6e,0x3d,0x22,0x34,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x20,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x20,0x69,0x74,0x61,0x6c,0x69,0x63,0x3b,0x22,0x3e,0x4e,0x6f,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x64,0x61,0x74,0x61,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x43,0x68,0x69,0x6c,0x64,0x28,0x72,0x6f,0x77,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x61,0x74,0x61,0x2e,0x74,0x6f,0x70,0x5f,0x70,0x75,0x62,0x6b,0x65,0x79,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x70,0x75,0x62,0x6b,0x65,0x79,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x6f,0x77,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x27,0x74,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x70,0x75,0x62,0x20,0x3d,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x3f,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x6e,0x69,0x70,0x31,0x39,0x2e,0x6e,0x70,0x75,0x62,0x45,0x6e,0x63,0x6f,0x64,0x65,0x28,0x70,0x75,0x62,0x6b,0x65,0x79,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x3a,0x20,0x27,0x2d,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x77,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x7d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x27,0x43,0x6f,0x75,0x72,0x69,0x65,0x72,0x20,0x4e,0x65,0x77,0x27,0x2c,0x20,0x6d,0x6f,0x6e,0x6f,0x73,0x70,0x61,0x63,0x65,0x3b,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x32,0x70,0x78,0x3b,0x20,0x77,0x6f,0x72,0x64,0x2d,0x62,0x72,0x65,0x61,0x6b,0x3a,0x20,0x62,0x72,0x65,0x61,0x6b,0x2d,0x61,0x6c,0x6c,0x3b,0x22,0x3e,0x24,0x7b,0x6e,0x70,0x75,0x62,0x7d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x24,0x7b,0x70,0x75,0x62,0x6b,0x65,0x79,0x2e,0x65,0x76,0x65,0x6e,0x74,0x5f,0x63,0x6f,0x75,0x6e,0x74,0x7d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x24,0x7b,0x70,0x75,0x62,0x6b,0x65,0x79,0x2e,0x70,0x65,0x72,0x63,0x65,0x6e,0x74,0x61,0x67,0x65,0x7d,0x25,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x43,0x68,0x69,0x6c,0x64,0x28,0x72,0x6f,0x77,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x73,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x20,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x20,0x28,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x2d,0x20,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x64,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x73,0x74,0x61,0x74,0x75,0x73,0x2c,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x3d,0x20,0x27,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x61,0x74,0x75,0x73,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x68,0x61,0x73,0x20,0x62,0x65,0x65,0x6e,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x64,0x20,0x66,0x72,0x6f,0x6d,0x20,0x74,0x68,0x65,0x20,0x55,0x49,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x74,0x69,0x6c,0x69,0x74,0x79,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x20,0x66,0x69,0x6c,0x65,0x20,0x73,0x69,0x7a,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x46,0x69,0x6c,0x65,0x53,0x69,0x7a,0x65,0x28,0x62,0x79,0x74,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x62,0x79,0x74,0x65,0x73,0x20,0x7c,0x7c,0x20,0x62,0x79,0x74,0x65,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x27,0x30,0x20,0x42,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x20,0x3d,0x20,0x31,0x30,0x32,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x7a,0x65,0x73,0x20,0x3d,0x20,0x5b,0x27,0x42,0x27,0x2c,0x20,0x27,0x4b,0x42,0x27,0x2c,0x20,0x27,0x4d,0x42,0x27,0x2c,0x20,0x27,0x47,0x42,0x27,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x20,0x3d,0x20,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x4d,0x61,0x74,0x68,0x2e,0x6c,0x6f,0x67,0x28,0x62,0x79,0x74,0x65,0x73,0x29,0x20,0x2f,0x20,0x4d,0x61,0x74,0x68,0x2e,0x6c,0x6f,0x67,0x28,0x6b,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x61,0x72,0x73,0x65,0x46,0x6c,0x6f,0x61,0x74,0x28,0x28,0x62,0x79,0x74,0x65,0x73,0x20,0x2f,0x20,0x4d,0x61,0x74,0x68,0x2e,0x70,0x6f,0x77,0x28,0x6b,0x2c,0x20,0x69,0x29,0x29,0x2e,0x74,0x6f,0x46,0x69,0x78,0x65,0x64,0x28,0x31,0x29,0x29,0x20,0x2b,0x20,0x27,0x20,0x27,0x20,0x2b,0x20,0x73,0x69,0x7a,0x65,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x74,0x69,0x6c,0x69,0x74,0x79,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x20,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x54,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x28,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x27,0x2d,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x61,0x74,0x65,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x44,0x61,0x74,0x65,0x28,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x20,0x2a,0x20,0x31,0x30,0x30,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x64,0x61,0x74,0x65,0x2e,0x74,0x6f,0x4c,0x6f,0x63,0x61,0x6c,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x76,0x65,0x6e,0x74,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x20,0x66,0x6f,0x72,0x20,0x74,0x65,0x73,0x74,0x20,0x62,0x75,0x74,0x74,0x6f,0x6e,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x44,0x4f,0x4d,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x4c,0x6f,0x61,0x64,0x65,0x64,0x27,0x2c,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x65,0x73,0x74,0x20,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x65,0x73,0x74,0x47,0x65,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x74,0x65,0x73,0x74,0x2d,0x67,0x65,0x74,0x2d,0x61,0x75,0x74,0x68,0x2d,0x72,0x75,0x6c,0x65,0x73,0x2d,0x62,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x65,0x73,0x74,0x43,0x6c,0x65,0x61,0x72,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x74,0x65,0x73,0x74,0x2d,0x63,0x6c,0x65,0x61,0x72,0x2d,0x61,0x75,0x74,0x68,0x2d,0x72,0x75,0x6c,0x65,0x73,0x2d,0x62,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x65,0x73,0x74,0x41,0x64,0x64,0x42,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x74,0x65,0x73,0x74,0x2d,0x61,0x64,0x64,0x2d,0x62,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x2d,0x62,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x65,0x73,0x74,0x41,0x64,0x64,0x57,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x74,0x65,0x73,0x74,0x2d,0x61,0x64,0x64,0x2d,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x2d,0x62,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x65,0x73,0x74,0x43,0x6f,0x6e,0x66,0x69,0x67,0x51,0x75,0x65,0x72,0x79,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x74,0x65,0x73,0x74,0x2d,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x71,0x75,0x65,0x72,0x79,0x2d,0x62,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x65,0x73,0x74,0x50,0x6f,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x74,0x65,0x73,0x74,0x2d,0x70,0x6f,0x73,0x74,0x2d,0x65,0x76,0x65,0x6e,0x74,0x2d,0x62,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6c,0x65,0x61,0x72,0x54,0x65,0x73,0x74,0x4c,0x6f,0x67,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x63,0x6c,0x65,0x61,0x72,0x2d,0x74,0x65,0x73,0x74,0x2d,0x6c,0x6f,0x67,0x2d,0x62,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x54,0x65,0x73,0x74,0x4b,0x65,0x79,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x2d,0x74,0x65,0x73,0x74,0x2d,0x6b,0x65,0x79,0x2d,0x62,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x65,0x73,0x74,0x47,0x65,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x42,0x74,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x73,0x74,0x47,0x65,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x42,0x74,0x6e,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x63,0x6c,0x69,0x63,0x6b,0x27,0x2c,0x20,0x74,0x65,0x73,0x74,0x47,0x65,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x65,0x73,0x74,0x43,0x6c,0x65,0x61,0x72,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x42,0x74,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x73,0x74,0x43,0x6c,0x65,0x61,0x72,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x42,0x74,0x6e,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x63,0x6c,0x69,0x63,0x6b,0x27,0x2c,0x20,0x74,0x65,0x73,0x74,0x43,0x6c,0x65,0x61,0x72,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x65,0x73,0x74,0x41,0x64,0x64,0x42,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x42,0x74,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x73,0x74,0x41,0x64,0x64,0x42,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x42,0x74,0x6e,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x63,0x6c,0x69,0x63,0x6b,0x27,0x2c,0x20,0x74,0x65,0x73,0x74,0x41,0x64,0x64,0x42,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x65,0x73,0x74,0x41,0x64,0x64,0x57,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x42,0x74,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x73,0x74,0x41,0x64,0x64,0x57,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x42,0x74,0x6e,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x63,0x6c,0x69,0x63,0x6b,0x27,0x2c,0x20,0x74,0x65,0x73,0x74,0x41,0x64,0x64,0x57,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x65,0x73,0x74,0x43,0x6f,0x6e,0x66,0x69,0x67,0x51,0x75,0x65,0x72,0x79,0x42,0x74,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x73,0x74,0x43,0x6f,0x6e,0x66,0x69,0x67,0x51,0x75,0x65,0x72,0x79,0x42,0x74,0x6e,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x63,0x6c,0x69,0x63,0x6b,0x27,0x2c,0x20,0x74,0x65,0x73,0x74,0x43,0x6f,0x6e,0x66,0x69,0x67,0x51,0x75,0x65,0x72,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x65,0x73,0x74,0x50,0x6f,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x42,0x74,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x73,0x74,0x50,0x6f,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x42,0x74,0x6e,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x63,0x6c,0x69,0x63,0x6b,0x27,0x2c,0x20,0x74,0x65,0x73,0x74,0x50,0x6f,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6c,0x65,0x61,0x72,0x54,0x65,0x73,0x74,0x4c,0x6f,0x67,0x42,0x74,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x65,0x61,0x72,0x54,0x65,0x73,0x74,0x4c,0x6f,0x67,0x42,0x74,0x6e,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x63,0x6c,0x69,0x63,0x6b,0x27,0x2c,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x65,0x73,0x74,0x4c,0x6f,0x67,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x74,0x65,0x73,0x74,0x2d,0x65,0x76,0x65,0x6e,0x74,0x2d,0x6c,0x6f,0x67,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x65,0x73,0x74,0x4c,0x6f,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x73,0x74,0x4c,0x6f,0x67,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x27,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6c,0x6f,0x67,0x2d,0x65,0x6e,0x74,0x72,0x79,0x22,0x3e,0x3c,0x73,0x70,0x61,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6c,0x6f,0x67,0x2d,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x22,0x3e,0x53,0x59,0x53,0x54,0x45,0x4d,0x3a,0x3c,0x2f,0x73,0x70,0x61,0x6e,0x3e,0x20,0x54,0x65,0x73,0x74,0x20,0x6c,0x6f,0x67,0x20,0x63,0x6c,0x65,0x61,0x72,0x65,0x64,0x2e,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x54,0x65,0x73,0x74,0x4b,0x65,0x79,0x42,0x74,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x54,0x65,0x73,0x74,0x4b,0x65,0x79,0x42,0x74,0x6e,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x63,0x6c,0x69,0x63,0x6b,0x27,0x2c,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x52,0x61,0x6e,0x64,0x6f,0x6d,0x54,0x65,0x73,0x74,0x4b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x68,0x6f,0x77,0x20,0x74,0x65,0x73,0x74,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x77,0x68,0x65,0x6e,0x20,0x6e,0x65,0x65,0x64,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x65,0x73,0x74,0x49,0x6e,0x70,0x75,0x74,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x74,0x65,0x73,0x74,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2d,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x65,0x73,0x74,0x49,0x6e,0x70,0x75,0x74,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x73,0x74,0x49,0x6e,0x70,0x75,0x74,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x27,0x62,0x6c,0x6f,0x63,0x6b,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x20,0x73,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x53,0x74,0x61,0x74,0x73,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x2d,0x73,0x74,0x61,0x74,0x73,0x2d,0x62,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x53,0x74,0x61,0x74,0x73,0x42,0x74,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x53,0x74,0x61,0x74,0x73,0x42,0x74,0x6e,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x63,0x6c,0x69,0x63,0x6b,0x27,0x2c,0x20,0x73,0x65,0x6e,0x64,0x53,0x74,0x61,0x74,0x73,0x51,0x75,0x65,0x72,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x44,0x4d,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x65,0x6e,0x64,0x44,0x6d,0x42,0x74,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x6e,0x64,0x44,0x6d,0x42,0x74,0x6e,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x63,0x6c,0x69,0x63,0x6b,0x27,0x2c,0x20,0x73,0x65,0x6e,0x64,0x4e,0x49,0x50,0x31,0x37,0x44,0x4d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x65,0x74,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x55,0x52,0x4c,0x20,0x62,0x61,0x73,0x65,0x64,0x20,0x6f,0x6e,0x20,0x77,0x68,0x65,0x72,0x65,0x20,0x74,0x68,0x65,0x20,0x70,0x61,0x67,0x65,0x20,0x69,0x73,0x20,0x62,0x65,0x69,0x6e,0x67,0x20,0x73,0x65,0x72,0x76,0x65,0x64,0x20,0x66,0x72,0x6f,0x6d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x74,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x52,0x65,0x6c,0x61,0x79,0x55,0x72,0x6c,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x55,0x72,0x6c,0x49,0x6e,0x70,0x75,0x74,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x72,0x65,0x6c,0x61,0x79,0x2d,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2d,0x75,0x72,0x6c,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x6c,0x61,0x79,0x55,0x72,0x6c,0x49,0x6e,0x70,0x75,0x74,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x47,0x65,0x74,0x20,0x74,0x68,0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x70,0x61,0x67,0x65,0x27,0x73,0x20,0x70,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x20,0x61,0x6e,0x64,0x20,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x20,0x3d,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x68,0x74,0x74,0x70,0x73,0x3a,0x27,0x20,0x3f,0x20,0x27,0x77,0x73,0x73,0x3a,0x27,0x20,0x3a,0x20,0x27,0x77,0x73,0x3a,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x6f,0x72,0x74,0x20,0x3d,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x70,0x6f,0x72,0x74,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x55,0x52,0x4c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x55,0x72,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x6c,0x6f,0x63,0x61,0x6c,0x68,0x6f,0x73,0x74,0x27,0x20,0x7c,0x7c,0x20,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x31,0x32,0x37,0x2e,0x30,0x2e,0x30,0x2e,0x31,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x6f,0x72,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x68,0x6f,0x73,0x74,0x2c,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x74,0x6f,0x20,0x77,0x73,0x3a,0x2f,0x2f,0x6c,0x6f,0x63,0x61,0x6c,0x68,0x6f,0x73,0x74,0x3a,0x38,0x38,0x38,0x38,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x55,0x72,0x6c,0x20,0x3d,0x20,0x27,0x77,0x73,0x3a,0x2f,0x2f,0x6c,0x6f,0x63,0x61,0x6c,0x68,0x6f,0x73,0x74,0x3a,0x38,0x38,0x38,0x38,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x6f,0x72,0x20,0x70,0x72,0x6f,0x64,0x75,0x63,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x75,0x73,0x65,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6d,0x65,0x20,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x20,0x77,0x69,0x74,0x68,0x20,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x20,0x70,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x6d,0x6f,0x76,0x65,0x20,0x70,0x6f,0x72,0x74,0x20,0x66,0x72,0x6f,0x6d,0x20,0x55,0x52,0x4c,0x20,0x73,0x69,0x6e,0x63,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x74,0x79,0x70,0x69,0x63,0x61,0x6c,0x6c,0x79,0x20,0x72,0x75,0x6e,0x73,0x20,0x6f,0x6e,0x20,0x73,0x74,0x61,0x6e,0x64,0x61,0x72,0x64,0x20,0x70,0x6f,0x72,0x74,0x73,0x20,0x28,0x38,0x30,0x2f,0x34,0x34,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x55,0x72,0x6c,0x20,0x3d,0x20,0x60,0x24,0x7b,0x70,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x7d,0x2f,0x2f,0x24,0x7b,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x7d,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x55,0x72,0x6c,0x49,0x6e,0x70,0x75,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x55,0x72,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x55,0x52,0x4c,0x20,0x73,0x65,0x74,0x20,0x74,0x6f,0x3a,0x20,0x24,0x7b,0x72,0x65,0x6c,0x61,0x79,0x55,0x72,0x6c,0x7d,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x6e,0x69,0x74,0x69,0x61,0x6c,0x69,0x7a,0x65,0x20,0x74,0x68,0x65,0x20,0x61,0x70,0x70,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x44,0x4f,0x4d,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x4c,0x6f,0x61,0x64,0x65,0x64,0x27,0x2c,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x43,0x2d,0x52,0x65,0x6c,0x61,0x79,0x20,0x41,0x64,0x6d,0x69,0x6e,0x20,0x41,0x50,0x49,0x20,0x69,0x6e,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x20,0x6c,0x6f,0x61,0x64,0x65,0x64,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x65,0x74,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x55,0x52,0x4c,0x20,0x62,0x61,0x73,0x65,0x64,0x20,0x6f,0x6e,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x70,0x61,0x67,0x65,0x20,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x52,0x65,0x6c,0x61,0x79,0x55,0x72,0x6c,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x6e,0x69,0x74,0x69,0x61,0x6c,0x69,0x7a,0x65,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x2f,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x20,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x73,0x74,0x61,0x74,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x4c,0x6f,0x67,0x69,0x6e,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x42,0x75,0x74,0x74,0x6f,0x6e,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x73,0x75,0x72,0x65,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x20,0x61,0x72,0x65,0x20,0x68,0x69,0x64,0x64,0x65,0x6e,0x20,0x62,0x79,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x6f,0x6e,0x20,0x70,0x61,0x67,0x65,0x20,0x6c,0x6f,0x61,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x41,0x64,0x6d,0x69,0x6e,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x56,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x69,0x7a,0x65,0x41,0x70,0x70,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x68,0x61,0x6e,0x63,0x65,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x66,0x6f,0x72,0x20,0x74,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x69,0x7a,0x61,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x65,0x6e,0x68,0x61,0x6e,0x63,0x65,0x50,0x6f,0x6f,0x6c,0x46,0x6f,0x72,0x54,0x65,0x73,0x74,0x69,0x6e,0x67,0x2c,0x20,0x32,0x30,0x30,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x20,0x31,0x30,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,};
-static const size_t index_js_size = 159687;
+0x2f,0x2f,0x20,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x20,0x74,0x6f,0x20,0x70,0x72,0x65,0x76,0x65,0x6e,0x74,0x20,0x70,0x61,0x67,0x65,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x65,0x73,0x0a,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x65,0x72,0x72,0x6f,0x72,0x27,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x28,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x63,0x61,0x75,0x67,0x68,0x74,0x3a,0x27,0x2c,0x20,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x72,0x72,0x6f,0x72,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x3a,0x27,0x2c,0x20,0x65,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x72,0x72,0x6f,0x72,0x20,0x66,0x69,0x6c,0x65,0x6e,0x61,0x6d,0x65,0x3a,0x27,0x2c,0x20,0x65,0x2e,0x66,0x69,0x6c,0x65,0x6e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x72,0x72,0x6f,0x72,0x20,0x6c,0x69,0x6e,0x65,0x3a,0x27,0x2c,0x20,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x6e,0x6f,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x65,0x2e,0x70,0x72,0x65,0x76,0x65,0x6e,0x74,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x29,0x3b,0x20,0x2f,0x2f,0x20,0x50,0x72,0x65,0x76,0x65,0x6e,0x74,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x68,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x20,0x2f,0x2f,0x20,0x50,0x72,0x65,0x76,0x65,0x6e,0x74,0x20,0x70,0x61,0x67,0x65,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x0a,0x7d,0x29,0x3b,0x0a,0x0a,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x75,0x6e,0x68,0x61,0x6e,0x64,0x6c,0x65,0x64,0x72,0x65,0x6a,0x65,0x63,0x74,0x69,0x6f,0x6e,0x27,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x28,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x55,0x6e,0x68,0x61,0x6e,0x64,0x6c,0x65,0x64,0x20,0x70,0x72,0x6f,0x6d,0x69,0x73,0x65,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x27,0x2c,0x20,0x65,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x65,0x2e,0x70,0x72,0x65,0x76,0x65,0x6e,0x74,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x29,0x3b,0x20,0x2f,0x2f,0x20,0x50,0x72,0x65,0x76,0x65,0x6e,0x74,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x68,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x20,0x2f,0x2f,0x20,0x50,0x72,0x65,0x76,0x65,0x6e,0x74,0x20,0x70,0x61,0x67,0x65,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x0a,0x7d,0x29,0x3b,0x0a,0x0a,0x2f,0x2f,0x20,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x20,0x73,0x74,0x61,0x74,0x65,0x0a,0x6c,0x65,0x74,0x20,0x6e,0x6c,0x4c,0x69,0x74,0x65,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x2f,0x2f,0x20,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x61,0x74,0x65,0x0a,0x6c,0x65,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x49,0x64,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x2f,0x2f,0x20,0x52,0x65,0x6c,0x61,0x79,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x61,0x74,0x65,0x0a,0x6c,0x65,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x69,0x73,0x52,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x2f,0x2f,0x20,0x44,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x20,0x73,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x20,0x61,0x75,0x74,0x6f,0x2d,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x0a,0x6c,0x65,0x74,0x20,0x73,0x74,0x61,0x74,0x73,0x41,0x75,0x74,0x6f,0x52,0x65,0x66,0x72,0x65,0x73,0x68,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x63,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x63,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x53,0x65,0x63,0x6f,0x6e,0x64,0x73,0x20,0x3d,0x20,0x31,0x30,0x3b,0x0a,0x0a,0x2f,0x2f,0x20,0x44,0x4f,0x4d,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x4d,0x6f,0x64,0x61,0x6c,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x6c,0x6f,0x67,0x69,0x6e,0x2d,0x6d,0x6f,0x64,0x61,0x6c,0x27,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x4d,0x6f,0x64,0x61,0x6c,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x6c,0x6f,0x67,0x69,0x6e,0x2d,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x27,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x41,0x72,0x65,0x61,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x2d,0x61,0x72,0x65,0x61,0x27,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x65,0x61,0x64,0x65,0x72,0x55,0x73,0x65,0x72,0x49,0x6d,0x61,0x67,0x65,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x68,0x65,0x61,0x64,0x65,0x72,0x2d,0x75,0x73,0x65,0x72,0x2d,0x69,0x6d,0x61,0x67,0x65,0x27,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x65,0x61,0x64,0x65,0x72,0x55,0x73,0x65,0x72,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x68,0x65,0x61,0x64,0x65,0x72,0x2d,0x75,0x73,0x65,0x72,0x2d,0x6e,0x61,0x6d,0x65,0x27,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x44,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x2d,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x27,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x2d,0x62,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x0a,0x2f,0x2f,0x20,0x4c,0x65,0x67,0x61,0x63,0x79,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x20,0x28,0x6b,0x65,0x70,0x74,0x20,0x66,0x6f,0x72,0x20,0x62,0x61,0x63,0x6b,0x77,0x61,0x72,0x64,0x20,0x63,0x6f,0x6d,0x70,0x61,0x74,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x29,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x2d,0x75,0x73,0x65,0x72,0x2d,0x6e,0x61,0x6d,0x65,0x27,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x2d,0x75,0x73,0x65,0x72,0x2d,0x70,0x75,0x62,0x6b,0x65,0x79,0x27,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x41,0x62,0x6f,0x75,0x74,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x2d,0x75,0x73,0x65,0x72,0x2d,0x61,0x62,0x6f,0x75,0x74,0x27,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x2d,0x75,0x73,0x65,0x72,0x2d,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x27,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x65,0x74,0x63,0x68,0x43,0x6f,0x6e,0x66,0x69,0x67,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x66,0x65,0x74,0x63,0x68,0x2d,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x62,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x2f,0x2f,0x20,0x52,0x65,0x6c,0x61,0x79,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x55,0x72,0x6c,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x72,0x65,0x6c,0x61,0x79,0x2d,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2d,0x75,0x72,0x6c,0x27,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x4d,0x61,0x6e,0x75,0x61,0x6c,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x72,0x65,0x6c,0x61,0x79,0x2d,0x70,0x75,0x62,0x6b,0x65,0x79,0x2d,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x27,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x72,0x65,0x6c,0x61,0x79,0x2d,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2d,0x73,0x74,0x61,0x74,0x75,0x73,0x27,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x2d,0x72,0x65,0x6c,0x61,0x79,0x2d,0x62,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x2d,0x72,0x65,0x6c,0x61,0x79,0x2d,0x62,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x2d,0x72,0x65,0x6c,0x61,0x79,0x2d,0x62,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x27,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x54,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x74,0x61,0x62,0x6c,0x65,0x2d,0x62,0x6f,0x64,0x79,0x27,0x29,0x3b,0x0a,0x0a,0x2f,0x2f,0x20,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x44,0x4d,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x6d,0x4f,0x75,0x74,0x62,0x6f,0x78,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x64,0x6d,0x2d,0x6f,0x75,0x74,0x62,0x6f,0x78,0x27,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x6d,0x49,0x6e,0x62,0x6f,0x78,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x64,0x6d,0x2d,0x69,0x6e,0x62,0x6f,0x78,0x27,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x65,0x6e,0x64,0x44,0x6d,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x73,0x65,0x6e,0x64,0x2d,0x64,0x6d,0x2d,0x62,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x0a,0x2f,0x2f,0x20,0x55,0x74,0x69,0x6c,0x69,0x74,0x79,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x73,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x6f,0x67,0x28,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x2c,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x44,0x61,0x74,0x65,0x28,0x29,0x2e,0x74,0x6f,0x49,0x53,0x4f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x27,0x54,0x27,0x29,0x5b,0x31,0x5d,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x27,0x2e,0x27,0x29,0x5b,0x30,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x6f,0x67,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x3d,0x20,0x60,0x24,0x7b,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x7d,0x20,0x5b,0x24,0x7b,0x74,0x79,0x70,0x65,0x7d,0x5d,0x3a,0x20,0x24,0x7b,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x6c,0x77,0x61,0x79,0x73,0x20,0x6c,0x6f,0x67,0x20,0x74,0x6f,0x20,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x20,0x73,0x6f,0x20,0x77,0x65,0x20,0x64,0x6f,0x6e,0x27,0x74,0x20,0x6c,0x6f,0x73,0x65,0x20,0x6c,0x6f,0x67,0x73,0x20,0x6f,0x6e,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x6c,0x6f,0x67,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x49,0x20,0x6c,0x6f,0x67,0x67,0x69,0x6e,0x67,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x64,0x20,0x2d,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x20,0x6f,0x6e,0x6c,0x79,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x55,0x74,0x69,0x6c,0x69,0x74,0x79,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x73,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x6f,0x67,0x28,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x2c,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x44,0x61,0x74,0x65,0x28,0x29,0x2e,0x74,0x6f,0x49,0x53,0x4f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x27,0x54,0x27,0x29,0x5b,0x31,0x5d,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x27,0x2e,0x27,0x29,0x5b,0x30,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x6f,0x67,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x3d,0x20,0x60,0x24,0x7b,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x7d,0x20,0x5b,0x24,0x7b,0x74,0x79,0x70,0x65,0x7d,0x5d,0x3a,0x20,0x24,0x7b,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x6c,0x77,0x61,0x79,0x73,0x20,0x6c,0x6f,0x67,0x20,0x74,0x6f,0x20,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x20,0x73,0x6f,0x20,0x77,0x65,0x20,0x64,0x6f,0x6e,0x27,0x74,0x20,0x6c,0x6f,0x73,0x65,0x20,0x6c,0x6f,0x67,0x73,0x20,0x6f,0x6e,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x6c,0x6f,0x67,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x49,0x20,0x6c,0x6f,0x67,0x67,0x69,0x6e,0x67,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x64,0x20,0x2d,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x20,0x6f,0x6e,0x6c,0x79,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x4e,0x49,0x50,0x2d,0x35,0x39,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x3a,0x20,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x69,0x7a,0x65,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x20,0x74,0x6f,0x20,0x74,0x68,0x77,0x61,0x72,0x74,0x20,0x74,0x69,0x6d,0x65,0x2d,0x61,0x6e,0x61,0x6c,0x79,0x73,0x69,0x73,0x20,0x28,0x70,0x61,0x73,0x74,0x20,0x32,0x20,0x64,0x61,0x79,0x73,0x29,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x4e,0x6f,0x77,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x54,0x57,0x4f,0x5f,0x44,0x41,0x59,0x53,0x20,0x3d,0x20,0x32,0x20,0x2a,0x20,0x32,0x34,0x20,0x2a,0x20,0x36,0x30,0x20,0x2a,0x20,0x36,0x30,0x3b,0x20,0x2f,0x2f,0x20,0x31,0x37,0x32,0x38,0x30,0x30,0x20,0x73,0x65,0x63,0x6f,0x6e,0x64,0x73,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x6f,0x77,0x20,0x3d,0x20,0x4d,0x61,0x74,0x68,0x2e,0x72,0x6f,0x75,0x6e,0x64,0x28,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x2f,0x20,0x31,0x30,0x30,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4d,0x61,0x74,0x68,0x2e,0x72,0x6f,0x75,0x6e,0x64,0x28,0x6e,0x6f,0x77,0x20,0x2d,0x20,0x4d,0x61,0x74,0x68,0x2e,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x28,0x29,0x20,0x2a,0x20,0x54,0x57,0x4f,0x5f,0x44,0x41,0x59,0x53,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x53,0x61,0x66,0x65,0x20,0x4a,0x53,0x4f,0x4e,0x20,0x70,0x61,0x72,0x73,0x65,0x20,0x77,0x69,0x74,0x68,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x68,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x61,0x66,0x65,0x4a,0x73,0x6f,0x6e,0x50,0x61,0x72,0x73,0x65,0x28,0x6a,0x73,0x6f,0x6e,0x53,0x74,0x72,0x69,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x6a,0x73,0x6f,0x6e,0x53,0x74,0x72,0x69,0x6e,0x67,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x4a,0x53,0x4f,0x4e,0x20,0x70,0x61,0x72,0x73,0x65,0x20,0x65,0x72,0x72,0x6f,0x72,0x3a,0x27,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x2f,0x2f,0x20,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,0x0a,0x2f,0x2f,0x20,0x4e,0x49,0x50,0x2d,0x31,0x31,0x20,0x52,0x45,0x4c,0x41,0x59,0x20,0x43,0x4f,0x4e,0x4e,0x45,0x43,0x54,0x49,0x4f,0x4e,0x20,0x46,0x55,0x4e,0x43,0x54,0x49,0x4f,0x4e,0x53,0x0a,0x2f,0x2f,0x20,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,0x0a,0x0a,0x2f,0x2f,0x20,0x43,0x6f,0x6e,0x76,0x65,0x72,0x74,0x20,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x20,0x55,0x52,0x4c,0x20,0x74,0x6f,0x20,0x48,0x54,0x54,0x50,0x20,0x55,0x52,0x4c,0x20,0x66,0x6f,0x72,0x20,0x4e,0x49,0x50,0x2d,0x31,0x31,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x77,0x73,0x54,0x6f,0x48,0x74,0x74,0x70,0x55,0x72,0x6c,0x28,0x77,0x73,0x55,0x72,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x77,0x73,0x55,0x72,0x6c,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x27,0x77,0x73,0x3a,0x2f,0x2f,0x27,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x77,0x73,0x55,0x72,0x6c,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x27,0x77,0x73,0x3a,0x2f,0x2f,0x27,0x2c,0x20,0x27,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x77,0x73,0x55,0x72,0x6c,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x27,0x77,0x73,0x73,0x3a,0x2f,0x2f,0x27,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x77,0x73,0x55,0x72,0x6c,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x27,0x77,0x73,0x73,0x3a,0x2f,0x2f,0x27,0x2c,0x20,0x27,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x77,0x73,0x55,0x72,0x6c,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x46,0x65,0x74,0x63,0x68,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x69,0x6e,0x66,0x6f,0x72,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x31,0x31,0x0a,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x65,0x74,0x63,0x68,0x52,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x28,0x72,0x65,0x6c,0x61,0x79,0x55,0x72,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x46,0x65,0x74,0x63,0x68,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x31,0x31,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x69,0x6e,0x66,0x6f,0x20,0x66,0x72,0x6f,0x6d,0x3a,0x20,0x24,0x7b,0x72,0x65,0x6c,0x61,0x79,0x55,0x72,0x6c,0x7d,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6f,0x6e,0x76,0x65,0x72,0x74,0x20,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x20,0x55,0x52,0x4c,0x20,0x74,0x6f,0x20,0x48,0x54,0x54,0x50,0x20,0x55,0x52,0x4c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x74,0x74,0x70,0x55,0x72,0x6c,0x20,0x3d,0x20,0x77,0x73,0x54,0x6f,0x48,0x74,0x74,0x70,0x55,0x72,0x6c,0x28,0x72,0x65,0x6c,0x61,0x79,0x55,0x72,0x6c,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4d,0x61,0x6b,0x65,0x20,0x48,0x54,0x54,0x50,0x20,0x72,0x65,0x71,0x75,0x65,0x73,0x74,0x20,0x77,0x69,0x74,0x68,0x20,0x4e,0x49,0x50,0x2d,0x31,0x31,0x20,0x68,0x65,0x61,0x64,0x65,0x72,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x66,0x65,0x74,0x63,0x68,0x28,0x68,0x74,0x74,0x70,0x55,0x72,0x6c,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x3a,0x20,0x27,0x47,0x45,0x54,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x65,0x61,0x64,0x65,0x72,0x73,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x27,0x41,0x63,0x63,0x65,0x70,0x74,0x27,0x3a,0x20,0x27,0x61,0x70,0x70,0x6c,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2f,0x6e,0x6f,0x73,0x74,0x72,0x2b,0x6a,0x73,0x6f,0x6e,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x27,0x55,0x73,0x65,0x72,0x2d,0x41,0x67,0x65,0x6e,0x74,0x27,0x3a,0x20,0x27,0x43,0x2d,0x52,0x65,0x6c,0x61,0x79,0x2d,0x41,0x64,0x6d,0x69,0x6e,0x2d,0x41,0x50,0x49,0x2f,0x31,0x2e,0x30,0x27,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x3a,0x20,0x31,0x30,0x30,0x30,0x30,0x20,0x2f,0x2f,0x20,0x31,0x30,0x20,0x73,0x65,0x63,0x6f,0x6e,0x64,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x2e,0x6f,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x48,0x54,0x54,0x50,0x20,0x24,0x7b,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x54,0x65,0x78,0x74,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x2e,0x68,0x65,0x61,0x64,0x65,0x72,0x73,0x2e,0x67,0x65,0x74,0x28,0x27,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x74,0x79,0x70,0x65,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x20,0x7c,0x7c,0x20,0x21,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x27,0x61,0x70,0x70,0x6c,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2f,0x6e,0x6f,0x73,0x74,0x72,0x2b,0x6a,0x73,0x6f,0x6e,0x27,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x24,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x7d,0x2e,0x20,0x45,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x61,0x70,0x70,0x6c,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2f,0x6e,0x6f,0x73,0x74,0x72,0x2b,0x6a,0x73,0x6f,0x6e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x2e,0x6a,0x73,0x6f,0x6e,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x69,0x66,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x69,0x6e,0x66,0x6f,0x20,0x69,0x73,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x28,0x6e,0x6f,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x65,0x64,0x20,0x79,0x65,0x74,0x29,0x20,0x62,0x75,0x74,0x20,0x64,0x6f,0x6e,0x27,0x74,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x6f,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x20,0x7c,0x7c,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x72,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x52,0x65,0x6c,0x61,0x79,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x65,0x64,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x4e,0x49,0x50,0x2d,0x31,0x31,0x20,0x69,0x6e,0x66,0x6f,0x20,0x2d,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x6e,0x6f,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x65,0x64,0x20,0x79,0x65,0x74,0x2c,0x20,0x77,0x69,0x6c,0x6c,0x20,0x75,0x73,0x65,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x69,0x66,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x64,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x20,0x2d,0x20,0x74,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x76,0x61,0x6c,0x69,0x64,0x2c,0x20,0x63,0x61,0x6c,0x6c,0x65,0x72,0x20,0x77,0x69,0x6c,0x6c,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x69,0x66,0x20,0x70,0x72,0x65,0x73,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x26,0x26,0x20,0x21,0x2f,0x5e,0x5b,0x30,0x2d,0x39,0x61,0x2d,0x66,0x41,0x2d,0x46,0x5d,0x7b,0x36,0x34,0x7d,0x24,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x72,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x3a,0x20,0x24,0x7b,0x72,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x53,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x20,0x66,0x65,0x74,0x63,0x68,0x65,0x64,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x69,0x6e,0x66,0x6f,0x2e,0x20,0x50,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x24,0x7b,0x72,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x3f,0x20,0x72,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x30,0x2c,0x20,0x31,0x36,0x29,0x20,0x2b,0x20,0x27,0x2e,0x2e,0x2e,0x27,0x20,0x3a,0x20,0x27,0x6e,0x6f,0x74,0x20,0x73,0x65,0x74,0x27,0x7d,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x66,0x65,0x74,0x63,0x68,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x69,0x6e,0x66,0x6f,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x54,0x65,0x73,0x74,0x20,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x0a,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x65,0x73,0x74,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x28,0x77,0x73,0x55,0x72,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x28,0x28,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x2c,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x54,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x3a,0x20,0x24,0x7b,0x77,0x73,0x55,0x72,0x6c,0x7d,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x77,0x73,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x28,0x77,0x73,0x55,0x72,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x20,0x3d,0x20,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x73,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x28,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x20,0x28,0x31,0x30,0x73,0x29,0x27,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x20,0x31,0x30,0x30,0x30,0x30,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x73,0x2e,0x6f,0x6e,0x6f,0x70,0x65,0x6e,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x65,0x61,0x72,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x73,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x73,0x2e,0x6f,0x6e,0x65,0x72,0x72,0x6f,0x72,0x20,0x3d,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x65,0x61,0x72,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x27,0x55,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x20,0x65,0x72,0x72,0x6f,0x72,0x27,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x28,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x27,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x73,0x2e,0x6f,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x20,0x3d,0x20,0x28,0x65,0x76,0x65,0x6e,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x76,0x65,0x6e,0x74,0x2e,0x63,0x6f,0x64,0x65,0x20,0x21,0x3d,0x3d,0x20,0x31,0x30,0x30,0x30,0x29,0x20,0x7b,0x20,0x2f,0x2f,0x20,0x31,0x30,0x30,0x30,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x63,0x6c,0x6f,0x73,0x75,0x72,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x65,0x61,0x72,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x28,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x20,0x63,0x6c,0x6f,0x73,0x65,0x64,0x20,0x75,0x6e,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x6c,0x79,0x3a,0x20,0x24,0x7b,0x65,0x76,0x65,0x6e,0x74,0x2e,0x63,0x6f,0x64,0x65,0x7d,0x20,0x24,0x7b,0x65,0x76,0x65,0x6e,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x20,0x74,0x65,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x28,0x4e,0x49,0x50,0x2d,0x31,0x31,0x20,0x2b,0x20,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x20,0x74,0x65,0x73,0x74,0x29,0x0a,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x54,0x6f,0x52,0x65,0x6c,0x61,0x79,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x55,0x72,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x75,0x72,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x65,0x6e,0x74,0x65,0x72,0x20,0x61,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x55,0x52,0x4c,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x55,0x49,0x20,0x74,0x6f,0x20,0x73,0x68,0x6f,0x77,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6e,0x67,0x20,0x73,0x74,0x61,0x74,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x52,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6e,0x67,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x3a,0x20,0x24,0x7b,0x75,0x72,0x6c,0x7d,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x66,0x65,0x74,0x63,0x68,0x65,0x64,0x52,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x65,0x70,0x20,0x31,0x3a,0x20,0x54,0x72,0x79,0x20,0x74,0x6f,0x20,0x66,0x65,0x74,0x63,0x68,0x20,0x4e,0x49,0x50,0x2d,0x31,0x31,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x69,0x6e,0x66,0x6f,0x72,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x65,0x74,0x63,0x68,0x65,0x64,0x52,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x66,0x65,0x74,0x63,0x68,0x52,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x28,0x75,0x72,0x6c,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x68,0x65,0x63,0x6b,0x20,0x69,0x66,0x20,0x4e,0x49,0x50,0x2d,0x31,0x31,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x20,0x61,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x66,0x65,0x74,0x63,0x68,0x65,0x64,0x52,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4e,0x49,0x50,0x2d,0x31,0x31,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x64,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x2d,0x20,0x70,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x20,0x74,0x68,0x65,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x66,0x69,0x65,0x6c,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x4e,0x49,0x50,0x2d,0x31,0x31,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x64,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x24,0x7b,0x66,0x65,0x74,0x63,0x68,0x65,0x64,0x52,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x30,0x2c,0x20,0x31,0x36,0x29,0x7d,0x2e,0x2e,0x2e,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x4d,0x61,0x6e,0x75,0x61,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x66,0x65,0x74,0x63,0x68,0x65,0x64,0x52,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4e,0x49,0x50,0x2d,0x31,0x31,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x2c,0x20,0x63,0x68,0x65,0x63,0x6b,0x20,0x66,0x6f,0x72,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x20,0x69,0x6e,0x70,0x75,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x4e,0x49,0x50,0x2d,0x31,0x31,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x2c,0x20,0x63,0x68,0x65,0x63,0x6b,0x69,0x6e,0x67,0x20,0x66,0x6f,0x72,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x20,0x69,0x6e,0x70,0x75,0x74,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x4d,0x61,0x6e,0x75,0x61,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x52,0x65,0x6c,0x61,0x79,0x20,0x4e,0x49,0x50,0x2d,0x31,0x31,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x64,0x6f,0x65,0x73,0x20,0x6e,0x6f,0x74,0x20,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x20,0x61,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x2e,0x20,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x65,0x6e,0x74,0x65,0x72,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x6c,0x79,0x20,0x28,0x73,0x68,0x6f,0x77,0x6e,0x20,0x64,0x75,0x72,0x69,0x6e,0x67,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x73,0x74,0x61,0x72,0x74,0x75,0x70,0x29,0x2e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x2f,0x5e,0x5b,0x30,0x2d,0x39,0x61,0x2d,0x66,0x41,0x2d,0x46,0x5d,0x7b,0x36,0x34,0x7d,0x24,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x4d,0x61,0x6e,0x75,0x61,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x6d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x65,0x78,0x61,0x63,0x74,0x6c,0x79,0x20,0x36,0x34,0x20,0x68,0x65,0x78,0x61,0x64,0x65,0x63,0x69,0x6d,0x61,0x6c,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x55,0x73,0x69,0x6e,0x67,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x24,0x7b,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x50,0x75,0x62,0x6b,0x65,0x79,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x30,0x2c,0x20,0x31,0x36,0x29,0x7d,0x2e,0x2e,0x2e,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x64,0x64,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x74,0x6f,0x20,0x74,0x68,0x65,0x20,0x66,0x65,0x74,0x63,0x68,0x65,0x64,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x69,0x6e,0x66,0x6f,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x65,0x74,0x63,0x68,0x65,0x64,0x52,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x50,0x75,0x62,0x6b,0x65,0x79,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x66,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x69,0x6e,0x66,0x6f,0x20,0x77,0x61,0x73,0x20,0x63,0x6f,0x6d,0x70,0x6c,0x65,0x74,0x65,0x6c,0x79,0x20,0x65,0x6d,0x70,0x74,0x79,0x2c,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x20,0x6d,0x69,0x6e,0x69,0x6d,0x61,0x6c,0x20,0x69,0x6e,0x66,0x6f,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x66,0x65,0x74,0x63,0x68,0x65,0x64,0x52,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x65,0x74,0x63,0x68,0x65,0x64,0x52,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x3a,0x20,0x27,0x43,0x2d,0x52,0x65,0x6c,0x61,0x79,0x20,0x28,0x4d,0x61,0x6e,0x75,0x61,0x6c,0x20,0x43,0x6f,0x6e,0x66,0x69,0x67,0x29,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x27,0x43,0x2d,0x52,0x65,0x6c,0x61,0x79,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x2d,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x64,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x6c,0x79,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x63,0x74,0x3a,0x20,0x27,0x61,0x64,0x6d,0x69,0x6e,0x40,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x72,0x65,0x6c,0x61,0x79,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x5f,0x6e,0x69,0x70,0x73,0x3a,0x20,0x5b,0x31,0x2c,0x20,0x39,0x2c,0x20,0x31,0x31,0x2c,0x20,0x31,0x33,0x2c,0x20,0x31,0x35,0x2c,0x20,0x32,0x30,0x2c,0x20,0x33,0x33,0x2c,0x20,0x34,0x30,0x2c,0x20,0x34,0x32,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,0x3a,0x20,0x27,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x67,0x69,0x74,0x68,0x75,0x62,0x2e,0x63,0x6f,0x6d,0x2f,0x30,0x78,0x74,0x72,0x72,0x2f,0x63,0x2d,0x72,0x65,0x6c,0x61,0x79,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3a,0x20,0x27,0x31,0x2e,0x30,0x2e,0x30,0x27,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x6e,0x69,0x70,0x31,0x31,0x45,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x66,0x20,0x4e,0x49,0x50,0x2d,0x31,0x31,0x20,0x63,0x6f,0x6d,0x70,0x6c,0x65,0x74,0x65,0x6c,0x79,0x20,0x66,0x61,0x69,0x6c,0x73,0x20,0x28,0x6e,0x65,0x74,0x77,0x6f,0x72,0x6b,0x20,0x65,0x72,0x72,0x6f,0x72,0x2c,0x20,0x65,0x74,0x63,0x2e,0x29,0x2c,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x4d,0x61,0x6e,0x75,0x61,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x4e,0x49,0x50,0x2d,0x31,0x31,0x20,0x66,0x65,0x74,0x63,0x68,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x6e,0x69,0x70,0x31,0x31,0x45,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x2e,0x20,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x65,0x6e,0x74,0x65,0x72,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x6c,0x79,0x20,0x69,0x66,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x68,0x61,0x73,0x6e,0x27,0x74,0x20,0x62,0x65,0x65,0x6e,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x65,0x64,0x20,0x79,0x65,0x74,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x2f,0x5e,0x5b,0x30,0x2d,0x39,0x61,0x2d,0x66,0x41,0x2d,0x46,0x5d,0x7b,0x36,0x34,0x7d,0x24,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x4d,0x61,0x6e,0x75,0x61,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x6d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x65,0x78,0x61,0x63,0x74,0x6c,0x79,0x20,0x36,0x34,0x20,0x68,0x65,0x78,0x61,0x64,0x65,0x63,0x69,0x6d,0x61,0x6c,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x4e,0x49,0x50,0x2d,0x31,0x31,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x2c,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x24,0x7b,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x50,0x75,0x62,0x6b,0x65,0x79,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x30,0x2c,0x20,0x31,0x36,0x29,0x7d,0x2e,0x2e,0x2e,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x6d,0x69,0x6e,0x69,0x6d,0x61,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x69,0x6e,0x66,0x6f,0x20,0x77,0x69,0x74,0x68,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x65,0x74,0x63,0x68,0x65,0x64,0x52,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x3a,0x20,0x27,0x43,0x2d,0x52,0x65,0x6c,0x61,0x79,0x20,0x28,0x4d,0x61,0x6e,0x75,0x61,0x6c,0x20,0x43,0x6f,0x6e,0x66,0x69,0x67,0x29,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x27,0x43,0x2d,0x52,0x65,0x6c,0x61,0x79,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x2d,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x64,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x6c,0x79,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x63,0x74,0x3a,0x20,0x27,0x61,0x64,0x6d,0x69,0x6e,0x40,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x72,0x65,0x6c,0x61,0x79,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x5f,0x6e,0x69,0x70,0x73,0x3a,0x20,0x5b,0x31,0x2c,0x20,0x39,0x2c,0x20,0x31,0x31,0x2c,0x20,0x31,0x33,0x2c,0x20,0x31,0x35,0x2c,0x20,0x32,0x30,0x2c,0x20,0x33,0x33,0x2c,0x20,0x34,0x30,0x2c,0x20,0x34,0x32,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,0x3a,0x20,0x27,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x67,0x69,0x74,0x68,0x75,0x62,0x2e,0x63,0x6f,0x6d,0x2f,0x30,0x78,0x74,0x72,0x72,0x2f,0x63,0x2d,0x72,0x65,0x6c,0x61,0x79,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3a,0x20,0x27,0x31,0x2e,0x30,0x2e,0x30,0x27,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x65,0x70,0x20,0x32,0x3a,0x20,0x54,0x65,0x73,0x74,0x20,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x74,0x65,0x73,0x74,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x28,0x75,0x72,0x6c,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x65,0x70,0x20,0x33,0x3a,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x20,0x73,0x74,0x61,0x74,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x66,0x65,0x74,0x63,0x68,0x65,0x64,0x52,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x66,0x65,0x74,0x63,0x68,0x65,0x64,0x52,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x52,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x65,0x70,0x20,0x34,0x3a,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x55,0x49,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x52,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x41,0x64,0x6d,0x69,0x6e,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x56,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x65,0x70,0x20,0x35,0x3a,0x20,0x52,0x65,0x6c,0x61,0x79,0x20,0x55,0x52,0x4c,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x65,0x70,0x20,0x36,0x3a,0x20,0x41,0x75,0x74,0x6f,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,0x6c,0x79,0x20,0x6c,0x6f,0x61,0x64,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x61,0x6e,0x64,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x52,0x65,0x6c,0x61,0x79,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x2e,0x20,0x41,0x75,0x74,0x6f,0x2d,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x61,0x6e,0x64,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x75,0x74,0x6f,0x2d,0x66,0x65,0x74,0x63,0x68,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x65,0x74,0x63,0x68,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x28,0x29,0x2e,0x63,0x61,0x74,0x63,0x68,0x28,0x65,0x72,0x72,0x6f,0x72,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x41,0x75,0x74,0x6f,0x2d,0x66,0x65,0x74,0x63,0x68,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x27,0x20,0x2b,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x20,0x35,0x30,0x30,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x75,0x74,0x6f,0x2d,0x66,0x65,0x74,0x63,0x68,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x61,0x64,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x28,0x29,0x2e,0x63,0x61,0x74,0x63,0x68,0x28,0x65,0x72,0x72,0x6f,0x72,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x41,0x75,0x74,0x6f,0x2d,0x66,0x65,0x74,0x63,0x68,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x27,0x20,0x2b,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x20,0x31,0x30,0x30,0x30,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x75,0x74,0x6f,0x2d,0x66,0x65,0x74,0x63,0x68,0x20,0x64,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x20,0x73,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x6e,0x64,0x53,0x74,0x61,0x74,0x73,0x51,0x75,0x65,0x72,0x79,0x28,0x29,0x2e,0x63,0x61,0x74,0x63,0x68,0x28,0x65,0x72,0x72,0x6f,0x72,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x41,0x75,0x74,0x6f,0x2d,0x66,0x65,0x74,0x63,0x68,0x20,0x73,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x27,0x20,0x2b,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x20,0x31,0x35,0x30,0x30,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x53,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x3a,0x20,0x24,0x7b,0x72,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x7c,0x7c,0x20,0x27,0x55,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x27,0x7d,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x52,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x65,0x72,0x72,0x6f,0x72,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x73,0x65,0x74,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x6f,0x6e,0x20,0x66,0x61,0x69,0x6c,0x75,0x72,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x52,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x66,0x69,0x6e,0x61,0x6c,0x6c,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x44,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x20,0x66,0x72,0x6f,0x6d,0x20,0x72,0x65,0x6c,0x61,0x79,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x46,0x72,0x6f,0x6d,0x52,0x65,0x6c,0x61,0x79,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x44,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6e,0x67,0x20,0x66,0x72,0x6f,0x6d,0x20,0x72,0x65,0x6c,0x61,0x79,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6c,0x65,0x61,0x6e,0x20,0x75,0x70,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x70,0x6f,0x6f,0x6c,0x20,0x69,0x66,0x20,0x65,0x78,0x69,0x73,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x55,0x72,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x75,0x72,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x28,0x5b,0x75,0x72,0x6c,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x49,0x64,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x73,0x65,0x74,0x20,0x73,0x74,0x61,0x74,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x52,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x55,0x49,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x52,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x64,0x65,0x52,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x41,0x64,0x6d,0x69,0x6e,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x56,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x44,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x20,0x66,0x72,0x6f,0x6d,0x20,0x72,0x65,0x6c,0x61,0x79,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x45,0x72,0x72,0x6f,0x72,0x20,0x64,0x75,0x72,0x69,0x6e,0x67,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x55,0x49,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x52,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x73,0x74,0x61,0x74,0x75,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x73,0x77,0x69,0x74,0x63,0x68,0x20,0x28,0x73,0x74,0x61,0x74,0x75,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x27,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6e,0x67,0x27,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x43,0x4f,0x4e,0x4e,0x45,0x43,0x54,0x49,0x4e,0x47,0x2e,0x2e,0x2e,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x27,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x27,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x27,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x43,0x4f,0x4e,0x4e,0x45,0x43,0x54,0x45,0x44,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x27,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x27,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x27,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x4e,0x4f,0x54,0x20,0x43,0x4f,0x4e,0x4e,0x45,0x43,0x54,0x45,0x44,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x27,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x27,0x65,0x72,0x72,0x6f,0x72,0x27,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x43,0x4f,0x4e,0x4e,0x45,0x43,0x54,0x49,0x4f,0x4e,0x20,0x46,0x41,0x49,0x4c,0x45,0x44,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x27,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x65,0x72,0x72,0x6f,0x72,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x48,0x69,0x64,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x69,0x6e,0x66,0x6f,0x72,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x28,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x20,0x66,0x6f,0x72,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x64,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x74,0x79,0x29,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x69,0x64,0x65,0x52,0x65,0x6c,0x61,0x79,0x49,0x6e,0x66,0x6f,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x6c,0x61,0x79,0x20,0x69,0x6e,0x66,0x6f,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x74,0x79,0x20,0x68,0x61,0x73,0x20,0x62,0x65,0x65,0x6e,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x52,0x65,0x6c,0x61,0x79,0x20,0x69,0x6e,0x66,0x6f,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x74,0x79,0x20,0x68,0x61,0x73,0x20,0x62,0x65,0x65,0x6e,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x64,0x27,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x43,0x68,0x65,0x63,0x6b,0x20,0x66,0x6f,0x72,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x20,0x61,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x77,0x69,0x74,0x68,0x20,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x20,0x41,0x50,0x49,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x73,0x20,0x61,0x6e,0x64,0x20,0x72,0x65,0x74,0x72,0x79,0x20,0x6c,0x6f,0x67,0x69,0x63,0x0a,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x68,0x65,0x63,0x6b,0x45,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x41,0x75,0x74,0x68,0x57,0x69,0x74,0x68,0x52,0x65,0x74,0x72,0x69,0x65,0x73,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x53,0x74,0x61,0x72,0x74,0x69,0x6e,0x67,0x20,0x61,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x64,0x65,0x74,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x77,0x69,0x74,0x68,0x20,0x72,0x65,0x74,0x72,0x79,0x20,0x6c,0x6f,0x67,0x69,0x63,0x2e,0x2e,0x2e,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x61,0x78,0x41,0x74,0x74,0x65,0x6d,0x70,0x74,0x73,0x20,0x3d,0x20,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x6c,0x61,0x79,0x20,0x3d,0x20,0x32,0x30,0x30,0x3b,0x20,0x2f,0x2f,0x20,0x6d,0x73,0x20,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x20,0x61,0x74,0x74,0x65,0x6d,0x70,0x74,0x73,0x20,0x28,0x72,0x65,0x64,0x75,0x63,0x65,0x64,0x20,0x66,0x72,0x6f,0x6d,0x20,0x35,0x30,0x30,0x6d,0x73,0x29,0x0a,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x61,0x74,0x74,0x65,0x6d,0x70,0x74,0x20,0x3d,0x20,0x31,0x3b,0x20,0x61,0x74,0x74,0x65,0x6d,0x70,0x74,0x20,0x3c,0x3d,0x20,0x6d,0x61,0x78,0x41,0x74,0x74,0x65,0x6d,0x70,0x74,0x73,0x3b,0x20,0x61,0x74,0x74,0x65,0x6d,0x70,0x74,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0x41,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x64,0x65,0x74,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x74,0x74,0x65,0x6d,0x70,0x74,0x20,0x24,0x7b,0x61,0x74,0x74,0x65,0x6d,0x70,0x74,0x7d,0x2f,0x24,0x7b,0x6d,0x61,0x78,0x41,0x74,0x74,0x65,0x6d,0x70,0x74,0x73,0x7d,0x60,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4d,0x65,0x74,0x68,0x6f,0x64,0x20,0x31,0x3a,0x20,0x54,0x72,0x79,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x4f,0x53,0x54,0x52,0x5f,0x4c,0x4f,0x47,0x49,0x4e,0x5f,0x4c,0x49,0x54,0x45,0x2e,0x67,0x65,0x74,0x41,0x75,0x74,0x68,0x53,0x74,0x61,0x74,0x65,0x28,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x4f,0x53,0x54,0x52,0x5f,0x4c,0x4f,0x47,0x49,0x4e,0x5f,0x4c,0x49,0x54,0x45,0x20,0x26,0x26,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x4f,0x53,0x54,0x52,0x5f,0x4c,0x4f,0x47,0x49,0x4e,0x5f,0x4c,0x49,0x54,0x45,0x2e,0x67,0x65,0x74,0x41,0x75,0x74,0x68,0x53,0x74,0x61,0x74,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x54,0x72,0x79,0x69,0x6e,0x67,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x4f,0x53,0x54,0x52,0x5f,0x4c,0x4f,0x47,0x49,0x4e,0x5f,0x4c,0x49,0x54,0x45,0x2e,0x67,0x65,0x74,0x41,0x75,0x74,0x68,0x53,0x74,0x61,0x74,0x65,0x28,0x29,0x2e,0x2e,0x2e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x75,0x74,0x68,0x53,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x4f,0x53,0x54,0x52,0x5f,0x4c,0x4f,0x47,0x49,0x4e,0x5f,0x4c,0x49,0x54,0x45,0x2e,0x67,0x65,0x74,0x41,0x75,0x74,0x68,0x53,0x74,0x61,0x74,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x75,0x74,0x68,0x53,0x74,0x61,0x74,0x65,0x20,0x26,0x26,0x20,0x61,0x75,0x74,0x68,0x53,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0xe2,0x9c,0x85,0x20,0x41,0x75,0x74,0x68,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x76,0x69,0x61,0x20,0x4e,0x4f,0x53,0x54,0x52,0x5f,0x4c,0x4f,0x47,0x49,0x4e,0x5f,0x4c,0x49,0x54,0x45,0x2e,0x67,0x65,0x74,0x41,0x75,0x74,0x68,0x53,0x74,0x61,0x74,0x65,0x28,0x29,0x3a,0x27,0x2c,0x20,0x61,0x75,0x74,0x68,0x53,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x72,0x65,0x73,0x74,0x6f,0x72,0x65,0x41,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x65,0x28,0x61,0x75,0x74,0x68,0x53,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4d,0x65,0x74,0x68,0x6f,0x64,0x20,0x32,0x3a,0x20,0x54,0x72,0x79,0x20,0x6e,0x6c,0x4c,0x69,0x74,0x65,0x2e,0x67,0x65,0x74,0x50,0x75,0x62,0x6c,0x69,0x63,0x4b,0x65,0x79,0x28,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6c,0x4c,0x69,0x74,0x65,0x20,0x26,0x26,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6e,0x6c,0x4c,0x69,0x74,0x65,0x2e,0x67,0x65,0x74,0x50,0x75,0x62,0x6c,0x69,0x63,0x4b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x54,0x72,0x79,0x69,0x6e,0x67,0x20,0x6e,0x6c,0x4c,0x69,0x74,0x65,0x2e,0x67,0x65,0x74,0x50,0x75,0x62,0x6c,0x69,0x63,0x4b,0x65,0x79,0x28,0x29,0x2e,0x2e,0x2e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x6e,0x6c,0x4c,0x69,0x74,0x65,0x2e,0x67,0x65,0x74,0x50,0x75,0x62,0x6c,0x69,0x63,0x4b,0x65,0x79,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x26,0x26,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0xe2,0x9c,0x85,0x20,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x76,0x69,0x61,0x20,0x6e,0x6c,0x4c,0x69,0x74,0x65,0x2e,0x67,0x65,0x74,0x50,0x75,0x62,0x6c,0x69,0x63,0x4b,0x65,0x79,0x28,0x29,0x3a,0x27,0x2c,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x72,0x65,0x73,0x74,0x6f,0x72,0x65,0x41,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x65,0x28,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4d,0x65,0x74,0x68,0x6f,0x64,0x20,0x33,0x3a,0x20,0x54,0x72,0x79,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x67,0x65,0x74,0x50,0x75,0x62,0x6c,0x69,0x63,0x4b,0x65,0x79,0x28,0x29,0x20,0x28,0x4e,0x49,0x50,0x2d,0x30,0x37,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x20,0x26,0x26,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x67,0x65,0x74,0x50,0x75,0x62,0x6c,0x69,0x63,0x4b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x54,0x72,0x79,0x69,0x6e,0x67,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x67,0x65,0x74,0x50,0x75,0x62,0x6c,0x69,0x63,0x4b,0x65,0x79,0x28,0x29,0x2e,0x2e,0x2e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x67,0x65,0x74,0x50,0x75,0x62,0x6c,0x69,0x63,0x4b,0x65,0x79,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x26,0x26,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0xe2,0x9c,0x85,0x20,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x76,0x69,0x61,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x67,0x65,0x74,0x50,0x75,0x62,0x6c,0x69,0x63,0x4b,0x65,0x79,0x28,0x29,0x3a,0x27,0x2c,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x72,0x65,0x73,0x74,0x6f,0x72,0x65,0x41,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x65,0x28,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4d,0x65,0x74,0x68,0x6f,0x64,0x20,0x34,0x3a,0x20,0x43,0x68,0x65,0x63,0x6b,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6c,0x79,0x20,0x66,0x6f,0x72,0x20,0x4e,0x4f,0x53,0x54,0x52,0x5f,0x4c,0x4f,0x47,0x49,0x4e,0x5f,0x4c,0x49,0x54,0x45,0x20,0x64,0x61,0x74,0x61,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x44,0x61,0x74,0x61,0x20,0x3d,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x2e,0x67,0x65,0x74,0x49,0x74,0x65,0x6d,0x28,0x27,0x4e,0x4f,0x53,0x54,0x52,0x5f,0x4c,0x4f,0x47,0x49,0x4e,0x5f,0x4c,0x49,0x54,0x45,0x5f,0x44,0x41,0x54,0x41,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x44,0x61,0x74,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x61,0x72,0x73,0x65,0x64,0x44,0x61,0x74,0x61,0x20,0x3d,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x44,0x61,0x74,0x61,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x73,0x65,0x64,0x44,0x61,0x74,0x61,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0xe2,0x9c,0x85,0x20,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x69,0x6e,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x3a,0x27,0x2c,0x20,0x70,0x61,0x72,0x73,0x65,0x64,0x44,0x61,0x74,0x61,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x72,0x65,0x73,0x74,0x6f,0x72,0x65,0x41,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x65,0x28,0x70,0x61,0x72,0x73,0x65,0x64,0x44,0x61,0x74,0x61,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x70,0x61,0x72,0x73,0x65,0x45,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x70,0x61,0x72,0x73,0x65,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x20,0x64,0x61,0x74,0x61,0x3a,0x27,0x2c,0x20,0x70,0x61,0x72,0x73,0x65,0x45,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0xe2,0x9d,0x8c,0x20,0x41,0x74,0x74,0x65,0x6d,0x70,0x74,0x20,0x24,0x7b,0x61,0x74,0x74,0x65,0x6d,0x70,0x74,0x7d,0x3a,0x20,0x4e,0x6f,0x20,0x61,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x76,0x69,0x61,0x20,0x61,0x6e,0x79,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x60,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x57,0x61,0x69,0x74,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x20,0x6e,0x65,0x78,0x74,0x20,0x61,0x74,0x74,0x65,0x6d,0x70,0x74,0x20,0x28,0x65,0x78,0x63,0x65,0x70,0x74,0x20,0x66,0x6f,0x72,0x20,0x6c,0x61,0x73,0x74,0x20,0x61,0x74,0x74,0x65,0x6d,0x70,0x74,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x74,0x74,0x65,0x6d,0x70,0x74,0x20,0x3c,0x20,0x6d,0x61,0x78,0x41,0x74,0x74,0x65,0x6d,0x70,0x74,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x6e,0x65,0x77,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x28,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x20,0x3d,0x3e,0x20,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x2c,0x20,0x64,0x65,0x6c,0x61,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0xe2,0x9d,0x8c,0x20,0x41,0x74,0x74,0x65,0x6d,0x70,0x74,0x20,0x24,0x7b,0x61,0x74,0x74,0x65,0x6d,0x70,0x74,0x7d,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x60,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x74,0x74,0x65,0x6d,0x70,0x74,0x20,0x3c,0x20,0x6d,0x61,0x78,0x41,0x74,0x74,0x65,0x6d,0x70,0x74,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x6e,0x65,0x77,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x28,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x20,0x3d,0x3e,0x20,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x2c,0x20,0x64,0x65,0x6c,0x61,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0xf0,0x9f,0x94,0x8d,0x20,0x41,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x64,0x65,0x74,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6f,0x6d,0x70,0x6c,0x65,0x74,0x65,0x64,0x20,0x2d,0x20,0x6e,0x6f,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x20,0x61,0x75,0x74,0x68,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x61,0x6c,0x6c,0x20,0x61,0x74,0x74,0x65,0x6d,0x70,0x74,0x73,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x48,0x65,0x6c,0x70,0x65,0x72,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x20,0x72,0x65,0x73,0x74,0x6f,0x72,0x65,0x20,0x61,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x61,0x74,0x65,0x0a,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x74,0x6f,0x72,0x65,0x41,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x65,0x28,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0xf0,0x9f,0x94,0x84,0x20,0x52,0x65,0x73,0x74,0x6f,0x72,0x69,0x6e,0x67,0x20,0x61,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x66,0x6f,0x72,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x27,0x2c,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x68,0x6f,0x77,0x20,0x6d,0x61,0x69,0x6e,0x20,0x69,0x6e,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x20,0x61,0x6e,0x64,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x69,0x6e,0x20,0x68,0x65,0x61,0x64,0x65,0x72,0x0a,0x20,0x20,0x20,0x20,0x73,0x68,0x6f,0x77,0x50,0x72,0x6f,0x66,0x69,0x6c,0x65,0x49,0x6e,0x48,0x65,0x61,0x64,0x65,0x72,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x61,0x64,0x55,0x73,0x65,0x72,0x50,0x72,0x6f,0x66,0x69,0x6c,0x65,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4e,0x6f,0x74,0x65,0x3a,0x20,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x66,0x65,0x74,0x63,0x68,0x69,0x6e,0x67,0x20,0x6e,0x6f,0x77,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x73,0x20,0x65,0x78,0x70,0x6c,0x69,0x63,0x69,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x72,0x20,0x6d,0x75,0x73,0x74,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x6c,0x79,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0xe2,0x9c,0x85,0x20,0x41,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x72,0x65,0x73,0x74,0x6f,0x72,0x65,0x64,0x20,0x2d,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x74,0x6f,0x20,0x66,0x65,0x74,0x63,0x68,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0xe2,0x9c,0x85,0x20,0x41,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x72,0x65,0x73,0x74,0x6f,0x72,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x27,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x4c,0x65,0x67,0x61,0x63,0x79,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6f,0x72,0x20,0x62,0x61,0x63,0x6b,0x77,0x61,0x72,0x64,0x20,0x63,0x6f,0x6d,0x70,0x61,0x74,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x0a,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x68,0x65,0x63,0x6b,0x45,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x41,0x75,0x74,0x68,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x63,0x68,0x65,0x63,0x6b,0x45,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x41,0x75,0x74,0x68,0x57,0x69,0x74,0x68,0x52,0x65,0x74,0x72,0x69,0x65,0x73,0x28,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x49,0x6e,0x69,0x74,0x69,0x61,0x6c,0x69,0x7a,0x65,0x20,0x4e,0x4f,0x53,0x54,0x52,0x5f,0x4c,0x4f,0x47,0x49,0x4e,0x5f,0x4c,0x49,0x54,0x45,0x0a,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x69,0x7a,0x65,0x41,0x70,0x70,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x4f,0x53,0x54,0x52,0x5f,0x4c,0x4f,0x47,0x49,0x4e,0x5f,0x4c,0x49,0x54,0x45,0x2e,0x69,0x6e,0x69,0x74,0x28,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x65,0x6d,0x65,0x3a,0x20,0x27,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x73,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x65,0x64,0x70,0x68,0x72,0x61,0x73,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x74,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x74,0x70,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x69,0x6e,0x67,0x54,0x61,0x62,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6c,0x4c,0x69,0x74,0x65,0x20,0x3d,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x4f,0x53,0x54,0x52,0x5f,0x4c,0x4f,0x47,0x49,0x4e,0x5f,0x4c,0x49,0x54,0x45,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x4e,0x6f,0x73,0x74,0x72,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x20,0x73,0x79,0x73,0x74,0x65,0x6d,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x69,0x7a,0x65,0x64,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x68,0x65,0x63,0x6b,0x20,0x66,0x6f,0x72,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x20,0x61,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x69,0x7a,0x61,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x77,0x61,0x73,0x41,0x6c,0x72,0x65,0x61,0x64,0x79,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x63,0x68,0x65,0x63,0x6b,0x45,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x41,0x75,0x74,0x68,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x77,0x61,0x73,0x41,0x6c,0x72,0x65,0x61,0x64,0x79,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x55,0x73,0x65,0x72,0x20,0x77,0x61,0x73,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x2c,0x20,0x73,0x68,0x6f,0x77,0x69,0x6e,0x67,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x69,0x6e,0x20,0x68,0x65,0x61,0x64,0x65,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x68,0x6f,0x77,0x50,0x72,0x6f,0x66,0x69,0x6c,0x65,0x49,0x6e,0x48,0x65,0x61,0x64,0x65,0x72,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x4e,0x6f,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x20,0x61,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6f,0x75,0x6e,0x64,0x2c,0x20,0x73,0x68,0x6f,0x77,0x69,0x6e,0x67,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x20,0x6d,0x6f,0x64,0x61,0x6c,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x68,0x6f,0x77,0x4c,0x6f,0x67,0x69,0x6e,0x4d,0x6f,0x64,0x61,0x6c,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x69,0x73,0x74,0x65,0x6e,0x20,0x66,0x6f,0x72,0x20,0x61,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x6e,0x6c,0x4d,0x65,0x74,0x68,0x6f,0x64,0x53,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x27,0x2c,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x41,0x75,0x74,0x68,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x6e,0x6c,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x27,0x2c,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x69,0x7a,0x65,0x20,0x4e,0x6f,0x73,0x74,0x72,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x3a,0x20,0x27,0x20,0x2b,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x61,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x41,0x75,0x74,0x68,0x45,0x76,0x65,0x6e,0x74,0x28,0x65,0x76,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x2c,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x7d,0x20,0x3d,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x64,0x65,0x74,0x61,0x69,0x6c,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x65,0x74,0x68,0x6f,0x64,0x20,0x26,0x26,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0x4c,0x6f,0x67,0x69,0x6e,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x21,0x20,0x4d,0x65,0x74,0x68,0x6f,0x64,0x3a,0x20,0x24,0x7b,0x6d,0x65,0x74,0x68,0x6f,0x64,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0x50,0x75,0x62,0x6c,0x69,0x63,0x20,0x6b,0x65,0x79,0x3a,0x20,0x24,0x7b,0x70,0x75,0x62,0x6b,0x65,0x79,0x7d,0x60,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x69,0x64,0x65,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x20,0x6d,0x6f,0x64,0x61,0x6c,0x20,0x61,0x6e,0x64,0x20,0x73,0x68,0x6f,0x77,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x69,0x6e,0x20,0x68,0x65,0x61,0x64,0x65,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x64,0x65,0x4c,0x6f,0x67,0x69,0x6e,0x4d,0x6f,0x64,0x61,0x6c,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x68,0x6f,0x77,0x50,0x72,0x6f,0x66,0x69,0x6c,0x65,0x49,0x6e,0x48,0x65,0x61,0x64,0x65,0x72,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x61,0x64,0x55,0x73,0x65,0x72,0x50,0x72,0x6f,0x66,0x69,0x6c,0x65,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4e,0x6f,0x74,0x65,0x3a,0x20,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x66,0x65,0x74,0x63,0x68,0x69,0x6e,0x67,0x20,0x6e,0x6f,0x77,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x73,0x20,0x65,0x78,0x70,0x6c,0x69,0x63,0x69,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x72,0x20,0x6d,0x75,0x73,0x74,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x6c,0x79,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x4c,0x6f,0x67,0x69,0x6e,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x2e,0x20,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x74,0x6f,0x20,0x61,0x63,0x63,0x65,0x73,0x73,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0x41,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x65,0x72,0x72,0x6f,0x72,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6c,0x65,0x61,0x6e,0x20,0x75,0x70,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x46,0x72,0x6f,0x6d,0x52,0x65,0x6c,0x61,0x79,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x73,0x65,0x74,0x20,0x55,0x49,0x20,0x2d,0x20,0x68,0x69,0x64,0x65,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x61,0x6e,0x64,0x20,0x73,0x68,0x6f,0x77,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x20,0x6d,0x6f,0x64,0x61,0x6c,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x64,0x65,0x50,0x72,0x6f,0x66,0x69,0x6c,0x65,0x46,0x72,0x6f,0x6d,0x48,0x65,0x61,0x64,0x65,0x72,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x68,0x6f,0x77,0x4c,0x6f,0x67,0x69,0x6e,0x4d,0x6f,0x64,0x61,0x6c,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x43,0x6f,0x6e,0x66,0x69,0x67,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x66,0x61,0x6c,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x41,0x64,0x6d,0x69,0x6e,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x56,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x27,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x0a,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x20,0x6f,0x66,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x20,0x62,0x61,0x73,0x65,0x64,0x20,0x6f,0x6e,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x20,0x61,0x6e,0x64,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x61,0x74,0x75,0x73,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x41,0x64,0x6d,0x69,0x6e,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x56,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x69,0x76,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x64,0x69,0x76,0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x53,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x64,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x53,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x69,0x70,0x31,0x37,0x44,0x4d,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x6e,0x69,0x70,0x31,0x37,0x44,0x4d,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x53,0x68,0x6f,0x77,0x20,0x3d,0x20,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x26,0x26,0x20,0x69,0x73,0x52,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x69,0x76,0x43,0x6f,0x6e,0x66,0x69,0x67,0x29,0x20,0x64,0x69,0x76,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x53,0x68,0x6f,0x77,0x20,0x3f,0x20,0x27,0x62,0x6c,0x6f,0x63,0x6b,0x27,0x20,0x3a,0x20,0x27,0x6e,0x6f,0x6e,0x65,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x29,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x53,0x68,0x6f,0x77,0x20,0x3f,0x20,0x27,0x62,0x6c,0x6f,0x63,0x6b,0x27,0x20,0x3a,0x20,0x27,0x6e,0x6f,0x6e,0x65,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x53,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x29,0x20,0x64,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x53,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x53,0x68,0x6f,0x77,0x20,0x3f,0x20,0x27,0x62,0x6c,0x6f,0x63,0x6b,0x27,0x20,0x3a,0x20,0x27,0x6e,0x6f,0x6e,0x65,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x69,0x70,0x31,0x37,0x44,0x4d,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x29,0x20,0x6e,0x69,0x70,0x31,0x37,0x44,0x4d,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x53,0x68,0x6f,0x77,0x20,0x3f,0x20,0x27,0x62,0x6c,0x6f,0x63,0x6b,0x27,0x20,0x3a,0x20,0x27,0x6e,0x6f,0x6e,0x65,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x61,0x72,0x74,0x2f,0x73,0x74,0x6f,0x70,0x20,0x61,0x75,0x74,0x6f,0x2d,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x20,0x62,0x61,0x73,0x65,0x64,0x20,0x6f,0x6e,0x20,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x6f,0x75,0x6c,0x64,0x53,0x68,0x6f,0x77,0x20,0x26,0x26,0x20,0x64,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x53,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x26,0x26,0x20,0x64,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x53,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x62,0x6c,0x6f,0x63,0x6b,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x72,0x74,0x53,0x74,0x61,0x74,0x73,0x41,0x75,0x74,0x6f,0x52,0x65,0x66,0x72,0x65,0x73,0x68,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x6f,0x70,0x53,0x74,0x61,0x74,0x73,0x41,0x75,0x74,0x6f,0x52,0x65,0x66,0x72,0x65,0x73,0x68,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x63,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x77,0x68,0x65,0x6e,0x20,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x43,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x28,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x53,0x68,0x6f,0x77,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x20,0x6d,0x6f,0x64,0x61,0x6c,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x68,0x6f,0x77,0x4c,0x6f,0x67,0x69,0x6e,0x4d,0x6f,0x64,0x61,0x6c,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x6f,0x67,0x69,0x6e,0x4d,0x6f,0x64,0x61,0x6c,0x20,0x26,0x26,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x4d,0x6f,0x64,0x61,0x6c,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x6e,0x69,0x74,0x69,0x61,0x6c,0x69,0x7a,0x65,0x20,0x74,0x68,0x65,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x20,0x55,0x49,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x6d,0x6f,0x64,0x61,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x4f,0x53,0x54,0x52,0x5f,0x4c,0x4f,0x47,0x49,0x4e,0x5f,0x4c,0x49,0x54,0x45,0x20,0x26,0x26,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x4f,0x53,0x54,0x52,0x5f,0x4c,0x4f,0x47,0x49,0x4e,0x5f,0x4c,0x49,0x54,0x45,0x2e,0x65,0x6d,0x62,0x65,0x64,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x4f,0x53,0x54,0x52,0x5f,0x4c,0x4f,0x47,0x49,0x4e,0x5f,0x4c,0x49,0x54,0x45,0x2e,0x65,0x6d,0x62,0x65,0x64,0x28,0x27,0x23,0x6c,0x6f,0x67,0x69,0x6e,0x2d,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x27,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x61,0x6d,0x6c,0x65,0x73,0x73,0x3a,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x4d,0x6f,0x64,0x61,0x6c,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x27,0x66,0x6c,0x65,0x78,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x48,0x69,0x64,0x65,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x20,0x6d,0x6f,0x64,0x61,0x6c,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x69,0x64,0x65,0x4c,0x6f,0x67,0x69,0x6e,0x4d,0x6f,0x64,0x61,0x6c,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x6f,0x67,0x69,0x6e,0x4d,0x6f,0x64,0x61,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x4d,0x6f,0x64,0x61,0x6c,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x27,0x6e,0x6f,0x6e,0x65,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x53,0x68,0x6f,0x77,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x69,0x6e,0x20,0x68,0x65,0x61,0x64,0x65,0x72,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x68,0x6f,0x77,0x50,0x72,0x6f,0x66,0x69,0x6c,0x65,0x49,0x6e,0x48,0x65,0x61,0x64,0x65,0x72,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x41,0x72,0x65,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x41,0x72,0x65,0x61,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x27,0x66,0x6c,0x65,0x78,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x48,0x69,0x64,0x65,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x66,0x72,0x6f,0x6d,0x20,0x68,0x65,0x61,0x64,0x65,0x72,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x69,0x64,0x65,0x50,0x72,0x6f,0x66,0x69,0x6c,0x65,0x46,0x72,0x6f,0x6d,0x48,0x65,0x61,0x64,0x65,0x72,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x41,0x72,0x65,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x41,0x72,0x65,0x61,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x27,0x6e,0x6f,0x6e,0x65,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x6c,0x73,0x6f,0x20,0x68,0x69,0x64,0x65,0x20,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x20,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x20,0x69,0x66,0x20,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x44,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x44,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x27,0x6e,0x6f,0x6e,0x65,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x2f,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x20,0x55,0x49,0x20,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x20,0x28,0x6c,0x65,0x67,0x61,0x63,0x79,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x2d,0x20,0x6b,0x65,0x70,0x74,0x20,0x66,0x6f,0x72,0x20,0x62,0x61,0x63,0x6b,0x77,0x61,0x72,0x64,0x20,0x63,0x6f,0x6d,0x70,0x61,0x74,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x29,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x4c,0x6f,0x67,0x69,0x6e,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x55,0x49,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x69,0x73,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x20,0x6e,0x6f,0x77,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x64,0x20,0x62,0x79,0x20,0x73,0x68,0x6f,0x77,0x50,0x72,0x6f,0x66,0x69,0x6c,0x65,0x49,0x6e,0x48,0x65,0x61,0x64,0x65,0x72,0x28,0x29,0x20,0x61,0x6e,0x64,0x20,0x68,0x69,0x64,0x65,0x50,0x72,0x6f,0x66,0x69,0x6c,0x65,0x46,0x72,0x6f,0x6d,0x48,0x65,0x61,0x64,0x65,0x72,0x28,0x29,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4b,0x65,0x70,0x74,0x20,0x66,0x6f,0x72,0x20,0x62,0x61,0x63,0x6b,0x77,0x61,0x72,0x64,0x20,0x63,0x6f,0x6d,0x70,0x61,0x74,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x20,0x77,0x69,0x74,0x68,0x20,0x61,0x6e,0x79,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x20,0x63,0x6f,0x64,0x65,0x20,0x74,0x68,0x61,0x74,0x20,0x6d,0x69,0x67,0x68,0x74,0x20,0x63,0x61,0x6c,0x6c,0x20,0x69,0x74,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x53,0x68,0x6f,0x77,0x20,0x6d,0x61,0x69,0x6e,0x20,0x69,0x6e,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x20,0x28,0x6c,0x65,0x67,0x61,0x63,0x79,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x2d,0x20,0x6b,0x65,0x70,0x74,0x20,0x66,0x6f,0x72,0x20,0x62,0x61,0x63,0x6b,0x77,0x61,0x72,0x64,0x20,0x63,0x6f,0x6d,0x70,0x61,0x74,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x29,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x68,0x6f,0x77,0x4d,0x61,0x69,0x6e,0x49,0x6e,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x69,0x73,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x20,0x6e,0x6f,0x77,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x64,0x20,0x62,0x79,0x20,0x73,0x68,0x6f,0x77,0x50,0x72,0x6f,0x66,0x69,0x6c,0x65,0x49,0x6e,0x48,0x65,0x61,0x64,0x65,0x72,0x28,0x29,0x20,0x61,0x6e,0x64,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x41,0x64,0x6d,0x69,0x6e,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x56,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x28,0x29,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4b,0x65,0x70,0x74,0x20,0x66,0x6f,0x72,0x20,0x62,0x61,0x63,0x6b,0x77,0x61,0x72,0x64,0x20,0x63,0x6f,0x6d,0x70,0x61,0x74,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x20,0x77,0x69,0x74,0x68,0x20,0x61,0x6e,0x79,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x20,0x63,0x6f,0x64,0x65,0x20,0x74,0x68,0x61,0x74,0x20,0x6d,0x69,0x67,0x68,0x74,0x20,0x63,0x61,0x6c,0x6c,0x20,0x69,0x74,0x0a,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x41,0x64,0x6d,0x69,0x6e,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x56,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x28,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x4c,0x6f,0x61,0x64,0x20,0x75,0x73,0x65,0x72,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x6e,0x6f,0x73,0x74,0x72,0x2d,0x74,0x6f,0x6f,0x6c,0x73,0x20,0x70,0x6f,0x6f,0x6c,0x0a,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x6f,0x61,0x64,0x55,0x73,0x65,0x72,0x50,0x72,0x6f,0x66,0x69,0x6c,0x65,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x4c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x20,0x75,0x73,0x65,0x72,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x2e,0x2e,0x2e,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x68,0x65,0x61,0x64,0x65,0x72,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x28,0x6e,0x65,0x77,0x20,0x73,0x79,0x73,0x74,0x65,0x6d,0x29,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x65,0x61,0x64,0x65,0x72,0x55,0x73,0x65,0x72,0x4e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x65,0x61,0x64,0x65,0x72,0x55,0x73,0x65,0x72,0x4e,0x61,0x6d,0x65,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x4c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x2e,0x2e,0x2e,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x6c,0x65,0x67,0x61,0x63,0x79,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x20,0x69,0x66,0x20,0x74,0x68,0x65,0x79,0x20,0x65,0x78,0x69,0x73,0x74,0x20,0x28,0x62,0x61,0x63,0x6b,0x77,0x61,0x72,0x64,0x20,0x63,0x6f,0x6d,0x70,0x61,0x74,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x29,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x4e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x4e,0x61,0x6d,0x65,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x4c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x2e,0x2e,0x2e,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x41,0x62,0x6f,0x75,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x41,0x62,0x6f,0x75,0x74,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x4c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x2e,0x2e,0x2e,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6f,0x6e,0x76,0x65,0x72,0x74,0x20,0x68,0x65,0x78,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x74,0x6f,0x20,0x6e,0x70,0x75,0x62,0x20,0x66,0x6f,0x72,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6e,0x70,0x75,0x62,0x4c,0x69,0x6e,0x6b,0x20,0x3d,0x20,0x27,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x26,0x26,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x34,0x20,0x26,0x26,0x20,0x2f,0x5e,0x5b,0x30,0x2d,0x39,0x61,0x2d,0x66,0x41,0x2d,0x46,0x5d,0x2b,0x24,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x70,0x75,0x62,0x20,0x3d,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x6e,0x69,0x70,0x31,0x39,0x2e,0x6e,0x70,0x75,0x62,0x45,0x6e,0x63,0x6f,0x64,0x65,0x28,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x6e,0x70,0x75,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x70,0x75,0x62,0x4c,0x69,0x6e,0x6b,0x20,0x3d,0x20,0x60,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x6e,0x6a,0x75,0x6d,0x70,0x2e,0x6d,0x65,0x2f,0x24,0x7b,0x6e,0x70,0x75,0x62,0x7d,0x22,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x3d,0x22,0x5f,0x62,0x6c,0x61,0x6e,0x6b,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6e,0x70,0x75,0x62,0x2d,0x6c,0x69,0x6e,0x6b,0x22,0x3e,0x24,0x7b,0x6e,0x70,0x75,0x62,0x7d,0x3c,0x2f,0x61,0x3e,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x20,0x75,0x73,0x65,0x72,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x74,0x6f,0x20,0x6e,0x70,0x75,0x62,0x3a,0x27,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x70,0x75,0x62,0x4c,0x69,0x6e,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x6e,0x70,0x75,0x62,0x4c,0x69,0x6e,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x61,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x66,0x6f,0x72,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x3d,0x20,0x5b,0x27,0x77,0x73,0x73,0x3a,0x2f,0x2f,0x72,0x65,0x6c,0x61,0x79,0x2e,0x64,0x61,0x6d,0x75,0x73,0x2e,0x69,0x6f,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x27,0x77,0x73,0x73,0x3a,0x2f,0x2f,0x72,0x65,0x6c,0x61,0x79,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x62,0x61,0x6e,0x64,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x27,0x77,0x73,0x73,0x3a,0x2f,0x2f,0x6e,0x6f,0x73,0x2e,0x6c,0x6f,0x6c,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x27,0x77,0x73,0x73,0x3a,0x2f,0x2f,0x72,0x65,0x6c,0x61,0x79,0x2e,0x70,0x72,0x69,0x6d,0x61,0x6c,0x2e,0x6e,0x65,0x74,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x27,0x77,0x73,0x73,0x3a,0x2f,0x2f,0x72,0x65,0x6c,0x61,0x79,0x2e,0x73,0x6e,0x6f,0x72,0x74,0x2e,0x73,0x6f,0x63,0x69,0x61,0x6c,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x27,0x77,0x73,0x73,0x3a,0x2f,0x2f,0x72,0x65,0x6c,0x61,0x79,0x2e,0x6c,0x61,0x61,0x6e,0x74,0x75,0x6e,0x67,0x69,0x72,0x2e,0x6e,0x65,0x74,0x27,0x5d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x47,0x65,0x74,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x28,0x6b,0x69,0x6e,0x64,0x20,0x30,0x29,0x20,0x66,0x6f,0x72,0x20,0x74,0x68,0x65,0x20,0x75,0x73,0x65,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x2e,0x71,0x75,0x65,0x72,0x79,0x53,0x79,0x6e,0x63,0x28,0x72,0x65,0x6c,0x61,0x79,0x73,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x73,0x3a,0x20,0x5b,0x30,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x68,0x6f,0x72,0x73,0x3a,0x20,0x5b,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6d,0x69,0x74,0x3a,0x20,0x31,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x76,0x65,0x6e,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x50,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x3a,0x27,0x2c,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x5b,0x30,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x3d,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x65,0x76,0x65,0x6e,0x74,0x73,0x5b,0x30,0x5d,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x50,0x61,0x72,0x73,0x65,0x64,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x3a,0x27,0x2c,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x50,0x72,0x6f,0x66,0x69,0x6c,0x65,0x28,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x4e,0x6f,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x66,0x6f,0x72,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x27,0x2c,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x68,0x65,0x61,0x64,0x65,0x72,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x28,0x6e,0x65,0x77,0x20,0x73,0x79,0x73,0x74,0x65,0x6d,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x65,0x61,0x64,0x65,0x72,0x55,0x73,0x65,0x72,0x4e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x65,0x61,0x64,0x65,0x72,0x55,0x73,0x65,0x72,0x4e,0x61,0x6d,0x65,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x41,0x6e,0x6f,0x6e,0x79,0x6d,0x6f,0x75,0x73,0x20,0x55,0x73,0x65,0x72,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x6c,0x65,0x67,0x61,0x63,0x79,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x20,0x69,0x66,0x20,0x74,0x68,0x65,0x79,0x20,0x65,0x78,0x69,0x73,0x74,0x20,0x28,0x62,0x61,0x63,0x6b,0x77,0x61,0x72,0x64,0x20,0x63,0x6f,0x6d,0x70,0x61,0x74,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x4e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x4e,0x61,0x6d,0x65,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x41,0x6e,0x6f,0x6e,0x79,0x6d,0x6f,0x75,0x73,0x20,0x55,0x73,0x65,0x72,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x41,0x62,0x6f,0x75,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x41,0x62,0x6f,0x75,0x74,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x4e,0x6f,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x66,0x6f,0x75,0x6e,0x64,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4b,0x65,0x65,0x70,0x20,0x74,0x68,0x65,0x20,0x6e,0x70,0x75,0x62,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6c,0x6f,0x73,0x65,0x20,0x74,0x68,0x65,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x70,0x6f,0x6f,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x28,0x72,0x65,0x6c,0x61,0x79,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x50,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x27,0x20,0x2b,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x68,0x65,0x61,0x64,0x65,0x72,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x28,0x6e,0x65,0x77,0x20,0x73,0x79,0x73,0x74,0x65,0x6d,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x65,0x61,0x64,0x65,0x72,0x55,0x73,0x65,0x72,0x4e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x65,0x61,0x64,0x65,0x72,0x55,0x73,0x65,0x72,0x4e,0x61,0x6d,0x65,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x45,0x72,0x72,0x6f,0x72,0x20,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x6c,0x65,0x67,0x61,0x63,0x79,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x20,0x69,0x66,0x20,0x74,0x68,0x65,0x79,0x20,0x65,0x78,0x69,0x73,0x74,0x20,0x28,0x62,0x61,0x63,0x6b,0x77,0x61,0x72,0x64,0x20,0x63,0x6f,0x6d,0x70,0x61,0x74,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x4e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x4e,0x61,0x6d,0x65,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x45,0x72,0x72,0x6f,0x72,0x20,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x41,0x62,0x6f,0x75,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x41,0x62,0x6f,0x75,0x74,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4b,0x65,0x65,0x70,0x20,0x74,0x68,0x65,0x20,0x6e,0x70,0x75,0x62,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x64,0x61,0x74,0x61,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x50,0x72,0x6f,0x66,0x69,0x6c,0x65,0x28,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x7c,0x7c,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x5f,0x6e,0x61,0x6d,0x65,0x20,0x7c,0x7c,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x4e,0x61,0x6d,0x65,0x20,0x7c,0x7c,0x20,0x27,0x41,0x6e,0x6f,0x6e,0x79,0x6d,0x6f,0x75,0x73,0x20,0x55,0x73,0x65,0x72,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x62,0x6f,0x75,0x74,0x20,0x3d,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x2e,0x61,0x62,0x6f,0x75,0x74,0x20,0x7c,0x7c,0x20,0x27,0x4e,0x6f,0x20,0x64,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x64,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x69,0x63,0x74,0x75,0x72,0x65,0x20,0x3d,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x2e,0x70,0x69,0x63,0x74,0x75,0x72,0x65,0x20,0x7c,0x7c,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x2e,0x69,0x6d,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6f,0x6e,0x76,0x65,0x72,0x74,0x20,0x68,0x65,0x78,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x74,0x6f,0x20,0x6e,0x70,0x75,0x62,0x20,0x66,0x6f,0x72,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6e,0x70,0x75,0x62,0x4c,0x69,0x6e,0x6b,0x20,0x3d,0x20,0x27,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x26,0x26,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x34,0x20,0x26,0x26,0x20,0x2f,0x5e,0x5b,0x30,0x2d,0x39,0x61,0x2d,0x66,0x41,0x2d,0x46,0x5d,0x2b,0x24,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x70,0x75,0x62,0x20,0x3d,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x6e,0x69,0x70,0x31,0x39,0x2e,0x6e,0x70,0x75,0x62,0x45,0x6e,0x63,0x6f,0x64,0x65,0x28,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x6e,0x70,0x75,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x70,0x75,0x62,0x4c,0x69,0x6e,0x6b,0x20,0x3d,0x20,0x60,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x6e,0x6a,0x75,0x6d,0x70,0x2e,0x6d,0x65,0x2f,0x24,0x7b,0x6e,0x70,0x75,0x62,0x7d,0x22,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x3d,0x22,0x5f,0x62,0x6c,0x61,0x6e,0x6b,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6e,0x70,0x75,0x62,0x2d,0x6c,0x69,0x6e,0x6b,0x22,0x3e,0x24,0x7b,0x6e,0x70,0x75,0x62,0x7d,0x3c,0x2f,0x61,0x3e,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x20,0x75,0x73,0x65,0x72,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x74,0x6f,0x20,0x6e,0x70,0x75,0x62,0x3a,0x27,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x68,0x65,0x61,0x64,0x65,0x72,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x65,0x61,0x64,0x65,0x72,0x55,0x73,0x65,0x72,0x4e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x65,0x61,0x64,0x65,0x72,0x55,0x73,0x65,0x72,0x4e,0x61,0x6d,0x65,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x6e,0x61,0x6d,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x68,0x65,0x61,0x64,0x65,0x72,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x70,0x69,0x63,0x74,0x75,0x72,0x65,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x65,0x61,0x64,0x65,0x72,0x55,0x73,0x65,0x72,0x49,0x6d,0x61,0x67,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x69,0x63,0x74,0x75,0x72,0x65,0x20,0x26,0x26,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x70,0x69,0x63,0x74,0x75,0x72,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x73,0x74,0x72,0x69,0x6e,0x67,0x27,0x20,0x26,0x26,0x20,0x28,0x70,0x69,0x63,0x74,0x75,0x72,0x65,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x27,0x68,0x74,0x74,0x70,0x27,0x29,0x20,0x7c,0x7c,0x20,0x70,0x69,0x63,0x74,0x75,0x72,0x65,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x27,0x68,0x74,0x74,0x70,0x73,0x27,0x29,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x65,0x61,0x64,0x65,0x72,0x55,0x73,0x65,0x72,0x49,0x6d,0x61,0x67,0x65,0x2e,0x73,0x72,0x63,0x20,0x3d,0x20,0x70,0x69,0x63,0x74,0x75,0x72,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x65,0x61,0x64,0x65,0x72,0x55,0x73,0x65,0x72,0x49,0x6d,0x61,0x67,0x65,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x27,0x62,0x6c,0x6f,0x63,0x6b,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x65,0x61,0x64,0x65,0x72,0x55,0x73,0x65,0x72,0x49,0x6d,0x61,0x67,0x65,0x2e,0x6f,0x6e,0x65,0x72,0x72,0x6f,0x72,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x69,0x64,0x65,0x20,0x69,0x6d,0x61,0x67,0x65,0x20,0x6f,0x6e,0x20,0x65,0x72,0x72,0x6f,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x27,0x6e,0x6f,0x6e,0x65,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x50,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x69,0x6d,0x61,0x67,0x65,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x6c,0x6f,0x61,0x64,0x3a,0x27,0x2c,0x20,0x70,0x69,0x63,0x74,0x75,0x72,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x65,0x61,0x64,0x65,0x72,0x55,0x73,0x65,0x72,0x49,0x6d,0x61,0x67,0x65,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x27,0x6e,0x6f,0x6e,0x65,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x6c,0x65,0x67,0x61,0x63,0x79,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x20,0x75,0x73,0x65,0x72,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x28,0x6b,0x65,0x70,0x74,0x20,0x66,0x6f,0x72,0x20,0x62,0x61,0x63,0x6b,0x77,0x61,0x72,0x64,0x20,0x63,0x6f,0x6d,0x70,0x61,0x74,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x29,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x4e,0x61,0x6d,0x65,0x29,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x4e,0x61,0x6d,0x65,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x6e,0x61,0x6d,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x26,0x26,0x20,0x6e,0x70,0x75,0x62,0x4c,0x69,0x6e,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x6e,0x70,0x75,0x62,0x4c,0x69,0x6e,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x41,0x62,0x6f,0x75,0x74,0x29,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x55,0x73,0x65,0x72,0x41,0x62,0x6f,0x75,0x74,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x62,0x6f,0x75,0x74,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x6c,0x65,0x67,0x61,0x63,0x79,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x70,0x69,0x63,0x74,0x75,0x72,0x65,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x73,0x65,0x72,0x49,0x6d,0x61,0x67,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x2d,0x75,0x73,0x65,0x72,0x2d,0x69,0x6d,0x61,0x67,0x65,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x75,0x73,0x65,0x72,0x49,0x6d,0x61,0x67,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x69,0x63,0x74,0x75,0x72,0x65,0x20,0x26,0x26,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x70,0x69,0x63,0x74,0x75,0x72,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x73,0x74,0x72,0x69,0x6e,0x67,0x27,0x20,0x26,0x26,0x20,0x70,0x69,0x63,0x74,0x75,0x72,0x65,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x27,0x68,0x74,0x74,0x70,0x27,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x6f,0x72,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x69,0x6d,0x61,0x67,0x65,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x69,0x6d,0x67,0x20,0x3d,0x20,0x75,0x73,0x65,0x72,0x49,0x6d,0x61,0x67,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x71,0x75,0x65,0x72,0x79,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x28,0x27,0x69,0x6d,0x67,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x6d,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6d,0x67,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x27,0x69,0x6d,0x67,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6d,0x67,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x27,0x75,0x73,0x65,0x72,0x2d,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6d,0x61,0x67,0x65,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6d,0x67,0x2e,0x61,0x6c,0x74,0x20,0x3d,0x20,0x60,0x24,0x7b,0x6e,0x61,0x6d,0x65,0x7d,0x27,0x73,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x70,0x69,0x63,0x74,0x75,0x72,0x65,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6d,0x67,0x2e,0x6f,0x6e,0x65,0x72,0x72,0x6f,0x72,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x69,0x64,0x65,0x20,0x69,0x6d,0x61,0x67,0x65,0x20,0x6f,0x6e,0x20,0x65,0x72,0x72,0x6f,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x27,0x6e,0x6f,0x6e,0x65,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x73,0x65,0x72,0x49,0x6d,0x61,0x67,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x43,0x68,0x69,0x6c,0x64,0x28,0x69,0x6d,0x67,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6d,0x67,0x2e,0x73,0x72,0x63,0x20,0x3d,0x20,0x70,0x69,0x63,0x74,0x75,0x72,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6d,0x67,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x27,0x62,0x6c,0x6f,0x63,0x6b,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x69,0x64,0x65,0x20,0x69,0x6d,0x61,0x67,0x65,0x20,0x69,0x66,0x20,0x6e,0x6f,0x20,0x76,0x61,0x6c,0x69,0x64,0x20,0x70,0x69,0x63,0x74,0x75,0x72,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6d,0x67,0x20,0x3d,0x20,0x75,0x73,0x65,0x72,0x49,0x6d,0x61,0x67,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x71,0x75,0x65,0x72,0x79,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x28,0x27,0x69,0x6d,0x67,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6d,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6d,0x67,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x27,0x6e,0x6f,0x6e,0x65,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0x50,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x6c,0x6f,0x61,0x64,0x65,0x64,0x20,0x66,0x6f,0x72,0x3a,0x20,0x24,0x7b,0x6e,0x61,0x6d,0x65,0x7d,0x20,0x77,0x69,0x74,0x68,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x24,0x7b,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x7d,0x60,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x0a,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x4c,0x6f,0x67,0x67,0x69,0x6e,0x67,0x20,0x6f,0x75,0x74,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x6f,0x70,0x20,0x61,0x75,0x74,0x6f,0x2d,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x20,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x6f,0x70,0x53,0x74,0x61,0x74,0x73,0x41,0x75,0x74,0x6f,0x52,0x65,0x66,0x72,0x65,0x73,0x68,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6c,0x65,0x61,0x6e,0x20,0x75,0x70,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x46,0x72,0x6f,0x6d,0x52,0x65,0x6c,0x61,0x79,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6c,0x65,0x61,0x6e,0x20,0x75,0x70,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x70,0x6f,0x6f,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x43,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x70,0x6f,0x6f,0x6c,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x55,0x72,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x75,0x72,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x28,0x5b,0x75,0x72,0x6c,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x49,0x64,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x6e,0x6c,0x4c,0x69,0x74,0x65,0x2e,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x73,0x65,0x74,0x20,0x55,0x49,0x20,0x2d,0x20,0x68,0x69,0x64,0x65,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x61,0x6e,0x64,0x20,0x73,0x68,0x6f,0x77,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x20,0x6d,0x6f,0x64,0x61,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x64,0x65,0x50,0x72,0x6f,0x66,0x69,0x6c,0x65,0x46,0x72,0x6f,0x6d,0x48,0x65,0x61,0x64,0x65,0x72,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x68,0x6f,0x77,0x4c,0x6f,0x67,0x69,0x6e,0x4d,0x6f,0x64,0x61,0x6c,0x28,0x29,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x64,0x20,0x2d,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x64,0x20,0x62,0x79,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x29,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x43,0x6f,0x6e,0x66,0x69,0x67,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x66,0x61,0x6c,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x41,0x64,0x6d,0x69,0x6e,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x56,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x4c,0x6f,0x67,0x67,0x65,0x64,0x20,0x6f,0x75,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x27,0x20,0x2b,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x43,0x6f,0x6e,0x66,0x69,0x67,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x6c,0x6f,0x61,0x64,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x6f,0x61,0x64,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4c,0x69,0x73,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x27,0x68,0x69,0x64,0x64,0x65,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4c,0x69,0x73,0x74,0x2e,0x61,0x64,0x64,0x28,0x27,0x68,0x69,0x64,0x64,0x65,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x0a,0x0a,0x2f,0x2f,0x20,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x20,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x49,0x44,0x20,0x28,0x61,0x76,0x6f,0x69,0x64,0x69,0x6e,0x67,0x20,0x63,0x6f,0x6c,0x6f,0x6e,0x73,0x20,0x77,0x68,0x69,0x63,0x68,0x20,0x61,0x72,0x65,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x65,0x64,0x20,0x62,0x79,0x20,0x72,0x65,0x6c,0x61,0x79,0x29,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x53,0x75,0x62,0x49,0x64,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x61,0x6c,0x70,0x68,0x61,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x2c,0x20,0x75,0x6e,0x64,0x65,0x72,0x73,0x63,0x6f,0x72,0x65,0x73,0x2c,0x20,0x61,0x6e,0x64,0x20,0x68,0x79,0x70,0x68,0x65,0x6e,0x73,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x61,0x72,0x73,0x20,0x3d,0x20,0x27,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x5f,0x2d,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x27,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x31,0x32,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x63,0x68,0x61,0x72,0x73,0x2e,0x63,0x68,0x61,0x72,0x41,0x74,0x28,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x4d,0x61,0x74,0x68,0x2e,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x28,0x29,0x20,0x2a,0x20,0x63,0x68,0x61,0x72,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x6e,0x6f,0x73,0x74,0x72,0x2d,0x74,0x6f,0x6f,0x6c,0x73,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x0a,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x62,0x65,0x54,0x6f,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x53,0x54,0x41,0x52,0x54,0x49,0x4e,0x47,0x20,0x53,0x49,0x4d,0x50,0x4c,0x45,0x50,0x4f,0x4f,0x4c,0x20,0x43,0x4f,0x4e,0x46,0x49,0x47,0x55,0x52,0x41,0x54,0x49,0x4f,0x4e,0x20,0x53,0x55,0x42,0x53,0x43,0x52,0x49,0x50,0x54,0x49,0x4f,0x4e,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x57,0x41,0x52,0x4e,0x49,0x4e,0x47,0x3a,0x20,0x4e,0x6f,0x74,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x2c,0x20,0x62,0x75,0x74,0x20,0x70,0x72,0x6f,0x63,0x65,0x65,0x64,0x69,0x6e,0x67,0x20,0x77,0x69,0x74,0x68,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x74,0x65,0x73,0x74,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x55,0x72,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x75,0x72,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x65,0x6e,0x74,0x65,0x72,0x20,0x61,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x55,0x52,0x4c,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x76,0x69,0x61,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x3a,0x20,0x24,0x7b,0x75,0x72,0x6c,0x7d,0x60,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6c,0x65,0x61,0x6e,0x20,0x75,0x70,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x20,0x70,0x6f,0x6f,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x43,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x20,0x70,0x6f,0x6f,0x6c,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x28,0x5b,0x75,0x72,0x6c,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x49,0x64,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x6e,0x65,0x77,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x49,0x64,0x20,0x3d,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x53,0x75,0x62,0x49,0x64,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x64,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x49,0x44,0x3a,0x20,0x24,0x7b,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x49,0x64,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0x55,0x73,0x65,0x72,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x24,0x7b,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x7d,0x60,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x75,0x62,0x73,0x63,0x72,0x69,0x62,0x65,0x20,0x74,0x6f,0x20,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x37,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x20,0x28,0x61,0x64,0x6d,0x69,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x29,0x2c,0x20,0x6b,0x69,0x6e,0x64,0x20,0x34,0x20,0x28,0x4e,0x49,0x50,0x2d,0x30,0x34,0x20,0x44,0x4d,0x73,0x29,0x2c,0x20,0x61,0x6e,0x64,0x20,0x6b,0x69,0x6e,0x64,0x20,0x31,0x30,0x35,0x39,0x20,0x28,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x47,0x69,0x66,0x74,0x57,0x72,0x61,0x70,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x62,0x65,0x4d,0x61,0x6e,0x79,0x28,0x5b,0x75,0x72,0x6c,0x5d,0x2c,0x20,0x5b,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x69,0x6e,0x63,0x65,0x3a,0x20,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x2f,0x20,0x31,0x30,0x30,0x30,0x29,0x20,0x2d,0x20,0x35,0x2c,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x6f,0x6b,0x20,0x62,0x61,0x63,0x6b,0x20,0x35,0x20,0x73,0x65,0x63,0x6f,0x6e,0x64,0x73,0x20,0x74,0x6f,0x20,0x61,0x76,0x6f,0x69,0x64,0x20,0x72,0x61,0x63,0x65,0x20,0x63,0x6f,0x6e,0x64,0x69,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x73,0x3a,0x20,0x5b,0x32,0x33,0x34,0x35,0x37,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x68,0x6f,0x72,0x73,0x3a,0x20,0x5b,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x5d,0x2c,0x20,0x2f,0x2f,0x20,0x4f,0x6e,0x6c,0x79,0x20,0x6c,0x69,0x73,0x74,0x65,0x6e,0x20,0x74,0x6f,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x20,0x66,0x72,0x6f,0x6d,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x23,0x70,0x22,0x3a,0x20,0x5b,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x5d,0x2c,0x20,0x2f,0x2f,0x20,0x4f,0x6e,0x6c,0x79,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x65,0x64,0x20,0x74,0x6f,0x20,0x74,0x68,0x69,0x73,0x20,0x75,0x73,0x65,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6d,0x69,0x74,0x3a,0x20,0x35,0x30,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x69,0x6e,0x63,0x65,0x3a,0x20,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x2f,0x20,0x31,0x30,0x30,0x30,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x73,0x3a,0x20,0x5b,0x34,0x5d,0x2c,0x20,0x2f,0x2f,0x20,0x4e,0x49,0x50,0x2d,0x30,0x34,0x20,0x44,0x69,0x72,0x65,0x63,0x74,0x20,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x68,0x6f,0x72,0x73,0x3a,0x20,0x5b,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x5d,0x2c,0x20,0x2f,0x2f,0x20,0x4f,0x6e,0x6c,0x79,0x20,0x6c,0x69,0x73,0x74,0x65,0x6e,0x20,0x74,0x6f,0x20,0x44,0x4d,0x73,0x20,0x66,0x72,0x6f,0x6d,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x23,0x70,0x22,0x3a,0x20,0x5b,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x5d,0x2c,0x20,0x2f,0x2f,0x20,0x4f,0x6e,0x6c,0x79,0x20,0x44,0x4d,0x73,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x65,0x64,0x20,0x74,0x6f,0x20,0x74,0x68,0x69,0x73,0x20,0x75,0x73,0x65,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6d,0x69,0x74,0x3a,0x20,0x35,0x30,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x73,0x3a,0x20,0x5b,0x31,0x30,0x35,0x39,0x5d,0x2c,0x20,0x2f,0x2f,0x20,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x47,0x69,0x66,0x74,0x57,0x72,0x61,0x70,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x23,0x70,0x22,0x3a,0x20,0x5b,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x5d,0x2c,0x20,0x2f,0x2f,0x20,0x4f,0x6e,0x6c,0x79,0x20,0x47,0x69,0x66,0x74,0x57,0x72,0x61,0x70,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x20,0x61,0x64,0x64,0x72,0x65,0x73,0x73,0x65,0x64,0x20,0x74,0x6f,0x20,0x74,0x68,0x69,0x73,0x20,0x75,0x73,0x65,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6d,0x69,0x74,0x3a,0x20,0x35,0x30,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x5d,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x6f,0x6e,0x65,0x76,0x65,0x6e,0x74,0x28,0x65,0x76,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x45,0x56,0x45,0x4e,0x54,0x20,0x52,0x45,0x43,0x45,0x49,0x56,0x45,0x44,0x20,0x56,0x49,0x41,0x20,0x53,0x49,0x4d,0x50,0x4c,0x45,0x50,0x4f,0x4f,0x4c,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x45,0x76,0x65,0x6e,0x74,0x20,0x64,0x61,0x74,0x61,0x3a,0x27,0x2c,0x20,0x65,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x45,0x76,0x65,0x6e,0x74,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x27,0x2c,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x6b,0x69,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x45,0x76,0x65,0x6e,0x74,0x20,0x74,0x61,0x67,0x73,0x3a,0x27,0x2c,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x74,0x61,0x67,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x45,0x76,0x65,0x6e,0x74,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x27,0x2c,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x45,0x4e,0x44,0x20,0x45,0x56,0x45,0x4e,0x54,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x4e,0x49,0x50,0x2d,0x30,0x34,0x20,0x44,0x4d,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x76,0x65,0x6e,0x74,0x2e,0x6b,0x69,0x6e,0x64,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x4e,0x49,0x50,0x2d,0x30,0x34,0x20,0x44,0x4d,0x20,0x52,0x45,0x43,0x45,0x49,0x56,0x45,0x44,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x65,0x63,0x72,0x79,0x70,0x74,0x20,0x74,0x68,0x65,0x20,0x44,0x4d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x6e,0x69,0x70,0x30,0x34,0x2e,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x28,0x65,0x76,0x65,0x6e,0x74,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x2c,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x52,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x20,0x4e,0x49,0x50,0x2d,0x30,0x34,0x20,0x44,0x4d,0x20,0x66,0x72,0x6f,0x6d,0x20,0x72,0x65,0x6c,0x61,0x79,0x3a,0x20,0x24,0x7b,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x30,0x2c,0x20,0x35,0x30,0x29,0x7d,0x2e,0x2e,0x2e,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x64,0x64,0x20,0x74,0x6f,0x20,0x69,0x6e,0x62,0x6f,0x78,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x44,0x61,0x74,0x65,0x28,0x65,0x76,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x20,0x2a,0x20,0x31,0x30,0x30,0x30,0x29,0x2e,0x74,0x6f,0x4c,0x6f,0x63,0x61,0x6c,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x64,0x64,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x54,0x6f,0x49,0x6e,0x62,0x6f,0x78,0x28,0x27,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x27,0x2c,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x20,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x2c,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x66,0x6f,0x72,0x20,0x74,0x65,0x73,0x74,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x60,0x4e,0x49,0x50,0x2d,0x30,0x34,0x20,0x44,0x4d,0x3a,0x20,0x24,0x7b,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7d,0x60,0x2c,0x20,0x27,0x44,0x4d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x45,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x20,0x4e,0x49,0x50,0x2d,0x30,0x34,0x20,0x44,0x4d,0x3a,0x20,0x24,0x7b,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x45,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x20,0x44,0x4d,0x3a,0x20,0x24,0x7b,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x45,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x44,0x4d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x47,0x69,0x66,0x74,0x57,0x72,0x61,0x70,0x20,0x44,0x4d,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x76,0x65,0x6e,0x74,0x2e,0x6b,0x69,0x6e,0x64,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x30,0x35,0x39,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x47,0x49,0x46,0x54,0x57,0x52,0x41,0x50,0x20,0x52,0x45,0x43,0x45,0x49,0x56,0x45,0x44,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x65,0x70,0x20,0x31,0x3a,0x20,0x55,0x6e,0x77,0x72,0x61,0x70,0x20,0x67,0x69,0x66,0x74,0x20,0x77,0x72,0x61,0x70,0x20,0x74,0x6f,0x20,0x67,0x65,0x74,0x20,0x73,0x65,0x61,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x65,0x61,0x6c,0x4a,0x73,0x6f,0x6e,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x6e,0x69,0x70,0x34,0x34,0x2e,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x28,0x65,0x76,0x65,0x6e,0x74,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x2c,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x65,0x61,0x6c,0x20,0x3d,0x20,0x73,0x61,0x66,0x65,0x4a,0x73,0x6f,0x6e,0x50,0x61,0x72,0x73,0x65,0x28,0x73,0x65,0x61,0x6c,0x4a,0x73,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x65,0x61,0x6c,0x20,0x7c,0x7c,0x20,0x73,0x65,0x61,0x6c,0x2e,0x6b,0x69,0x6e,0x64,0x20,0x21,0x3d,0x3d,0x20,0x31,0x33,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x55,0x6e,0x77,0x72,0x61,0x70,0x70,0x65,0x64,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x61,0x20,0x76,0x61,0x6c,0x69,0x64,0x20,0x73,0x65,0x61,0x6c,0x20,0x28,0x6b,0x69,0x6e,0x64,0x20,0x31,0x33,0x29,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x65,0x70,0x20,0x32,0x3a,0x20,0x55,0x6e,0x73,0x65,0x61,0x6c,0x20,0x74,0x6f,0x20,0x67,0x65,0x74,0x20,0x72,0x75,0x6d,0x6f,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x75,0x6d,0x6f,0x72,0x4a,0x73,0x6f,0x6e,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x6e,0x69,0x70,0x34,0x34,0x2e,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x28,0x73,0x65,0x61,0x6c,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x2c,0x20,0x73,0x65,0x61,0x6c,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x75,0x6d,0x6f,0x72,0x20,0x3d,0x20,0x73,0x61,0x66,0x65,0x4a,0x73,0x6f,0x6e,0x50,0x61,0x72,0x73,0x65,0x28,0x72,0x75,0x6d,0x6f,0x72,0x4a,0x73,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x75,0x6d,0x6f,0x72,0x20,0x7c,0x7c,0x20,0x72,0x75,0x6d,0x6f,0x72,0x2e,0x6b,0x69,0x6e,0x64,0x20,0x21,0x3d,0x3d,0x20,0x31,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x55,0x6e,0x73,0x65,0x61,0x6c,0x65,0x64,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x61,0x20,0x76,0x61,0x6c,0x69,0x64,0x20,0x72,0x75,0x6d,0x6f,0x72,0x20,0x28,0x6b,0x69,0x6e,0x64,0x20,0x31,0x34,0x29,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x52,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x20,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x44,0x4d,0x20,0x66,0x72,0x6f,0x6d,0x20,0x72,0x65,0x6c,0x61,0x79,0x3a,0x20,0x24,0x7b,0x72,0x75,0x6d,0x6f,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x30,0x2c,0x20,0x35,0x30,0x29,0x7d,0x2e,0x2e,0x2e,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x64,0x64,0x20,0x74,0x6f,0x20,0x69,0x6e,0x62,0x6f,0x78,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x44,0x61,0x74,0x65,0x28,0x65,0x76,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x20,0x2a,0x20,0x31,0x30,0x30,0x30,0x29,0x2e,0x74,0x6f,0x4c,0x6f,0x63,0x61,0x6c,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x64,0x64,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x54,0x6f,0x49,0x6e,0x62,0x6f,0x78,0x28,0x27,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x27,0x2c,0x20,0x72,0x75,0x6d,0x6f,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x20,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x2c,0x20,0x72,0x75,0x6d,0x6f,0x72,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x66,0x6f,0x72,0x20,0x74,0x65,0x73,0x74,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x60,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x44,0x4d,0x3a,0x20,0x24,0x7b,0x72,0x75,0x6d,0x6f,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7d,0x60,0x2c,0x20,0x27,0x44,0x4d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x75,0x6e,0x77,0x72,0x61,0x70,0x45,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x75,0x6e,0x77,0x72,0x61,0x70,0x20,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x44,0x4d,0x3a,0x20,0x24,0x7b,0x75,0x6e,0x77,0x72,0x61,0x70,0x45,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x75,0x6e,0x77,0x72,0x61,0x70,0x20,0x44,0x4d,0x3a,0x20,0x24,0x7b,0x75,0x6e,0x77,0x72,0x61,0x70,0x45,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x44,0x4d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x20,0x28,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x37,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x76,0x65,0x6e,0x74,0x2e,0x6b,0x69,0x6e,0x64,0x20,0x3d,0x3d,0x3d,0x20,0x32,0x33,0x34,0x35,0x37,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x61,0x6c,0x6c,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x20,0x66,0x6f,0x72,0x20,0x74,0x65,0x73,0x74,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x60,0x41,0x64,0x6d,0x69,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x3a,0x20,0x24,0x7b,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x65,0x76,0x65,0x6e,0x74,0x29,0x7d,0x60,0x2c,0x20,0x27,0x45,0x56,0x45,0x4e,0x54,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x41,0x64,0x6d,0x69,0x6e,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x65,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6e,0x65,0x6f,0x73,0x65,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x45,0x4f,0x53,0x45,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x20,0x2d,0x20,0x45,0x6e,0x64,0x20,0x6f,0x66,0x20,0x73,0x74,0x6f,0x72,0x65,0x64,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x45,0x4f,0x53,0x45,0x3a,0x27,0x2c,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6e,0x66,0x69,0x67,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6e,0x66,0x69,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x4e,0x6f,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x20,0x77,0x65,0x72,0x65,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x28,0x72,0x65,0x61,0x73,0x6f,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x53,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6c,0x6f,0x73,0x65,0x64,0x3a,0x27,0x2c,0x20,0x72,0x65,0x61,0x73,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x43,0x6f,0x6e,0x66,0x69,0x67,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x66,0x61,0x6c,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x6f,0x72,0x65,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6f,0x72,0x20,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x53,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x65,0x73,0x74,0x61,0x62,0x6c,0x69,0x73,0x68,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x27,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x27,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x72,0x72,0x6f,0x72,0x20,0x73,0x74,0x61,0x63,0x6b,0x3a,0x27,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x73,0x74,0x61,0x63,0x6b,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x20,0x28,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x37,0x29,0x0a,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x41,0x64,0x6d,0x69,0x6e,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x65,0x76,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x50,0x52,0x4f,0x43,0x45,0x53,0x53,0x49,0x4e,0x47,0x20,0x41,0x44,0x4d,0x49,0x4e,0x20,0x52,0x45,0x53,0x50,0x4f,0x4e,0x53,0x45,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x3a,0x27,0x2c,0x20,0x65,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x56,0x65,0x72,0x69,0x66,0x79,0x20,0x74,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x61,0x20,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x37,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x76,0x65,0x6e,0x74,0x2e,0x6b,0x69,0x6e,0x64,0x20,0x21,0x3d,0x3d,0x20,0x32,0x33,0x34,0x35,0x37,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x49,0x67,0x6e,0x6f,0x72,0x69,0x6e,0x67,0x20,0x6e,0x6f,0x6e,0x2d,0x61,0x64,0x6d,0x69,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x2c,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x27,0x2c,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x6b,0x69,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x56,0x65,0x72,0x69,0x66,0x79,0x20,0x74,0x68,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x69,0x73,0x20,0x66,0x72,0x6f,0x6d,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x76,0x65,0x6e,0x74,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x21,0x3d,0x3d,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x49,0x67,0x6e,0x6f,0x72,0x69,0x6e,0x67,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x66,0x72,0x6f,0x6d,0x20,0x75,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x27,0x2c,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x65,0x63,0x72,0x79,0x70,0x74,0x20,0x74,0x68,0x65,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x46,0x72,0x6f,0x6d,0x52,0x65,0x6c,0x61,0x79,0x28,0x65,0x76,0x65,0x6e,0x74,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x44,0x65,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x3a,0x27,0x2c,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x61,0x72,0x73,0x65,0x20,0x74,0x68,0x65,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x20,0x4a,0x53,0x4f,0x4e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x20,0x3d,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x50,0x61,0x72,0x73,0x65,0x64,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x64,0x61,0x74,0x61,0x3a,0x27,0x2c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x66,0x6f,0x72,0x20,0x74,0x65,0x73,0x74,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x60,0x44,0x65,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x3a,0x20,0x24,0x7b,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x7d,0x60,0x2c,0x20,0x27,0x52,0x45,0x53,0x50,0x4f,0x4e,0x53,0x45,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x64,0x69,0x66,0x66,0x65,0x72,0x65,0x6e,0x74,0x20,0x74,0x79,0x70,0x65,0x73,0x20,0x6f,0x66,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x41,0x64,0x6d,0x69,0x6e,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x72,0x72,0x6f,0x72,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x69,0x6e,0x67,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x3a,0x27,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x64,0x69,0x66,0x66,0x65,0x72,0x65,0x6e,0x74,0x20,0x74,0x79,0x70,0x65,0x73,0x20,0x6f,0x66,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x64,0x61,0x74,0x61,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x41,0x64,0x6d,0x69,0x6e,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x48,0x41,0x4e,0x44,0x4c,0x49,0x4e,0x47,0x20,0x41,0x44,0x4d,0x49,0x4e,0x20,0x52,0x45,0x53,0x50,0x4f,0x4e,0x53,0x45,0x20,0x44,0x41,0x54,0x41,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x64,0x61,0x74,0x61,0x3a,0x27,0x2c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x71,0x75,0x65,0x72,0x79,0x5f,0x74,0x79,0x70,0x65,0x3a,0x27,0x2c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x71,0x75,0x65,0x72,0x79,0x5f,0x74,0x79,0x70,0x65,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x20,0x2d,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x20,0x74,0x6f,0x20,0x6d,0x61,0x74,0x63,0x68,0x20,0x62,0x61,0x63,0x6b,0x65,0x6e,0x64,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x74,0x79,0x70,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x71,0x75,0x65,0x72,0x79,0x5f,0x74,0x79,0x70,0x65,0x20,0x26,0x26,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x71,0x75,0x65,0x72,0x79,0x5f,0x74,0x79,0x70,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x27,0x61,0x75,0x74,0x68,0x5f,0x72,0x75,0x6c,0x65,0x73,0x27,0x29,0x20,0x7c,0x7c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x71,0x75,0x65,0x72,0x79,0x5f,0x74,0x79,0x70,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x27,0x61,0x75,0x74,0x68,0x27,0x29,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x52,0x6f,0x75,0x74,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x61,0x75,0x74,0x68,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x41,0x75,0x74,0x68,0x51,0x75,0x65,0x72,0x79,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x20,0x73,0x70,0x65,0x63,0x69,0x66,0x69,0x63,0x61,0x6c,0x6c,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x71,0x75,0x65,0x72,0x79,0x5f,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5f,0x75,0x70,0x64,0x61,0x74,0x65,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x52,0x6f,0x75,0x74,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x43,0x6f,0x6e,0x66,0x69,0x67,0x55,0x70,0x64,0x61,0x74,0x65,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x20,0x2d,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x20,0x74,0x6f,0x20,0x6d,0x61,0x74,0x63,0x68,0x20,0x62,0x61,0x63,0x6b,0x65,0x6e,0x64,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x74,0x79,0x70,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x71,0x75,0x65,0x72,0x79,0x5f,0x74,0x79,0x70,0x65,0x20,0x26,0x26,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x71,0x75,0x65,0x72,0x79,0x5f,0x74,0x79,0x70,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x27,0x63,0x6f,0x6e,0x66,0x69,0x67,0x27,0x29,0x20,0x7c,0x7c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x71,0x75,0x65,0x72,0x79,0x5f,0x74,0x79,0x70,0x65,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x27,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5f,0x27,0x29,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x52,0x6f,0x75,0x74,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x43,0x6f,0x6e,0x66,0x69,0x67,0x51,0x75,0x65,0x72,0x79,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x73,0x79,0x73,0x74,0x65,0x6d,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x52,0x6f,0x75,0x74,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x73,0x79,0x73,0x74,0x65,0x6d,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x53,0x79,0x73,0x74,0x65,0x6d,0x43,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x6f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x7c,0x7c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x72,0x75,0x6c,0x65,0x73,0x5f,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x65,0x64,0x20,0x21,0x3d,0x3d,0x20,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x52,0x6f,0x75,0x74,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x73,0x74,0x61,0x74,0x73,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x71,0x75,0x65,0x72,0x79,0x5f,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x73,0x74,0x61,0x74,0x73,0x5f,0x71,0x75,0x65,0x72,0x79,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x52,0x6f,0x75,0x74,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x73,0x74,0x61,0x74,0x73,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x53,0x74,0x61,0x74,0x73,0x51,0x75,0x65,0x72,0x79,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x47,0x65,0x6e,0x65,0x72,0x69,0x63,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x68,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x55,0x73,0x69,0x6e,0x67,0x20,0x67,0x65,0x6e,0x65,0x72,0x69,0x63,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x60,0x47,0x65,0x6e,0x65,0x72,0x69,0x63,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x3a,0x20,0x24,0x7b,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x7d,0x60,0x2c,0x20,0x27,0x52,0x45,0x53,0x50,0x4f,0x4e,0x53,0x45,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x72,0x72,0x6f,0x72,0x20,0x68,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x64,0x61,0x74,0x61,0x3a,0x27,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x64,0x61,0x74,0x61,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x43,0x6f,0x6e,0x66,0x69,0x67,0x51,0x75,0x65,0x72,0x79,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x43,0x4f,0x4e,0x46,0x49,0x47,0x20,0x51,0x55,0x45,0x52,0x59,0x20,0x52,0x45,0x53,0x50,0x4f,0x4e,0x53,0x45,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x51,0x75,0x65,0x72,0x79,0x20,0x74,0x79,0x70,0x65,0x3a,0x27,0x2c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x71,0x75,0x65,0x72,0x79,0x5f,0x74,0x79,0x70,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x54,0x6f,0x74,0x61,0x6c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x3a,0x27,0x2c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x74,0x6f,0x74,0x61,0x6c,0x5f,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x44,0x61,0x74,0x61,0x3a,0x27,0x2c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6f,0x6e,0x76,0x65,0x72,0x74,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x64,0x61,0x74,0x61,0x20,0x74,0x6f,0x20,0x74,0x68,0x65,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x62,0x79,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x20,0x26,0x26,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x43,0x6f,0x6e,0x76,0x65,0x72,0x74,0x69,0x6e,0x67,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x74,0x6f,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x2e,0x2e,0x2e,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x61,0x20,0x73,0x79,0x6e,0x74,0x68,0x65,0x74,0x69,0x63,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x73,0x74,0x72,0x75,0x63,0x74,0x75,0x72,0x65,0x20,0x66,0x6f,0x72,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x79,0x6e,0x74,0x68,0x65,0x74,0x69,0x63,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x64,0x3a,0x20,0x27,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5f,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x5f,0x27,0x20,0x2b,0x20,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x3a,0x20,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x2f,0x20,0x31,0x30,0x30,0x30,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x20,0x27,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5f,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x27,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x66,0x72,0x6f,0x6d,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x41,0x50,0x49,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x73,0x3a,0x20,0x5b,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6f,0x6e,0x76,0x65,0x72,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x64,0x61,0x74,0x61,0x20,0x74,0x6f,0x20,0x74,0x61,0x67,0x73,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x6b,0x65,0x79,0x20,0x7c,0x7c,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5f,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x7c,0x7c,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5f,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x26,0x26,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x21,0x3d,0x3d,0x20,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x79,0x6e,0x74,0x68,0x65,0x74,0x69,0x63,0x45,0x76,0x65,0x6e,0x74,0x2e,0x74,0x61,0x67,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x5b,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x53,0x79,0x6e,0x74,0x68,0x65,0x74,0x69,0x63,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x3a,0x27,0x2c,0x20,0x73,0x79,0x6e,0x74,0x68,0x65,0x74,0x69,0x63,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x43,0x61,0x6c,0x6c,0x69,0x6e,0x67,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x77,0x69,0x74,0x68,0x20,0x73,0x79,0x6e,0x74,0x68,0x65,0x74,0x69,0x63,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x2e,0x2e,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x74,0x68,0x65,0x20,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x28,0x73,0x79,0x6e,0x74,0x68,0x65,0x74,0x69,0x63,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x6f,0x61,0x64,0x65,0x64,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x74,0x6f,0x74,0x61,0x6c,0x5f,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x7d,0x20,0x70,0x61,0x72,0x61,0x6d,0x65,0x74,0x65,0x72,0x73,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x4e,0x6f,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x64,0x61,0x74,0x61,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x43,0x6f,0x6e,0x66,0x69,0x67,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x66,0x61,0x6c,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x6c,0x73,0x6f,0x20,0x6c,0x6f,0x67,0x20,0x74,0x6f,0x20,0x74,0x65,0x73,0x74,0x20,0x69,0x6e,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x20,0x66,0x6f,0x72,0x20,0x64,0x65,0x62,0x75,0x67,0x67,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x60,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x71,0x75,0x65,0x72,0x79,0x5f,0x74,0x79,0x70,0x65,0x7d,0x2c,0x20,0x24,0x7b,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x74,0x6f,0x74,0x61,0x6c,0x5f,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x7d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x60,0x2c,0x20,0x27,0x43,0x4f,0x4e,0x46,0x49,0x47,0x5f,0x51,0x55,0x45,0x52,0x59,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x20,0x26,0x26,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x27,0x3d,0x3d,0x3d,0x20,0x43,0x4f,0x4e,0x46,0x49,0x47,0x55,0x52,0x41,0x54,0x49,0x4f,0x4e,0x20,0x56,0x41,0x4c,0x55,0x45,0x53,0x20,0x3d,0x3d,0x3d,0x27,0x2c,0x20,0x27,0x43,0x4f,0x4e,0x46,0x49,0x47,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x6b,0x65,0x79,0x20,0x7c,0x7c,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5f,0x6b,0x65,0x79,0x20,0x7c,0x7c,0x20,0x60,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5f,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x7c,0x7c,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x7c,0x7c,0x20,0x27,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0x20,0x7c,0x7c,0x20,0x27,0x67,0x65,0x6e,0x65,0x72,0x61,0x6c,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x61,0x74,0x61,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x64,0x61,0x74,0x61,0x5f,0x74,0x79,0x70,0x65,0x20,0x7c,0x7c,0x20,0x27,0x73,0x74,0x72,0x69,0x6e,0x67,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x60,0x24,0x7b,0x6b,0x65,0x79,0x7d,0x3a,0x20,0x24,0x7b,0x76,0x61,0x6c,0x75,0x65,0x7d,0x20,0x28,0x24,0x7b,0x64,0x61,0x74,0x61,0x54,0x79,0x70,0x65,0x7d,0x2c,0x20,0x24,0x7b,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0x7d,0x29,0x60,0x2c,0x20,0x27,0x43,0x4f,0x4e,0x46,0x49,0x47,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x27,0x3d,0x3d,0x3d,0x20,0x45,0x4e,0x44,0x20,0x43,0x4f,0x4e,0x46,0x49,0x47,0x55,0x52,0x41,0x54,0x49,0x4f,0x4e,0x20,0x56,0x41,0x4c,0x55,0x45,0x53,0x20,0x3d,0x3d,0x3d,0x27,0x2c,0x20,0x27,0x43,0x4f,0x4e,0x46,0x49,0x47,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x27,0x4e,0x6f,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x76,0x61,0x6c,0x75,0x65,0x73,0x20,0x66,0x6f,0x75,0x6e,0x64,0x27,0x2c,0x20,0x27,0x43,0x4f,0x4e,0x46,0x49,0x47,0x5f,0x51,0x55,0x45,0x52,0x59,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x43,0x6f,0x6e,0x66,0x69,0x67,0x55,0x70,0x64,0x61,0x74,0x65,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x43,0x4f,0x4e,0x46,0x49,0x47,0x20,0x55,0x50,0x44,0x41,0x54,0x45,0x20,0x52,0x45,0x53,0x50,0x4f,0x4e,0x53,0x45,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x51,0x75,0x65,0x72,0x79,0x20,0x74,0x79,0x70,0x65,0x3a,0x27,0x2c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x71,0x75,0x65,0x72,0x79,0x5f,0x74,0x79,0x70,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x53,0x74,0x61,0x74,0x75,0x73,0x3a,0x27,0x2c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x44,0x61,0x74,0x61,0x3a,0x27,0x2c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x73,0x41,0x70,0x70,0x6c,0x69,0x65,0x64,0x20,0x3d,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x75,0x70,0x64,0x61,0x74,0x65,0x73,0x5f,0x61,0x70,0x70,0x6c,0x69,0x65,0x64,0x20,0x7c,0x7c,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x3a,0x20,0x24,0x7b,0x75,0x70,0x64,0x61,0x74,0x65,0x73,0x41,0x70,0x70,0x6c,0x69,0x65,0x64,0x7d,0x20,0x70,0x61,0x72,0x61,0x6d,0x65,0x74,0x65,0x72,0x73,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x64,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x68,0x6f,0x77,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x77,0x69,0x74,0x68,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x20,0x26,0x26,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0xe2,0x9c,0x93,0x20,0x24,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x6b,0x65,0x79,0x7d,0x3a,0x20,0x24,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x76,0x61,0x6c,0x75,0x65,0x7d,0x20,0x28,0x24,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x64,0x61,0x74,0x61,0x5f,0x74,0x79,0x70,0x65,0x7d,0x29,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0xe2,0x9c,0x97,0x20,0x24,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x6b,0x65,0x79,0x7d,0x3a,0x20,0x24,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x65,0x72,0x72,0x6f,0x72,0x20,0x7c,0x7c,0x20,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x27,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x20,0x2d,0x20,0x75,0x73,0x65,0x72,0x20,0x63,0x61,0x6e,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x6c,0x79,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x46,0x65,0x74,0x63,0x68,0x20,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x62,0x75,0x74,0x74,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x2e,0x20,0x43,0x6c,0x69,0x63,0x6b,0x20,0x22,0x46,0x65,0x74,0x63,0x68,0x20,0x43,0x6f,0x6e,0x66,0x69,0x67,0x22,0x20,0x74,0x6f,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x20,0x74,0x68,0x65,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x3d,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x65,0x72,0x72,0x6f,0x72,0x20,0x7c,0x7c,0x20,0x27,0x55,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x20,0x65,0x72,0x72,0x6f,0x72,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x68,0x6f,0x77,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x69,0x6e,0x66,0x6f,0x72,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x20,0x69,0x66,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x20,0x26,0x26,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x65,0x72,0x72,0x6f,0x72,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0xe2,0x9c,0x97,0x20,0x24,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x6b,0x65,0x79,0x7d,0x3a,0x20,0x24,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x65,0x72,0x72,0x6f,0x72,0x20,0x7c,0x7c,0x20,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x27,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x74,0x6f,0x20,0x74,0x65,0x73,0x74,0x20,0x69,0x6e,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x20,0x66,0x6f,0x72,0x20,0x64,0x65,0x62,0x75,0x67,0x67,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x60,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x7d,0x60,0x2c,0x20,0x27,0x43,0x4f,0x4e,0x46,0x49,0x47,0x5f,0x55,0x50,0x44,0x41,0x54,0x45,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x20,0x26,0x26,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x27,0x20,0x3f,0x20,0x27,0xe2,0x9c,0x93,0x27,0x20,0x3a,0x20,0x27,0xe2,0x9c,0x97,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x27,0x20,0x3f,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x24,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x6b,0x65,0x79,0x7d,0x20,0x3d,0x20,0x24,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x76,0x61,0x6c,0x75,0x65,0x7d,0x60,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x24,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x6b,0x65,0x79,0x7d,0x3a,0x20,0x24,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x65,0x72,0x72,0x6f,0x72,0x20,0x7c,0x7c,0x20,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x27,0x7d,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x60,0x24,0x7b,0x73,0x74,0x61,0x74,0x75,0x73,0x7d,0x20,0x24,0x7b,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x43,0x4f,0x4e,0x46,0x49,0x47,0x5f,0x55,0x50,0x44,0x41,0x54,0x45,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x27,0x4e,0x6f,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x27,0x2c,0x20,0x27,0x43,0x4f,0x4e,0x46,0x49,0x47,0x5f,0x55,0x50,0x44,0x41,0x54,0x45,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x41,0x75,0x74,0x68,0x51,0x75,0x65,0x72,0x79,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x41,0x55,0x54,0x48,0x20,0x51,0x55,0x45,0x52,0x59,0x20,0x52,0x45,0x53,0x50,0x4f,0x4e,0x53,0x45,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x51,0x75,0x65,0x72,0x79,0x20,0x74,0x79,0x70,0x65,0x3a,0x27,0x2c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x71,0x75,0x65,0x72,0x79,0x5f,0x74,0x79,0x70,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x54,0x6f,0x74,0x61,0x6c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x3a,0x27,0x2c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x74,0x6f,0x74,0x61,0x6c,0x5f,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x44,0x61,0x74,0x61,0x3a,0x27,0x2c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x74,0x68,0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x64,0x61,0x74,0x61,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x20,0x26,0x26,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x55,0x70,0x64,0x61,0x74,0x65,0x64,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x20,0x77,0x69,0x74,0x68,0x27,0x2c,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x20,0x27,0x72,0x75,0x6c,0x65,0x73,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x6c,0x77,0x61,0x79,0x73,0x20,0x73,0x68,0x6f,0x77,0x20,0x74,0x68,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x77,0x68,0x65,0x6e,0x20,0x77,0x65,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x20,0x64,0x61,0x74,0x61,0x20,0x28,0x6e,0x6f,0x20,0x56,0x49,0x45,0x57,0x20,0x52,0x55,0x4c,0x45,0x53,0x20,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x61,0x6e,0x79,0x6d,0x6f,0x72,0x65,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x41,0x75,0x74,0x6f,0x2d,0x73,0x68,0x6f,0x77,0x69,0x6e,0x67,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x73,0x69,0x6e,0x63,0x65,0x20,0x77,0x65,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x20,0x64,0x61,0x74,0x61,0x2e,0x2e,0x2e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x68,0x6f,0x77,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x6c,0x6f,0x61,0x64,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x4c,0x6f,0x61,0x64,0x65,0x64,0x20,0x24,0x7b,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x74,0x6f,0x74,0x61,0x6c,0x5f,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x7d,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x66,0x72,0x6f,0x6d,0x20,0x72,0x65,0x6c,0x61,0x79,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x4e,0x6f,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x64,0x61,0x74,0x61,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x2c,0x20,0x63,0x6c,0x65,0x61,0x72,0x65,0x64,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x68,0x6f,0x77,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x28,0x6e,0x6f,0x20,0x56,0x49,0x45,0x57,0x20,0x52,0x55,0x4c,0x45,0x53,0x20,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x61,0x6e,0x79,0x6d,0x6f,0x72,0x65,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x41,0x75,0x74,0x6f,0x2d,0x73,0x68,0x6f,0x77,0x69,0x6e,0x67,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x77,0x69,0x74,0x68,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x64,0x61,0x74,0x61,0x2e,0x2e,0x2e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x68,0x6f,0x77,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x6c,0x6f,0x61,0x64,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x4e,0x6f,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x6f,0x6e,0x20,0x72,0x65,0x6c,0x61,0x79,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x60,0x41,0x75,0x74,0x68,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x71,0x75,0x65,0x72,0x79,0x5f,0x74,0x79,0x70,0x65,0x7d,0x2c,0x20,0x24,0x7b,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x74,0x6f,0x74,0x61,0x6c,0x5f,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x7d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x60,0x2c,0x20,0x27,0x41,0x55,0x54,0x48,0x5f,0x51,0x55,0x45,0x52,0x59,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x20,0x26,0x26,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x72,0x75,0x6c,0x65,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x60,0x52,0x75,0x6c,0x65,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x7d,0x20,0x2d,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x7c,0x7c,0x20,0x72,0x75,0x6c,0x65,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x61,0x72,0x67,0x65,0x74,0x7d,0x60,0x2c,0x20,0x27,0x41,0x55,0x54,0x48,0x5f,0x52,0x55,0x4c,0x45,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x27,0x4e,0x6f,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x66,0x6f,0x75,0x6e,0x64,0x27,0x2c,0x20,0x27,0x41,0x55,0x54,0x48,0x5f,0x51,0x55,0x45,0x52,0x59,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x73,0x79,0x73,0x74,0x65,0x6d,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x53,0x79,0x73,0x74,0x65,0x6d,0x43,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x53,0x59,0x53,0x54,0x45,0x4d,0x20,0x43,0x4f,0x4d,0x4d,0x41,0x4e,0x44,0x20,0x52,0x45,0x53,0x50,0x4f,0x4e,0x53,0x45,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x43,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x3a,0x27,0x2c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x53,0x74,0x61,0x74,0x75,0x73,0x3a,0x27,0x2c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x64,0x65,0x6c,0x65,0x74,0x65,0x5f,0x61,0x75,0x74,0x68,0x5f,0x72,0x75,0x6c,0x65,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x41,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x66,0x72,0x65,0x73,0x68,0x20,0x74,0x68,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x61,0x64,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x27,0x55,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x20,0x65,0x72,0x72,0x6f,0x72,0x27,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x63,0x6c,0x65,0x61,0x72,0x20,0x61,0x6c,0x6c,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x63,0x6c,0x65,0x61,0x72,0x5f,0x61,0x6c,0x6c,0x5f,0x61,0x75,0x74,0x68,0x5f,0x72,0x75,0x6c,0x65,0x73,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x75,0x6c,0x65,0x73,0x43,0x6c,0x65,0x61,0x72,0x65,0x64,0x20,0x3d,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x72,0x75,0x6c,0x65,0x73,0x5f,0x63,0x6c,0x65,0x61,0x72,0x65,0x64,0x20,0x7c,0x7c,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x53,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x20,0x63,0x6c,0x65,0x61,0x72,0x65,0x64,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x73,0x43,0x6c,0x65,0x61,0x72,0x65,0x64,0x7d,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6c,0x65,0x61,0x72,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x61,0x6e,0x64,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x6c,0x65,0x61,0x72,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x27,0x55,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x20,0x65,0x72,0x72,0x6f,0x72,0x27,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x60,0x53,0x79,0x73,0x74,0x65,0x6d,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x7d,0x20,0x2d,0x20,0x24,0x7b,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x7d,0x60,0x2c,0x20,0x27,0x53,0x59,0x53,0x54,0x45,0x4d,0x5f,0x43,0x4d,0x44,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x41,0x55,0x54,0x48,0x20,0x52,0x55,0x4c,0x45,0x20,0x4d,0x4f,0x44,0x49,0x46,0x49,0x43,0x41,0x54,0x49,0x4f,0x4e,0x20,0x52,0x45,0x53,0x50,0x4f,0x4e,0x53,0x45,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x4f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x27,0x2c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x6f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x53,0x74,0x61,0x74,0x75,0x73,0x3a,0x27,0x2c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x61,0x64,0x64,0x69,0x74,0x69,0x6f,0x6e,0x2f,0x6d,0x6f,0x64,0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x75,0x6c,0x65,0x73,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x65,0x64,0x20,0x3d,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x72,0x75,0x6c,0x65,0x73,0x5f,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x65,0x64,0x20,0x7c,0x7c,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x53,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x65,0x64,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x73,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x65,0x64,0x7d,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x73,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x66,0x72,0x65,0x73,0x68,0x20,0x74,0x68,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x74,0x6f,0x20,0x73,0x68,0x6f,0x77,0x20,0x74,0x68,0x65,0x20,0x6e,0x65,0x77,0x20,0x72,0x75,0x6c,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x26,0x26,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x21,0x3d,0x3d,0x20,0x27,0x6e,0x6f,0x6e,0x65,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x61,0x64,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x27,0x55,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x20,0x65,0x72,0x72,0x6f,0x72,0x27,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x60,0x41,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x6f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x7d,0x20,0x2d,0x20,0x24,0x7b,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x7d,0x60,0x2c,0x20,0x27,0x41,0x55,0x54,0x48,0x5f,0x52,0x55,0x4c,0x45,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x65,0x64,0x5f,0x72,0x75,0x6c,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x65,0x64,0x5f,0x72,0x75,0x6c,0x65,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x72,0x75,0x6c,0x65,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x52,0x45,0x43,0x56,0x27,0x2c,0x20,0x60,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x65,0x64,0x20,0x72,0x75,0x6c,0x65,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x7d,0x20,0x2d,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x7c,0x7c,0x20,0x72,0x75,0x6c,0x65,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x61,0x72,0x67,0x65,0x74,0x7d,0x60,0x2c,0x20,0x27,0x41,0x55,0x54,0x48,0x5f,0x52,0x55,0x4c,0x45,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x48,0x65,0x6c,0x70,0x65,0x72,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x66,0x72,0x6f,0x6d,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x0a,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x46,0x72,0x6f,0x6d,0x52,0x65,0x6c,0x61,0x79,0x28,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x44,0x65,0x63,0x72,0x79,0x70,0x74,0x69,0x6e,0x67,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x66,0x72,0x6f,0x6d,0x20,0x72,0x65,0x6c,0x61,0x79,0x2e,0x2e,0x2e,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x47,0x65,0x74,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x70,0x75,0x62,0x6c,0x69,0x63,0x20,0x6b,0x65,0x79,0x20,0x66,0x6f,0x72,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x4e,0x49,0x50,0x2d,0x30,0x37,0x20,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x27,0x73,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x20,0x7c,0x7c,0x20,0x21,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x6e,0x69,0x70,0x34,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x4e,0x49,0x50,0x2d,0x34,0x34,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x20,0x76,0x69,0x61,0x20,0x4e,0x49,0x50,0x2d,0x30,0x37,0x20,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x6e,0x69,0x70,0x34,0x34,0x2e,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x28,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x4e,0x49,0x50,0x2d,0x34,0x34,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x65,0x64,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x53,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x66,0x72,0x6f,0x6d,0x20,0x72,0x65,0x6c,0x61,0x79,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x4e,0x49,0x50,0x2d,0x34,0x34,0x20,0x64,0x65,0x63,0x72,0x79,0x70,0x74,0x69,0x6f,0x6e,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x27,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x46,0x65,0x74,0x63,0x68,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x41,0x50,0x49,0x0a,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x65,0x74,0x63,0x68,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x46,0x45,0x54,0x43,0x48,0x49,0x4e,0x47,0x20,0x43,0x4f,0x4e,0x46,0x49,0x47,0x55,0x52,0x41,0x54,0x49,0x4f,0x4e,0x20,0x56,0x49,0x41,0x20,0x41,0x44,0x4d,0x49,0x4e,0x20,0x41,0x50,0x49,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x71,0x75,0x69,0x72,0x65,0x20,0x62,0x6f,0x74,0x68,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x20,0x61,0x6e,0x64,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x7c,0x7c,0x20,0x21,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x4d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x6f,0x20,0x66,0x65,0x74,0x63,0x68,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x52,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x20,0x7c,0x7c,0x20,0x21,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x4d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x74,0x6f,0x20,0x66,0x65,0x74,0x63,0x68,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x20,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x75,0x73,0x65,0x20,0x74,0x68,0x65,0x20,0x52,0x65,0x6c,0x61,0x79,0x20,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x69,0x72,0x73,0x74,0x2e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x69,0x72,0x73,0x74,0x20,0x65,0x73,0x74,0x61,0x62,0x6c,0x69,0x73,0x68,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x52,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x62,0x65,0x54,0x6f,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x52,0x65,0x73,0x75,0x6c,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x65,0x73,0x74,0x61,0x62,0x6c,0x69,0x73,0x68,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x57,0x61,0x69,0x74,0x20,0x61,0x20,0x6d,0x6f,0x6d,0x65,0x6e,0x74,0x20,0x66,0x6f,0x72,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x65,0x73,0x74,0x61,0x62,0x6c,0x69,0x73,0x68,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x6e,0x65,0x77,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x28,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x20,0x3d,0x3e,0x20,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x2c,0x20,0x35,0x30,0x30,0x29,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x65,0x6e,0x64,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x69,0x66,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x26,0x26,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x26,0x26,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x53,0x65,0x6e,0x64,0x69,0x6e,0x67,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x2e,0x2e,0x2e,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x66,0x6f,0x72,0x20,0x67,0x65,0x74,0x74,0x69,0x6e,0x67,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x20,0x3d,0x20,0x5b,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5f,0x71,0x75,0x65,0x72,0x79,0x22,0x2c,0x20,0x22,0x61,0x6c,0x6c,0x22,0x5d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6c,0x79,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x46,0x6f,0x72,0x52,0x65,0x6c,0x61,0x79,0x28,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x20,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x36,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x20,0x32,0x33,0x34,0x35,0x36,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x3a,0x20,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x2f,0x20,0x31,0x30,0x30,0x30,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x73,0x3a,0x20,0x5b,0x5b,0x22,0x70,0x22,0x2c,0x20,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x5d,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x69,0x67,0x6e,0x20,0x74,0x68,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x73,0x69,0x67,0x6e,0x45,0x76,0x65,0x6e,0x74,0x28,0x63,0x6f,0x6e,0x66,0x69,0x67,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x2e,0x73,0x69,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x76,0x65,0x6e,0x74,0x20,0x73,0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x2c,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x69,0x6e,0x67,0x2e,0x2e,0x2e,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x76,0x69,0x61,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x77,0x69,0x74,0x68,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x55,0x72,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x28,0x5b,0x75,0x72,0x6c,0x5d,0x2c,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x20,0x70,0x65,0x72,0x2d,0x72,0x65,0x6c,0x61,0x79,0x20,0x6f,0x75,0x74,0x63,0x6f,0x6d,0x65,0x73,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x20,0x6f,0x66,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6e,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x66,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6c,0x66,0x69,0x6c,0x6c,0x65,0x64,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0xe2,0x9c,0x85,0x20,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x28,0x24,0x7b,0x75,0x72,0x6c,0x7d,0x29,0x3a,0x20,0x45,0x76,0x65,0x6e,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x60,0xe2,0x9d,0x8c,0x20,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x28,0x24,0x7b,0x75,0x72,0x6c,0x7d,0x29,0x3a,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x60,0x2c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x69,0x66,0x20,0x61,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x6d,0x61,0x70,0x28,0x28,0x72,0x2c,0x20,0x69,0x29,0x20,0x3d,0x3e,0x20,0x60,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x27,0x3b,0x20,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x41,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x65,0x64,0x20,0x74,0x68,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x20,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x73,0x65,0x6e,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x20,0x2d,0x20,0x77,0x61,0x69,0x74,0x69,0x6e,0x67,0x20,0x66,0x6f,0x72,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x2e,0x2e,0x2e,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x4e,0x6f,0x74,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x20,0x2d,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x65,0x73,0x74,0x61,0x62,0x6c,0x69,0x73,0x68,0x65,0x64,0x20,0x66,0x6f,0x72,0x20,0x74,0x65,0x73,0x74,0x69,0x6e,0x67,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x66,0x65,0x74,0x63,0x68,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x27,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x28,0x65,0x76,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x44,0x49,0x53,0x50,0x4c,0x41,0x59,0x49,0x4e,0x47,0x20,0x43,0x4f,0x4e,0x46,0x49,0x47,0x55,0x52,0x41,0x54,0x49,0x4f,0x4e,0x20,0x45,0x56,0x45,0x4e,0x54,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x45,0x76,0x65,0x6e,0x74,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x20,0x66,0x6f,0x72,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x27,0x2c,0x20,0x65,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x3d,0x20,0x65,0x76,0x65,0x6e,0x74,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6c,0x65,0x61,0x72,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x20,0x74,0x61,0x62,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x54,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x27,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x74,0x61,0x67,0x73,0x20,0x28,0x65,0x64,0x69,0x74,0x61,0x62,0x6c,0x65,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x70,0x61,0x72,0x61,0x6d,0x65,0x74,0x65,0x72,0x73,0x20,0x6f,0x6e,0x6c,0x79,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x69,0x6e,0x67,0x20,0x24,0x7b,0x65,0x76,0x65,0x6e,0x74,0x2e,0x74,0x61,0x67,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x7d,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x70,0x61,0x72,0x61,0x6d,0x65,0x74,0x65,0x72,0x73,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x74,0x61,0x67,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x74,0x61,0x67,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x61,0x67,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x3d,0x20,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x6f,0x77,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x27,0x74,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x3d,0x20,0x74,0x61,0x67,0x5b,0x30,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x74,0x61,0x67,0x5b,0x31,0x5d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x65,0x64,0x69,0x74,0x61,0x62,0x6c,0x65,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x66,0x6f,0x72,0x20,0x76,0x61,0x6c,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x49,0x6e,0x70,0x75,0x74,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x27,0x69,0x6e,0x70,0x75,0x74,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x49,0x6e,0x70,0x75,0x74,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x27,0x74,0x65,0x78,0x74,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x49,0x6e,0x70,0x75,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x49,0x6e,0x70,0x75,0x74,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x27,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x76,0x61,0x6c,0x75,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x49,0x6e,0x70,0x75,0x74,0x2e,0x64,0x61,0x74,0x61,0x73,0x65,0x74,0x2e,0x6b,0x65,0x79,0x20,0x3d,0x20,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x49,0x6e,0x70,0x75,0x74,0x2e,0x64,0x61,0x74,0x61,0x73,0x65,0x74,0x2e,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x49,0x6e,0x70,0x75,0x74,0x2e,0x64,0x61,0x74,0x61,0x73,0x65,0x74,0x2e,0x72,0x6f,0x77,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x69,0x6e,0x64,0x65,0x78,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x63,0x6c,0x69,0x63,0x6b,0x61,0x62,0x6c,0x65,0x20,0x41,0x63,0x74,0x69,0x6f,0x6e,0x73,0x20,0x63,0x65,0x6c,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x27,0x74,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x27,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x2d,0x63,0x65,0x6c,0x6c,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x53,0x41,0x56,0x45,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x64,0x61,0x74,0x61,0x73,0x65,0x74,0x2e,0x6b,0x65,0x79,0x20,0x3d,0x20,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x64,0x61,0x74,0x61,0x73,0x65,0x74,0x2e,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x64,0x61,0x74,0x61,0x73,0x65,0x74,0x2e,0x72,0x6f,0x77,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x69,0x6e,0x64,0x65,0x78,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x6e,0x69,0x74,0x69,0x61,0x6c,0x6c,0x79,0x20,0x68,0x69,0x64,0x65,0x20,0x74,0x68,0x65,0x20,0x53,0x41,0x56,0x45,0x20,0x74,0x65,0x78,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x27,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x68,0x6f,0x77,0x20,0x53,0x41,0x56,0x45,0x20,0x74,0x65,0x78,0x74,0x20,0x61,0x6e,0x64,0x20,0x6d,0x61,0x6b,0x65,0x20,0x63,0x6c,0x69,0x63,0x6b,0x61,0x62,0x6c,0x65,0x20,0x77,0x68,0x65,0x6e,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x49,0x6e,0x70,0x75,0x74,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x69,0x6e,0x70,0x75,0x74,0x27,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x21,0x3d,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x61,0x74,0x61,0x73,0x65,0x74,0x2e,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x27,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x63,0x75,0x72,0x73,0x6f,0x72,0x20,0x3d,0x20,0x27,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x73,0x61,0x76,0x65,0x49,0x6e,0x64,0x69,0x76,0x69,0x64,0x75,0x61,0x6c,0x43,0x6f,0x6e,0x66,0x69,0x67,0x28,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x49,0x6e,0x70,0x75,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x49,0x6e,0x70,0x75,0x74,0x2e,0x64,0x61,0x74,0x61,0x73,0x65,0x74,0x2e,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x27,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x63,0x75,0x72,0x73,0x6f,0x72,0x20,0x3d,0x20,0x27,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x77,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x60,0x3c,0x74,0x64,0x3e,0x24,0x7b,0x6b,0x65,0x79,0x7d,0x3c,0x2f,0x74,0x64,0x3e,0x3c,0x74,0x64,0x3e,0x3c,0x2f,0x74,0x64,0x3e,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x77,0x2e,0x63,0x65,0x6c,0x6c,0x73,0x5b,0x31,0x5d,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x43,0x68,0x69,0x6c,0x64,0x28,0x76,0x61,0x6c,0x75,0x65,0x49,0x6e,0x70,0x75,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x77,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x43,0x68,0x69,0x6c,0x64,0x28,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x54,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x43,0x68,0x69,0x6c,0x64,0x28,0x72,0x6f,0x77,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x68,0x6f,0x77,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x69,0x66,0x20,0x6e,0x6f,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x70,0x61,0x72,0x61,0x6d,0x65,0x74,0x65,0x72,0x73,0x20,0x66,0x6f,0x75,0x6e,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x76,0x65,0x6e,0x74,0x2e,0x74,0x61,0x67,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x6f,0x77,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x27,0x74,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x77,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x60,0x3c,0x74,0x64,0x20,0x63,0x6f,0x6c,0x73,0x70,0x61,0x6e,0x3d,0x22,0x33,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x20,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x20,0x69,0x74,0x61,0x6c,0x69,0x63,0x3b,0x22,0x3e,0x4e,0x6f,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x70,0x61,0x72,0x61,0x6d,0x65,0x74,0x65,0x72,0x73,0x20,0x66,0x6f,0x75,0x6e,0x64,0x3c,0x2f,0x74,0x64,0x3e,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x54,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x43,0x68,0x69,0x6c,0x64,0x28,0x72,0x6f,0x77,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x63,0x6f,0x6d,0x70,0x6c,0x65,0x74,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x43,0x6f,0x6e,0x66,0x69,0x67,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x72,0x72,0x6f,0x72,0x20,0x69,0x6e,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x27,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x65,0x72,0x72,0x6f,0x72,0x3a,0x27,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x53,0x61,0x76,0x65,0x20,0x69,0x6e,0x64,0x69,0x76,0x69,0x64,0x75,0x61,0x6c,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x70,0x61,0x72,0x61,0x6d,0x65,0x74,0x65,0x72,0x0a,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x61,0x76,0x65,0x49,0x6e,0x64,0x69,0x76,0x69,0x64,0x75,0x61,0x6c,0x43,0x6f,0x6e,0x66,0x69,0x67,0x28,0x6b,0x65,0x79,0x2c,0x20,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x7c,0x7c,0x20,0x21,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x4d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x6f,0x20,0x73,0x61,0x76,0x65,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6e,0x66,0x69,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x4e,0x6f,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x6f,0x6e,0x27,0x74,0x20,0x73,0x61,0x76,0x65,0x20,0x69,0x66,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x68,0x61,0x73,0x6e,0x27,0x74,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x53,0x61,0x76,0x69,0x6e,0x67,0x20,0x69,0x6e,0x64,0x69,0x76,0x69,0x64,0x75,0x61,0x6c,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x3a,0x20,0x24,0x7b,0x6b,0x65,0x79,0x7d,0x20,0x3d,0x20,0x24,0x7b,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x7d,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x65,0x20,0x64,0x61,0x74,0x61,0x20,0x74,0x79,0x70,0x65,0x20,0x62,0x61,0x73,0x65,0x64,0x20,0x6f,0x6e,0x20,0x6b,0x65,0x79,0x20,0x6e,0x61,0x6d,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x64,0x61,0x74,0x61,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x27,0x73,0x74,0x72,0x69,0x6e,0x67,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5b,0x27,0x6d,0x61,0x78,0x5f,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x27,0x2c,0x20,0x27,0x70,0x6f,0x77,0x5f,0x6d,0x69,0x6e,0x5f,0x64,0x69,0x66,0x66,0x69,0x63,0x75,0x6c,0x74,0x79,0x27,0x2c,0x20,0x27,0x6e,0x69,0x70,0x34,0x32,0x5f,0x63,0x68,0x61,0x6c,0x6c,0x65,0x6e,0x67,0x65,0x5f,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x27,0x2c,0x20,0x27,0x6d,0x61,0x78,0x5f,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x73,0x5f,0x70,0x65,0x72,0x5f,0x63,0x6c,0x69,0x65,0x6e,0x74,0x27,0x2c,0x20,0x27,0x6d,0x61,0x78,0x5f,0x65,0x76,0x65,0x6e,0x74,0x5f,0x74,0x61,0x67,0x73,0x27,0x2c,0x20,0x27,0x6d,0x61,0x78,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x5f,0x6c,0x65,0x6e,0x67,0x74,0x68,0x27,0x5d,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x61,0x74,0x61,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x27,0x69,0x6e,0x74,0x65,0x67,0x65,0x72,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x5b,0x27,0x61,0x75,0x74,0x68,0x5f,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x27,0x2c,0x20,0x27,0x6e,0x69,0x70,0x34,0x32,0x5f,0x61,0x75,0x74,0x68,0x5f,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x64,0x27,0x2c,0x20,0x27,0x6e,0x69,0x70,0x34,0x30,0x5f,0x65,0x78,0x70,0x69,0x72,0x61,0x74,0x69,0x6f,0x6e,0x5f,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x27,0x5d,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x61,0x74,0x61,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x27,0x62,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x65,0x20,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0x20,0x62,0x61,0x73,0x65,0x64,0x20,0x6f,0x6e,0x20,0x6b,0x65,0x79,0x20,0x6e,0x61,0x6d,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0x20,0x3d,0x20,0x27,0x67,0x65,0x6e,0x65,0x72,0x61,0x6c,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x27,0x72,0x65,0x6c,0x61,0x79,0x5f,0x27,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0x20,0x3d,0x20,0x27,0x72,0x65,0x6c,0x61,0x79,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x27,0x6e,0x69,0x70,0x34,0x30,0x5f,0x27,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0x20,0x3d,0x20,0x27,0x65,0x78,0x70,0x69,0x72,0x61,0x74,0x69,0x6f,0x6e,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x27,0x6e,0x69,0x70,0x34,0x32,0x5f,0x27,0x29,0x20,0x7c,0x7c,0x20,0x6b,0x65,0x79,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x27,0x61,0x75,0x74,0x68,0x5f,0x27,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0x20,0x3d,0x20,0x27,0x61,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x27,0x70,0x6f,0x77,0x5f,0x27,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0x20,0x3d,0x20,0x27,0x70,0x72,0x6f,0x6f,0x66,0x5f,0x6f,0x66,0x5f,0x77,0x6f,0x72,0x6b,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x27,0x6d,0x61,0x78,0x5f,0x27,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0x20,0x3d,0x20,0x27,0x6c,0x69,0x6d,0x69,0x74,0x73,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x4f,0x62,0x6a,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x3a,0x20,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x3a,0x20,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x61,0x74,0x61,0x5f,0x74,0x79,0x70,0x65,0x3a,0x20,0x64,0x61,0x74,0x61,0x54,0x79,0x70,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0x3a,0x20,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x63,0x65,0x6c,0x6c,0x20,0x64,0x75,0x72,0x69,0x6e,0x67,0x20,0x73,0x61,0x76,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x53,0x41,0x56,0x49,0x4e,0x47,0x2e,0x2e,0x2e,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x27,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x63,0x75,0x72,0x73,0x6f,0x72,0x20,0x3d,0x20,0x27,0x6e,0x6f,0x74,0x2d,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x65,0x6e,0x64,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x73,0x65,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x55,0x70,0x64,0x61,0x74,0x65,0x43,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x28,0x5b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x4f,0x62,0x6a,0x5d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x74,0x68,0x65,0x20,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x6f,0x6e,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x3d,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x65,0x6c,0x6c,0x73,0x5b,0x31,0x5d,0x2e,0x71,0x75,0x65,0x72,0x79,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x28,0x27,0x69,0x6e,0x70,0x75,0x74,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x70,0x75,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x70,0x75,0x74,0x2e,0x64,0x61,0x74,0x61,0x73,0x65,0x74,0x2e,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x69,0x64,0x65,0x20,0x53,0x41,0x56,0x45,0x20,0x74,0x65,0x78,0x74,0x20,0x73,0x69,0x6e,0x63,0x65,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x6e,0x6f,0x77,0x20,0x6d,0x61,0x74,0x63,0x68,0x65,0x73,0x20,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x27,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x63,0x75,0x72,0x73,0x6f,0x72,0x20,0x3d,0x20,0x27,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x53,0x41,0x56,0x45,0x44,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x27,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x53,0x41,0x56,0x45,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4b,0x65,0x65,0x70,0x20,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x69,0x66,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x6d,0x61,0x74,0x63,0x68,0x65,0x73,0x20,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x70,0x75,0x74,0x20,0x26,0x26,0x20,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x69,0x6e,0x70,0x75,0x74,0x2e,0x64,0x61,0x74,0x61,0x73,0x65,0x74,0x2e,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x27,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x20,0x32,0x30,0x30,0x30,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x53,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x20,0x73,0x61,0x76,0x65,0x64,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x3a,0x20,0x24,0x7b,0x6b,0x65,0x79,0x7d,0x20,0x3d,0x20,0x24,0x7b,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x7d,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x73,0x61,0x76,0x65,0x20,0x69,0x6e,0x64,0x69,0x76,0x69,0x64,0x75,0x61,0x6c,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x24,0x7b,0x6b,0x65,0x79,0x7d,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x53,0x41,0x56,0x45,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x27,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x63,0x75,0x72,0x73,0x6f,0x72,0x20,0x3d,0x20,0x27,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x73,0x61,0x76,0x65,0x49,0x6e,0x64,0x69,0x76,0x69,0x64,0x75,0x61,0x6c,0x43,0x6f,0x6e,0x66,0x69,0x67,0x28,0x6b,0x65,0x79,0x2c,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x65,0x6c,0x6c,0x73,0x5b,0x31,0x5d,0x2e,0x71,0x75,0x65,0x72,0x79,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x28,0x27,0x69,0x6e,0x70,0x75,0x74,0x27,0x29,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x43,0x65,0x6c,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x0a,0x0a,0x0a,0x2f,0x2f,0x20,0x53,0x65,0x6e,0x64,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x36,0x20,0x77,0x69,0x74,0x68,0x20,0x41,0x64,0x6d,0x69,0x6e,0x69,0x73,0x74,0x72,0x61,0x74,0x6f,0x72,0x20,0x41,0x50,0x49,0x20,0x28,0x69,0x6e,0x6e,0x65,0x72,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x29,0x0a,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x55,0x70,0x64,0x61,0x74,0x65,0x43,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x28,0x63,0x6f,0x6e,0x66,0x69,0x67,0x4f,0x62,0x6a,0x65,0x63,0x74,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0x53,0x65,0x6e,0x64,0x69,0x6e,0x67,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5f,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x77,0x69,0x74,0x68,0x20,0x24,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x4f,0x62,0x6a,0x65,0x63,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x7d,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x28,0x73,0x29,0x60,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x66,0x6f,0x72,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x20,0x3d,0x20,0x5b,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5f,0x75,0x70,0x64,0x61,0x74,0x65,0x22,0x2c,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x4f,0x62,0x6a,0x65,0x63,0x74,0x73,0x5d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6c,0x79,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x46,0x6f,0x72,0x52,0x65,0x6c,0x61,0x79,0x28,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x20,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x36,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x20,0x32,0x33,0x34,0x35,0x36,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x3a,0x20,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x2f,0x20,0x31,0x30,0x30,0x30,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x73,0x3a,0x20,0x5b,0x5b,0x22,0x70,0x22,0x2c,0x20,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x5d,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x69,0x67,0x6e,0x20,0x74,0x68,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x73,0x69,0x67,0x6e,0x45,0x76,0x65,0x6e,0x74,0x28,0x63,0x6f,0x6e,0x66,0x69,0x67,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x2e,0x73,0x69,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x76,0x65,0x6e,0x74,0x20,0x73,0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x20,0x24,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x4f,0x62,0x6a,0x65,0x63,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x7d,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x28,0x73,0x29,0x60,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x76,0x69,0x61,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x77,0x69,0x74,0x68,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x55,0x72,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x28,0x5b,0x75,0x72,0x6c,0x5d,0x2c,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x20,0x70,0x65,0x72,0x2d,0x72,0x65,0x6c,0x61,0x79,0x20,0x6f,0x75,0x74,0x63,0x6f,0x6d,0x65,0x73,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x20,0x6f,0x66,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6e,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x66,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6c,0x66,0x69,0x6c,0x6c,0x65,0x64,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0xe2,0x9c,0x85,0x20,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x28,0x24,0x7b,0x75,0x72,0x6c,0x7d,0x29,0x3a,0x20,0x45,0x76,0x65,0x6e,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x60,0xe2,0x9d,0x8c,0x20,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x28,0x24,0x7b,0x75,0x72,0x6c,0x7d,0x29,0x3a,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x60,0x2c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x69,0x66,0x20,0x61,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x6d,0x61,0x70,0x28,0x28,0x72,0x2c,0x20,0x69,0x29,0x20,0x3d,0x3e,0x20,0x60,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x27,0x3b,0x20,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x41,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x65,0x64,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x20,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x73,0x65,0x6e,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x20,0x77,0x69,0x74,0x68,0x20,0x24,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x4f,0x62,0x6a,0x65,0x63,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x7d,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x28,0x73,0x29,0x60,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x66,0x6f,0x72,0x20,0x74,0x65,0x73,0x74,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x53,0x45,0x4e,0x54,0x27,0x2c,0x20,0x60,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x3a,0x20,0x24,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x4f,0x62,0x6a,0x65,0x63,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x7d,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x28,0x73,0x29,0x60,0x2c,0x20,0x27,0x43,0x4f,0x4e,0x46,0x49,0x47,0x5f,0x55,0x50,0x44,0x41,0x54,0x45,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x4f,0x62,0x6a,0x65,0x63,0x74,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x53,0x45,0x4e,0x54,0x27,0x2c,0x20,0x60,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x7d,0x3a,0x20,0x24,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x6b,0x65,0x79,0x7d,0x20,0x3d,0x20,0x24,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x76,0x61,0x6c,0x75,0x65,0x7d,0x20,0x28,0x24,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x64,0x61,0x74,0x61,0x5f,0x74,0x79,0x70,0x65,0x7d,0x29,0x60,0x2c,0x20,0x27,0x43,0x4f,0x4e,0x46,0x49,0x47,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x73,0x65,0x6e,0x64,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5f,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x3a,0x60,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x0a,0x0a,0x2f,0x2f,0x20,0x50,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x61,0x72,0x65,0x61,0x20,0x63,0x6c,0x69,0x63,0x6b,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x20,0x66,0x6f,0x72,0x20,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x20,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x67,0x67,0x6c,0x65,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x44,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x28,0x65,0x76,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x44,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4f,0x6e,0x6c,0x79,0x20,0x74,0x6f,0x67,0x67,0x6c,0x65,0x20,0x69,0x66,0x20,0x63,0x6c,0x69,0x63,0x6b,0x69,0x6e,0x67,0x20,0x6f,0x6e,0x20,0x74,0x68,0x65,0x20,0x69,0x6d,0x61,0x67,0x65,0x2c,0x20,0x6e,0x6f,0x74,0x20,0x74,0x68,0x65,0x20,0x74,0x65,0x78,0x74,0x20,0x6f,0x72,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x76,0x65,0x6e,0x74,0x2e,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x68,0x65,0x61,0x64,0x65,0x72,0x55,0x73,0x65,0x72,0x49,0x6d,0x61,0x67,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x56,0x69,0x73,0x69,0x62,0x6c,0x65,0x20,0x3d,0x20,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x44,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x62,0x6c,0x6f,0x63,0x6b,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x44,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x69,0x73,0x56,0x69,0x73,0x69,0x62,0x6c,0x65,0x20,0x3f,0x20,0x27,0x6e,0x6f,0x6e,0x65,0x27,0x20,0x3a,0x20,0x27,0x62,0x6c,0x6f,0x63,0x6b,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x43,0x6c,0x6f,0x73,0x65,0x20,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x20,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x20,0x77,0x68,0x65,0x6e,0x20,0x63,0x6c,0x69,0x63,0x6b,0x69,0x6e,0x67,0x20,0x6f,0x75,0x74,0x73,0x69,0x64,0x65,0x0a,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x63,0x6c,0x69,0x63,0x6b,0x27,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x65,0x76,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x41,0x72,0x65,0x61,0x20,0x26,0x26,0x20,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x44,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x20,0x26,0x26,0x20,0x21,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x41,0x72,0x65,0x61,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x73,0x28,0x65,0x76,0x65,0x6e,0x74,0x2e,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x44,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x27,0x6e,0x6f,0x6e,0x65,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x29,0x3b,0x0a,0x0a,0x2f,0x2f,0x20,0x49,0x6e,0x69,0x74,0x69,0x61,0x6c,0x69,0x7a,0x65,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x61,0x72,0x65,0x61,0x20,0x63,0x6c,0x69,0x63,0x6b,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x0a,0x69,0x66,0x20,0x28,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x41,0x72,0x65,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x41,0x72,0x65,0x61,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x63,0x6c,0x69,0x63,0x6b,0x27,0x2c,0x20,0x74,0x6f,0x67,0x67,0x6c,0x65,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x44,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x49,0x6e,0x69,0x74,0x69,0x61,0x6c,0x69,0x7a,0x65,0x20,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x20,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x0a,0x69,0x66,0x20,0x28,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x42,0x74,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x42,0x74,0x6e,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x63,0x6c,0x69,0x63,0x6b,0x27,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x2e,0x73,0x74,0x6f,0x70,0x50,0x72,0x6f,0x70,0x61,0x67,0x61,0x74,0x69,0x6f,0x6e,0x28,0x29,0x3b,0x20,0x2f,0x2f,0x20,0x50,0x72,0x65,0x76,0x65,0x6e,0x74,0x20,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x20,0x61,0x72,0x65,0x61,0x20,0x63,0x6c,0x69,0x63,0x6b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x45,0x76,0x65,0x6e,0x74,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x0a,0x66,0x65,0x74,0x63,0x68,0x43,0x6f,0x6e,0x66,0x69,0x67,0x42,0x74,0x6e,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x63,0x6c,0x69,0x63,0x6b,0x27,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x28,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x2e,0x70,0x72,0x65,0x76,0x65,0x6e,0x74,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x65,0x2e,0x73,0x74,0x6f,0x70,0x50,0x72,0x6f,0x70,0x61,0x67,0x61,0x74,0x69,0x6f,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x65,0x74,0x63,0x68,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x28,0x29,0x2e,0x63,0x61,0x74,0x63,0x68,0x28,0x65,0x72,0x72,0x6f,0x72,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x4d,0x61,0x6e,0x75,0x61,0x6c,0x20,0x66,0x65,0x74,0x63,0x68,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x27,0x20,0x2b,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x7d,0x29,0x3b,0x0a,0x0a,0x0a,0x0a,0x0a,0x2f,0x2f,0x20,0x52,0x65,0x6c,0x61,0x79,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x0a,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x63,0x6c,0x69,0x63,0x6b,0x27,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x28,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x2e,0x70,0x72,0x65,0x76,0x65,0x6e,0x74,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x65,0x2e,0x73,0x74,0x6f,0x70,0x50,0x72,0x6f,0x70,0x61,0x67,0x61,0x74,0x69,0x6f,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x54,0x6f,0x52,0x65,0x6c,0x61,0x79,0x28,0x29,0x2e,0x63,0x61,0x74,0x63,0x68,0x28,0x65,0x72,0x72,0x6f,0x72,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x52,0x65,0x6c,0x61,0x79,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x27,0x20,0x2b,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x7d,0x29,0x3b,0x0a,0x0a,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x63,0x6c,0x69,0x63,0x6b,0x27,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x28,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x2e,0x70,0x72,0x65,0x76,0x65,0x6e,0x74,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x65,0x2e,0x73,0x74,0x6f,0x70,0x50,0x72,0x6f,0x70,0x61,0x67,0x61,0x74,0x69,0x6f,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x46,0x72,0x6f,0x6d,0x52,0x65,0x6c,0x61,0x79,0x28,0x29,0x3b,0x0a,0x7d,0x29,0x3b,0x0a,0x0a,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x52,0x65,0x6c,0x61,0x79,0x42,0x74,0x6e,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x63,0x6c,0x69,0x63,0x6b,0x27,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x28,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x2e,0x70,0x72,0x65,0x76,0x65,0x6e,0x74,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x65,0x2e,0x73,0x74,0x6f,0x70,0x50,0x72,0x6f,0x70,0x61,0x67,0x61,0x74,0x69,0x6f,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x6e,0x64,0x52,0x65,0x73,0x74,0x61,0x72,0x74,0x43,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x28,0x29,0x2e,0x63,0x61,0x74,0x63,0x68,0x28,0x65,0x72,0x72,0x6f,0x72,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x52,0x65,0x73,0x74,0x61,0x72,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x7d,0x29,0x3b,0x0a,0x0a,0x2f,0x2f,0x20,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,0x0a,0x2f,0x2f,0x20,0x41,0x55,0x54,0x48,0x20,0x52,0x55,0x4c,0x45,0x53,0x20,0x4d,0x41,0x4e,0x41,0x47,0x45,0x4d,0x45,0x4e,0x54,0x20,0x46,0x55,0x4e,0x43,0x54,0x49,0x4f,0x4e,0x53,0x0a,0x2f,0x2f,0x20,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,0x0a,0x0a,0x2f,0x2f,0x20,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x73,0x74,0x61,0x74,0x65,0x0a,0x6c,0x65,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x65,0x64,0x69,0x74,0x69,0x6e,0x67,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x0a,0x2f,0x2f,0x20,0x44,0x4f,0x4d,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x20,0x66,0x6f,0x72,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x42,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x27,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x27,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x27,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x27,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x54,0x69,0x74,0x6c,0x65,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x54,0x69,0x74,0x6c,0x65,0x27,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x61,0x76,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x73,0x61,0x76,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x42,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x6e,0x63,0x65,0x6c,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x63,0x61,0x6e,0x63,0x65,0x6c,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x42,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x0a,0x2f,0x2f,0x20,0x53,0x68,0x6f,0x77,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x6c,0x6f,0x67,0x69,0x6e,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x68,0x6f,0x77,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x27,0x62,0x6c,0x6f,0x63,0x6b,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x72,0x65,0x61,0x64,0x79,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x41,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x20,0x6e,0x6f,0x77,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x48,0x69,0x64,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x6e,0x20,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x69,0x64,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x27,0x6e,0x6f,0x6e,0x65,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x64,0x64,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x63,0x68,0x65,0x63,0x6b,0x73,0x20,0x66,0x6f,0x72,0x20,0x61,0x6c,0x6c,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x27,0x6e,0x6f,0x6e,0x65,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x27,0x6e,0x6f,0x6e,0x65,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x64,0x69,0x74,0x69,0x6e,0x67,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x41,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x69,0x64,0x64,0x65,0x6e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x20,0x28,0x72,0x65,0x6d,0x6f,0x76,0x65,0x64,0x20,0x2d,0x20,0x6e,0x6f,0x20,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x29,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x73,0x74,0x61,0x74,0x75,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x61,0x74,0x75,0x73,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x64,0x20,0x2d,0x20,0x6e,0x6f,0x2d,0x6f,0x70,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x4c,0x6f,0x61,0x64,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x66,0x72,0x6f,0x6d,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x41,0x50,0x49,0x0a,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x6f,0x61,0x64,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x4c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x76,0x69,0x61,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x41,0x50,0x49,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x7c,0x7c,0x20,0x21,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x4d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x6f,0x20,0x6c,0x6f,0x61,0x64,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x66,0x6f,0x72,0x20,0x67,0x65,0x74,0x74,0x69,0x6e,0x67,0x20,0x61,0x6c,0x6c,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x20,0x3d,0x20,0x5b,0x22,0x61,0x75,0x74,0x68,0x5f,0x71,0x75,0x65,0x72,0x79,0x22,0x2c,0x20,0x22,0x61,0x6c,0x6c,0x22,0x5d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6c,0x79,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x46,0x6f,0x72,0x52,0x65,0x6c,0x61,0x79,0x28,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x20,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x36,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x75,0x74,0x68,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x20,0x32,0x33,0x34,0x35,0x36,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x3a,0x20,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x2f,0x20,0x31,0x30,0x30,0x30,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x73,0x3a,0x20,0x5b,0x5b,0x22,0x70,0x22,0x2c,0x20,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x5d,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x69,0x67,0x6e,0x20,0x74,0x68,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x73,0x69,0x67,0x6e,0x45,0x76,0x65,0x6e,0x74,0x28,0x61,0x75,0x74,0x68,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x2e,0x73,0x69,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x76,0x65,0x6e,0x74,0x20,0x73,0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x53,0x65,0x6e,0x64,0x69,0x6e,0x67,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x76,0x69,0x61,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x77,0x69,0x74,0x68,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x55,0x72,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x28,0x5b,0x75,0x72,0x6c,0x5d,0x2c,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x20,0x70,0x65,0x72,0x2d,0x72,0x65,0x6c,0x61,0x79,0x20,0x6f,0x75,0x74,0x63,0x6f,0x6d,0x65,0x73,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x20,0x6f,0x66,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6e,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x66,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6c,0x66,0x69,0x6c,0x6c,0x65,0x64,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0xe2,0x9c,0x85,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x73,0x20,0x51,0x75,0x65,0x72,0x79,0x20,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x28,0x24,0x7b,0x75,0x72,0x6c,0x7d,0x29,0x3a,0x20,0x45,0x76,0x65,0x6e,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x41,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x60,0xe2,0x9d,0x8c,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x73,0x20,0x51,0x75,0x65,0x72,0x79,0x20,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x28,0x24,0x7b,0x75,0x72,0x6c,0x7d,0x29,0x3a,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x60,0x2c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x41,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x69,0x66,0x20,0x61,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x6d,0x61,0x70,0x28,0x28,0x72,0x2c,0x20,0x69,0x29,0x20,0x3d,0x3e,0x20,0x60,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x27,0x3b,0x20,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x41,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x65,0x64,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x20,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x41,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x73,0x65,0x6e,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x20,0x2d,0x20,0x77,0x61,0x69,0x74,0x69,0x6e,0x67,0x20,0x66,0x6f,0x72,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x6c,0x6f,0x61,0x64,0x65,0x64,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x6c,0x6f,0x61,0x64,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x65,0x72,0x72,0x6f,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x74,0x61,0x62,0x6c,0x65,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x28,0x72,0x75,0x6c,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x44,0x49,0x53,0x50,0x4c,0x41,0x59,0x20,0x41,0x55,0x54,0x48,0x20,0x52,0x55,0x4c,0x45,0x53,0x20,0x44,0x45,0x42,0x55,0x47,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3a,0x27,0x2c,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x52,0x75,0x6c,0x65,0x73,0x20,0x74,0x6f,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x27,0x2c,0x20,0x72,0x75,0x6c,0x65,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x52,0x75,0x6c,0x65,0x73,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3a,0x27,0x2c,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x3f,0x20,0x72,0x75,0x6c,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3a,0x20,0x27,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x27,0x2c,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x3f,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3a,0x20,0x27,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x3a,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x27,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x43,0x6c,0x65,0x61,0x72,0x65,0x64,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x75,0x6c,0x65,0x73,0x20,0x7c,0x7c,0x20,0x72,0x75,0x6c,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x4e,0x6f,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x74,0x6f,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x2c,0x20,0x73,0x68,0x6f,0x77,0x69,0x6e,0x67,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x6f,0x77,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x27,0x74,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x77,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x60,0x3c,0x74,0x64,0x20,0x63,0x6f,0x6c,0x73,0x70,0x61,0x6e,0x3d,0x22,0x36,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x20,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x20,0x69,0x74,0x61,0x6c,0x69,0x63,0x3b,0x22,0x3e,0x4e,0x6f,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x65,0x64,0x3c,0x2f,0x74,0x64,0x3e,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x43,0x68,0x69,0x6c,0x64,0x28,0x72,0x6f,0x77,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x41,0x64,0x64,0x65,0x64,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x72,0x6f,0x77,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x69,0x6e,0x67,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x7d,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x75,0x6c,0x65,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x72,0x75,0x6c,0x65,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0x41,0x64,0x64,0x69,0x6e,0x67,0x20,0x72,0x75,0x6c,0x65,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x7d,0x3a,0x60,0x2c,0x20,0x72,0x75,0x6c,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x6f,0x77,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x27,0x74,0x72,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6f,0x6e,0x76,0x65,0x72,0x74,0x20,0x68,0x65,0x78,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x74,0x6f,0x20,0x6e,0x70,0x75,0x62,0x20,0x66,0x6f,0x72,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x69,0x6e,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x72,0x75,0x6c,0x65,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x7c,0x7c,0x20,0x72,0x75,0x6c,0x65,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x7c,0x7c,0x20,0x27,0x2d,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x56,0x61,0x6c,0x75,0x65,0x4c,0x69,0x6e,0x6b,0x20,0x3d,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x56,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x75,0x6c,0x65,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x26,0x26,0x20,0x72,0x75,0x6c,0x65,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x34,0x20,0x26,0x26,0x20,0x2f,0x5e,0x5b,0x30,0x2d,0x39,0x61,0x2d,0x66,0x41,0x2d,0x46,0x5d,0x2b,0x24,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x72,0x75,0x6c,0x65,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x70,0x75,0x62,0x20,0x3d,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x6e,0x69,0x70,0x31,0x39,0x2e,0x6e,0x70,0x75,0x62,0x45,0x6e,0x63,0x6f,0x64,0x65,0x28,0x72,0x75,0x6c,0x65,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x6e,0x70,0x75,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x56,0x61,0x6c,0x75,0x65,0x4c,0x69,0x6e,0x6b,0x20,0x3d,0x20,0x60,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x6e,0x6a,0x75,0x6d,0x70,0x2e,0x6d,0x65,0x2f,0x24,0x7b,0x6e,0x70,0x75,0x62,0x7d,0x22,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x3d,0x22,0x5f,0x62,0x6c,0x61,0x6e,0x6b,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6e,0x70,0x75,0x62,0x2d,0x6c,0x69,0x6e,0x6b,0x22,0x3e,0x24,0x7b,0x6e,0x70,0x75,0x62,0x7d,0x3c,0x2f,0x61,0x3e,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x74,0x6f,0x20,0x6e,0x70,0x75,0x62,0x3a,0x27,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x77,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x24,0x7b,0x72,0x75,0x6c,0x65,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x7d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x24,0x7b,0x72,0x75,0x6c,0x65,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x74,0x79,0x70,0x65,0x20,0x7c,0x7c,0x20,0x72,0x75,0x6c,0x65,0x2e,0x6f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x7c,0x7c,0x20,0x27,0x2d,0x27,0x7d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x27,0x43,0x6f,0x75,0x72,0x69,0x65,0x72,0x20,0x4e,0x65,0x77,0x27,0x2c,0x20,0x6d,0x6f,0x6e,0x6f,0x73,0x70,0x61,0x63,0x65,0x3b,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x32,0x70,0x78,0x3b,0x20,0x77,0x6f,0x72,0x64,0x2d,0x62,0x72,0x65,0x61,0x6b,0x3a,0x20,0x62,0x72,0x65,0x61,0x6b,0x2d,0x61,0x6c,0x6c,0x3b,0x20,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x32,0x30,0x30,0x70,0x78,0x3b,0x22,0x3e,0x24,0x7b,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x56,0x61,0x6c,0x75,0x65,0x4c,0x69,0x6e,0x6b,0x7d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x24,0x7b,0x72,0x75,0x6c,0x65,0x2e,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x20,0x21,0x3d,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x20,0x3f,0x20,0x27,0x41,0x63,0x74,0x69,0x76,0x65,0x27,0x20,0x3a,0x20,0x27,0x49,0x6e,0x61,0x63,0x74,0x69,0x76,0x65,0x27,0x7d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x73,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x65,0x64,0x69,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x28,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x29,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x32,0x70,0x78,0x3b,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x34,0x70,0x78,0x20,0x38,0x70,0x78,0x3b,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x32,0x70,0x78,0x3b,0x22,0x3e,0x45,0x44,0x49,0x54,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x64,0x65,0x6c,0x65,0x74,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x28,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x29,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x32,0x70,0x78,0x3b,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x34,0x70,0x78,0x20,0x38,0x70,0x78,0x3b,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x32,0x70,0x78,0x3b,0x22,0x3e,0x44,0x45,0x4c,0x45,0x54,0x45,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x43,0x68,0x69,0x6c,0x64,0x28,0x72,0x6f,0x77,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0x54,0x6f,0x74,0x61,0x6c,0x20,0x52,0x75,0x6c,0x65,0x73,0x3a,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x7d,0x2c,0x20,0x41,0x63,0x74,0x69,0x76,0x65,0x20,0x52,0x75,0x6c,0x65,0x73,0x3a,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x73,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x72,0x20,0x3d,0x3e,0x20,0x72,0x2e,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x20,0x21,0x3d,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x7d,0x60,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x45,0x4e,0x44,0x20,0x44,0x49,0x53,0x50,0x4c,0x41,0x59,0x20,0x41,0x55,0x54,0x48,0x20,0x52,0x55,0x4c,0x45,0x53,0x20,0x44,0x45,0x42,0x55,0x47,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x53,0x68,0x6f,0x77,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x28,0x61,0x75,0x74,0x6f,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,0x6c,0x79,0x20,0x63,0x61,0x6c,0x6c,0x65,0x64,0x20,0x77,0x68,0x65,0x6e,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x61,0x72,0x65,0x20,0x6c,0x6f,0x61,0x64,0x65,0x64,0x29,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x68,0x6f,0x77,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x53,0x48,0x4f,0x57,0x20,0x41,0x55,0x54,0x48,0x20,0x52,0x55,0x4c,0x45,0x53,0x20,0x54,0x41,0x42,0x4c,0x45,0x20,0x44,0x45,0x42,0x55,0x47,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3a,0x27,0x2c,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x73,0x74,0x79,0x6c,0x65,0x3a,0x27,0x2c,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x3f,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3a,0x20,0x27,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x27,0x62,0x6c,0x6f,0x63,0x6b,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x53,0x65,0x74,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x74,0x6f,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x66,0x20,0x77,0x65,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x68,0x61,0x76,0x65,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x2c,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x74,0x68,0x65,0x6d,0x20,0x69,0x6d,0x6d,0x65,0x64,0x69,0x61,0x74,0x65,0x6c,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x20,0x26,0x26,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x69,0x6e,0x67,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x3a,0x27,0x2c,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x20,0x27,0x72,0x75,0x6c,0x65,0x73,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x6c,0x6f,0x61,0x64,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x41,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x20,0x24,0x7b,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x7d,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x20,0x72,0x75,0x6c,0x65,0x73,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4e,0x6f,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x20,0x72,0x75,0x6c,0x65,0x73,0x2c,0x20,0x6c,0x6f,0x61,0x64,0x20,0x66,0x72,0x6f,0x6d,0x20,0x72,0x65,0x6c,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x4e,0x6f,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x2c,0x20,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x20,0x66,0x72,0x6f,0x6d,0x20,0x72,0x65,0x6c,0x61,0x79,0x2e,0x2e,0x2e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x61,0x64,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x41,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x65,0x64,0x20,0x2d,0x20,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x20,0x66,0x72,0x6f,0x6d,0x20,0x72,0x65,0x6c,0x61,0x79,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x3a,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x45,0x4e,0x44,0x20,0x53,0x48,0x4f,0x57,0x20,0x41,0x55,0x54,0x48,0x20,0x52,0x55,0x4c,0x45,0x53,0x20,0x54,0x41,0x42,0x4c,0x45,0x20,0x44,0x45,0x42,0x55,0x47,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x53,0x68,0x6f,0x77,0x20,0x61,0x64,0x64,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x66,0x6f,0x72,0x6d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x68,0x6f,0x77,0x41,0x64,0x64,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x26,0x26,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x54,0x69,0x74,0x6c,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x64,0x69,0x74,0x69,0x6e,0x67,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x54,0x69,0x74,0x6c,0x65,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x41,0x64,0x64,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x2e,0x72,0x65,0x73,0x65,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x27,0x62,0x6c,0x6f,0x63,0x6b,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x4f,0x70,0x65,0x6e,0x65,0x64,0x20,0x61,0x64,0x64,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x66,0x6f,0x72,0x6d,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x53,0x68,0x6f,0x77,0x20,0x65,0x64,0x69,0x74,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x66,0x6f,0x72,0x6d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x64,0x69,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x28,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x64,0x65,0x78,0x20,0x3c,0x20,0x30,0x20,0x7c,0x7c,0x20,0x69,0x6e,0x64,0x65,0x78,0x20,0x3e,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x75,0x6c,0x65,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x5b,0x69,0x6e,0x64,0x65,0x78,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x65,0x64,0x69,0x74,0x69,0x6e,0x67,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x20,0x3d,0x20,0x7b,0x20,0x2e,0x2e,0x2e,0x72,0x75,0x6c,0x65,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x3a,0x20,0x69,0x6e,0x64,0x65,0x78,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x54,0x69,0x74,0x6c,0x65,0x20,0x26,0x26,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x54,0x69,0x74,0x6c,0x65,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x45,0x64,0x69,0x74,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x20,0x66,0x6f,0x72,0x6d,0x20,0x66,0x69,0x65,0x6c,0x64,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x54,0x79,0x70,0x65,0x27,0x29,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x72,0x75,0x6c,0x65,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x20,0x7c,0x7c,0x20,0x27,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x54,0x79,0x70,0x65,0x27,0x29,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x72,0x75,0x6c,0x65,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x74,0x79,0x70,0x65,0x20,0x7c,0x7c,0x20,0x72,0x75,0x6c,0x65,0x2e,0x6f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x7c,0x7c,0x20,0x27,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x56,0x61,0x6c,0x75,0x65,0x27,0x29,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x72,0x75,0x6c,0x65,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x7c,0x7c,0x20,0x72,0x75,0x6c,0x65,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x7c,0x7c,0x20,0x27,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x41,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x72,0x75,0x6c,0x65,0x2e,0x61,0x63,0x74,0x69,0x6f,0x6e,0x20,0x7c,0x7c,0x20,0x27,0x61,0x6c,0x6c,0x6f,0x77,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x44,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x27,0x29,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x72,0x75,0x6c,0x65,0x2e,0x64,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x7c,0x7c,0x20,0x27,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x27,0x62,0x6c,0x6f,0x63,0x6b,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x45,0x64,0x69,0x74,0x69,0x6e,0x67,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x3a,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x7d,0x20,0x2d,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x7c,0x7c,0x20,0x72,0x75,0x6c,0x65,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x61,0x72,0x67,0x65,0x74,0x7d,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x44,0x65,0x6c,0x65,0x74,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x41,0x64,0x6d,0x69,0x6e,0x69,0x73,0x74,0x72,0x61,0x74,0x6f,0x72,0x20,0x41,0x50,0x49,0x20,0x28,0x69,0x6e,0x6e,0x65,0x72,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x29,0x0a,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x28,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x64,0x65,0x78,0x20,0x3c,0x20,0x30,0x20,0x7c,0x7c,0x20,0x69,0x6e,0x64,0x65,0x78,0x20,0x3e,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x75,0x6c,0x65,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x5b,0x69,0x6e,0x64,0x65,0x78,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x72,0x6d,0x4d,0x73,0x67,0x20,0x3d,0x20,0x60,0x44,0x65,0x6c,0x65,0x74,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x3a,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x7d,0x20,0x2d,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x7c,0x7c,0x20,0x72,0x75,0x6c,0x65,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x61,0x72,0x67,0x65,0x74,0x7d,0x3f,0x60,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x6f,0x6e,0x66,0x69,0x72,0x6d,0x28,0x63,0x6f,0x6e,0x66,0x69,0x72,0x6d,0x4d,0x73,0x67,0x29,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x44,0x65,0x6c,0x65,0x74,0x69,0x6e,0x67,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x3a,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x7d,0x20,0x2d,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x7c,0x7c,0x20,0x72,0x75,0x6c,0x65,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x61,0x72,0x67,0x65,0x74,0x7d,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x7c,0x7c,0x20,0x21,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x4d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x6f,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x66,0x6f,0x72,0x20,0x64,0x65,0x6c,0x65,0x74,0x69,0x6e,0x67,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x6f,0x72,0x6d,0x61,0x74,0x3a,0x20,0x5b,0x22,0x73,0x79,0x73,0x74,0x65,0x6d,0x5f,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x22,0x2c,0x20,0x22,0x64,0x65,0x6c,0x65,0x74,0x65,0x5f,0x61,0x75,0x74,0x68,0x5f,0x72,0x75,0x6c,0x65,0x22,0x2c,0x20,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x2c,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x74,0x79,0x70,0x65,0x2c,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x72,0x75,0x6c,0x65,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x72,0x75,0x6c,0x65,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x74,0x79,0x70,0x65,0x20,0x7c,0x7c,0x20,0x27,0x70,0x75,0x62,0x6b,0x65,0x79,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x72,0x75,0x6c,0x65,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x7c,0x7c,0x20,0x72,0x75,0x6c,0x65,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x61,0x72,0x67,0x65,0x74,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x20,0x3d,0x20,0x5b,0x22,0x73,0x79,0x73,0x74,0x65,0x6d,0x5f,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x22,0x2c,0x20,0x22,0x64,0x65,0x6c,0x65,0x74,0x65,0x5f,0x61,0x75,0x74,0x68,0x5f,0x72,0x75,0x6c,0x65,0x22,0x2c,0x20,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x2c,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x74,0x79,0x70,0x65,0x2c,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x5d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6c,0x79,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x46,0x6f,0x72,0x52,0x65,0x6c,0x61,0x79,0x28,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x20,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x36,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x75,0x74,0x68,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x20,0x32,0x33,0x34,0x35,0x36,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x3a,0x20,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x2f,0x20,0x31,0x30,0x30,0x30,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x73,0x3a,0x20,0x5b,0x5b,0x22,0x70,0x22,0x2c,0x20,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x5d,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x69,0x67,0x6e,0x20,0x74,0x68,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x73,0x69,0x67,0x6e,0x45,0x76,0x65,0x6e,0x74,0x28,0x61,0x75,0x74,0x68,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x2e,0x73,0x69,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x76,0x65,0x6e,0x74,0x20,0x73,0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x53,0x65,0x6e,0x64,0x69,0x6e,0x67,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x76,0x69,0x61,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x77,0x69,0x74,0x68,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x55,0x72,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x28,0x5b,0x75,0x72,0x6c,0x5d,0x2c,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x20,0x70,0x65,0x72,0x2d,0x72,0x65,0x6c,0x61,0x79,0x20,0x6f,0x75,0x74,0x63,0x6f,0x6d,0x65,0x73,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x20,0x6f,0x66,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6e,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x66,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6c,0x66,0x69,0x6c,0x6c,0x65,0x64,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0xe2,0x9c,0x85,0x20,0x44,0x65,0x6c,0x65,0x74,0x65,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x20,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x28,0x24,0x7b,0x75,0x72,0x6c,0x7d,0x29,0x3a,0x20,0x45,0x76,0x65,0x6e,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x44,0x65,0x6c,0x65,0x74,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x60,0xe2,0x9d,0x8c,0x20,0x44,0x65,0x6c,0x65,0x74,0x65,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x20,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x28,0x24,0x7b,0x75,0x72,0x6c,0x7d,0x29,0x3a,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x60,0x2c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x44,0x65,0x6c,0x65,0x74,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x69,0x66,0x20,0x61,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x6d,0x61,0x70,0x28,0x28,0x72,0x2c,0x20,0x69,0x29,0x20,0x3d,0x3e,0x20,0x60,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x27,0x3b,0x20,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x41,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x65,0x64,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x20,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x44,0x65,0x6c,0x65,0x74,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x73,0x65,0x6e,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x20,0x2d,0x20,0x77,0x61,0x69,0x74,0x69,0x6e,0x67,0x20,0x66,0x6f,0x72,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x6d,0x6f,0x76,0x65,0x20,0x66,0x72,0x6f,0x6d,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x69,0x6d,0x6d,0x65,0x64,0x69,0x61,0x74,0x65,0x6c,0x79,0x20,0x66,0x6f,0x72,0x20,0x55,0x49,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x69,0x76,0x65,0x6e,0x65,0x73,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x2e,0x73,0x70,0x6c,0x69,0x63,0x65,0x28,0x69,0x6e,0x64,0x65,0x78,0x2c,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x48,0x69,0x64,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x66,0x6f,0x72,0x6d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x69,0x64,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x27,0x6e,0x6f,0x6e,0x65,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x64,0x69,0x74,0x69,0x6e,0x67,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x41,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x66,0x6f,0x72,0x6d,0x20,0x68,0x69,0x64,0x64,0x65,0x6e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x66,0x6f,0x72,0x6d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x75,0x6c,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x54,0x79,0x70,0x65,0x27,0x29,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x54,0x79,0x70,0x65,0x27,0x29,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x56,0x61,0x6c,0x75,0x65,0x27,0x29,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x41,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x75,0x6c,0x65,0x54,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x27,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x20,0x61,0x20,0x72,0x75,0x6c,0x65,0x20,0x74,0x79,0x70,0x65,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x54,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x27,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x20,0x61,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x20,0x74,0x79,0x70,0x65,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x27,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x65,0x6e,0x74,0x65,0x72,0x20,0x61,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x20,0x76,0x61,0x6c,0x75,0x65,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x61,0x63,0x74,0x69,0x6f,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x27,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x20,0x61,0x6e,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x20,0x66,0x6f,0x72,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x72,0x75,0x6c,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x72,0x75,0x6c,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x70,0x75,0x62,0x6b,0x65,0x79,0x5f,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x27,0x20,0x7c,0x7c,0x20,0x72,0x75,0x6c,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x70,0x75,0x62,0x6b,0x65,0x79,0x5f,0x62,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x27,0x29,0x20,0x26,0x26,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x56,0x61,0x6c,0x75,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x21,0x3d,0x3d,0x20,0x36,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x27,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x6d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x65,0x78,0x61,0x63,0x74,0x6c,0x79,0x20,0x36,0x34,0x20,0x68,0x65,0x78,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x20,0x68,0x65,0x78,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x20,0x66,0x6f,0x72,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x72,0x75,0x6c,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x72,0x75,0x6c,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x70,0x75,0x62,0x6b,0x65,0x79,0x5f,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x27,0x20,0x7c,0x7c,0x20,0x72,0x75,0x6c,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x70,0x75,0x62,0x6b,0x65,0x79,0x5f,0x62,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x27,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x65,0x78,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x20,0x3d,0x20,0x2f,0x5e,0x5b,0x30,0x2d,0x39,0x61,0x2d,0x66,0x41,0x2d,0x46,0x5d,0x2b,0x24,0x2f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x68,0x65,0x78,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x2e,0x74,0x65,0x73,0x74,0x28,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x56,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x27,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x6d,0x75,0x73,0x74,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x68,0x65,0x78,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x20,0x28,0x30,0x2d,0x39,0x2c,0x20,0x61,0x2d,0x66,0x2c,0x20,0x41,0x2d,0x46,0x29,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x53,0x61,0x76,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x28,0x61,0x64,0x64,0x20,0x6f,0x72,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x29,0x0a,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x61,0x76,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x28,0x65,0x76,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x70,0x72,0x65,0x76,0x65,0x6e,0x74,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x28,0x29,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x75,0x6c,0x65,0x44,0x61,0x74,0x61,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x3a,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x54,0x79,0x70,0x65,0x27,0x29,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x74,0x79,0x70,0x65,0x3a,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x54,0x79,0x70,0x65,0x27,0x29,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x3a,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x56,0x61,0x6c,0x75,0x65,0x27,0x29,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x41,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x44,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x27,0x29,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x20,0x7c,0x7c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x3a,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x64,0x69,0x74,0x69,0x6e,0x67,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x55,0x70,0x64,0x61,0x74,0x69,0x6e,0x67,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x3a,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x44,0x61,0x74,0x61,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x7d,0x20,0x2d,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x44,0x61,0x74,0x61,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x7d,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x4f,0x44,0x4f,0x3a,0x20,0x49,0x6d,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x61,0x63,0x74,0x75,0x61,0x6c,0x20,0x72,0x75,0x6c,0x65,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x76,0x69,0x61,0x20,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x20,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x36,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x6f,0x72,0x20,0x6e,0x6f,0x77,0x2c,0x20,0x6a,0x75,0x73,0x74,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x20,0x61,0x72,0x72,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x5b,0x65,0x64,0x69,0x74,0x69,0x6e,0x67,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x2e,0x69,0x6e,0x64,0x65,0x78,0x5d,0x20,0x3d,0x20,0x7b,0x20,0x2e,0x2e,0x2e,0x72,0x75,0x6c,0x65,0x44,0x61,0x74,0x61,0x2c,0x20,0x69,0x64,0x3a,0x20,0x65,0x64,0x69,0x74,0x69,0x6e,0x67,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x2e,0x69,0x64,0x20,0x7c,0x7c,0x20,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x41,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x20,0x28,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x20,0x69,0x6d,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x29,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x41,0x64,0x64,0x69,0x6e,0x67,0x20,0x6e,0x65,0x77,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x3a,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x44,0x61,0x74,0x61,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x7d,0x20,0x2d,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x44,0x61,0x74,0x61,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x7d,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x4f,0x44,0x4f,0x3a,0x20,0x49,0x6d,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x61,0x63,0x74,0x75,0x61,0x6c,0x20,0x72,0x75,0x6c,0x65,0x20,0x63,0x72,0x65,0x61,0x74,0x69,0x6f,0x6e,0x20,0x76,0x69,0x61,0x20,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x20,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x36,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x6f,0x72,0x20,0x6e,0x6f,0x77,0x2c,0x20,0x6a,0x75,0x73,0x74,0x20,0x61,0x64,0x64,0x20,0x74,0x6f,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x20,0x61,0x72,0x72,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x7b,0x20,0x2e,0x2e,0x2e,0x72,0x75,0x6c,0x65,0x44,0x61,0x74,0x61,0x2c,0x20,0x69,0x64,0x3a,0x20,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x41,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x61,0x64,0x64,0x65,0x64,0x20,0x28,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x20,0x69,0x6d,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x29,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x64,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x73,0x61,0x76,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x20,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x20,0x61,0x6e,0x64,0x20,0x73,0x68,0x6f,0x77,0x4d,0x61,0x69,0x6e,0x49,0x6e,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x73,0x20,0x74,0x6f,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x61,0x6e,0x64,0x20,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x44,0x4d,0x73,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x20,0x3d,0x20,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x3b,0x0a,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x20,0x3d,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x64,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6c,0x65,0x61,0x72,0x20,0x44,0x4d,0x20,0x69,0x6e,0x62,0x6f,0x78,0x20,0x61,0x6e,0x64,0x20,0x6f,0x75,0x74,0x62,0x6f,0x78,0x20,0x6f,0x6e,0x20,0x6c,0x6f,0x67,0x6f,0x75,0x74,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x6d,0x49,0x6e,0x62,0x6f,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6d,0x49,0x6e,0x62,0x6f,0x78,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x27,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6c,0x6f,0x67,0x2d,0x65,0x6e,0x74,0x72,0x79,0x22,0x3e,0x4e,0x6f,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x20,0x79,0x65,0x74,0x2e,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x6d,0x4f,0x75,0x74,0x62,0x6f,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6d,0x4f,0x75,0x74,0x62,0x6f,0x78,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x27,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x4c,0x6f,0x67,0x6f,0x75,0x74,0x28,0x29,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x53,0x68,0x6f,0x77,0x4d,0x61,0x69,0x6e,0x49,0x6e,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x20,0x3d,0x20,0x73,0x68,0x6f,0x77,0x4d,0x61,0x69,0x6e,0x49,0x6e,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x3b,0x0a,0x73,0x68,0x6f,0x77,0x4d,0x61,0x69,0x6e,0x49,0x6e,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x53,0x68,0x6f,0x77,0x4d,0x61,0x69,0x6e,0x49,0x6e,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x6d,0x6f,0x76,0x65,0x64,0x20,0x73,0x68,0x6f,0x77,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x20,0x63,0x61,0x6c,0x6c,0x20,0x2d,0x20,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x20,0x6e,0x6f,0x77,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x64,0x20,0x62,0x79,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x41,0x64,0x6d,0x69,0x6e,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x56,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x28,0x29,0x0a,0x7d,0x3b,0x0a,0x0a,0x2f,0x2f,0x20,0x41,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x0a,0x69,0x66,0x20,0x28,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x42,0x74,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x42,0x74,0x6e,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x63,0x6c,0x69,0x63,0x6b,0x27,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x28,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x2e,0x70,0x72,0x65,0x76,0x65,0x6e,0x74,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x61,0x64,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x69,0x66,0x20,0x28,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x73,0x75,0x62,0x6d,0x69,0x74,0x27,0x2c,0x20,0x73,0x61,0x76,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x69,0x66,0x20,0x28,0x63,0x61,0x6e,0x63,0x65,0x6c,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x42,0x74,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x6e,0x63,0x65,0x6c,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x42,0x74,0x6e,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x63,0x6c,0x69,0x63,0x6b,0x27,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x28,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x2e,0x70,0x72,0x65,0x76,0x65,0x6e,0x74,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x64,0x65,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x46,0x6f,0x72,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,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,0x0a,0x2f,0x2f,0x20,0x53,0x54,0x52,0x45,0x41,0x4d,0x4c,0x49,0x4e,0x45,0x44,0x20,0x41,0x55,0x54,0x48,0x20,0x52,0x55,0x4c,0x45,0x20,0x46,0x55,0x4e,0x43,0x54,0x49,0x4f,0x4e,0x53,0x0a,0x2f,0x2f,0x20,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,0x0a,0x0a,0x2f,0x2f,0x20,0x55,0x74,0x69,0x6c,0x69,0x74,0x79,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x20,0x63,0x6f,0x6e,0x76,0x65,0x72,0x74,0x20,0x6e,0x73,0x65,0x63,0x20,0x74,0x6f,0x20,0x68,0x65,0x78,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x6f,0x72,0x20,0x6e,0x70,0x75,0x62,0x20,0x74,0x6f,0x20,0x68,0x65,0x78,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x73,0x65,0x63,0x54,0x6f,0x48,0x65,0x78,0x28,0x69,0x6e,0x70,0x75,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x6e,0x70,0x75,0x74,0x20,0x7c,0x7c,0x20,0x69,0x6e,0x70,0x75,0x74,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x72,0x69,0x6d,0x6d,0x65,0x64,0x20,0x3d,0x20,0x69,0x6e,0x70,0x75,0x74,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x66,0x20,0x69,0x74,0x27,0x73,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x36,0x34,0x2d,0x63,0x68,0x61,0x72,0x20,0x68,0x65,0x78,0x2c,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x73,0x2d,0x69,0x73,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x2f,0x5e,0x5b,0x30,0x2d,0x39,0x61,0x2d,0x66,0x41,0x2d,0x46,0x5d,0x7b,0x36,0x34,0x7d,0x24,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x74,0x72,0x69,0x6d,0x6d,0x65,0x64,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x69,0x6d,0x6d,0x65,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x66,0x20,0x69,0x74,0x20,0x73,0x74,0x61,0x72,0x74,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x6e,0x73,0x65,0x63,0x31,0x2c,0x20,0x74,0x72,0x79,0x20,0x74,0x6f,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x72,0x69,0x6d,0x6d,0x65,0x64,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x27,0x6e,0x73,0x65,0x63,0x31,0x27,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x20,0x26,0x26,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x6e,0x69,0x70,0x31,0x39,0x20,0x26,0x26,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x6e,0x69,0x70,0x31,0x39,0x2e,0x64,0x65,0x63,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x64,0x20,0x3d,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x6e,0x69,0x70,0x31,0x39,0x2e,0x64,0x65,0x63,0x6f,0x64,0x65,0x28,0x74,0x72,0x69,0x6d,0x6d,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x65,0x63,0x6f,0x64,0x65,0x64,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x6e,0x73,0x65,0x63,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x64,0x69,0x66,0x66,0x65,0x72,0x65,0x6e,0x74,0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x73,0x20,0x6f,0x66,0x20,0x6e,0x6f,0x73,0x74,0x72,0x2d,0x74,0x6f,0x6f,0x6c,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x64,0x2e,0x64,0x61,0x74,0x61,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x73,0x74,0x72,0x69,0x6e,0x67,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x76,0x31,0x20,0x73,0x74,0x79,0x6c,0x65,0x20,0x2d,0x20,0x64,0x61,0x74,0x61,0x20,0x69,0x73,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x68,0x65,0x78,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x64,0x2e,0x64,0x61,0x74,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x76,0x32,0x20,0x73,0x74,0x79,0x6c,0x65,0x20,0x2d,0x20,0x64,0x61,0x74,0x61,0x20,0x69,0x73,0x20,0x55,0x69,0x6e,0x74,0x38,0x41,0x72,0x72,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x65,0x78,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x66,0x72,0x6f,0x6d,0x28,0x64,0x65,0x63,0x6f,0x64,0x65,0x64,0x2e,0x64,0x61,0x74,0x61,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x6d,0x61,0x70,0x28,0x62,0x20,0x3d,0x3e,0x20,0x62,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x31,0x36,0x29,0x2e,0x70,0x61,0x64,0x53,0x74,0x61,0x72,0x74,0x28,0x32,0x2c,0x20,0x27,0x30,0x27,0x29,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x27,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x68,0x65,0x78,0x50,0x75,0x62,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x20,0x6e,0x73,0x65,0x63,0x3a,0x27,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x66,0x20,0x69,0x74,0x20,0x73,0x74,0x61,0x72,0x74,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x6e,0x70,0x75,0x62,0x31,0x2c,0x20,0x74,0x72,0x79,0x20,0x74,0x6f,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x20,0x74,0x6f,0x20,0x68,0x65,0x78,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x72,0x69,0x6d,0x6d,0x65,0x64,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x27,0x6e,0x70,0x75,0x62,0x31,0x27,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x20,0x26,0x26,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x6e,0x69,0x70,0x31,0x39,0x20,0x26,0x26,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x6e,0x69,0x70,0x31,0x39,0x2e,0x64,0x65,0x63,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x64,0x20,0x3d,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x6e,0x69,0x70,0x31,0x39,0x2e,0x64,0x65,0x63,0x6f,0x64,0x65,0x28,0x74,0x72,0x69,0x6d,0x6d,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x65,0x63,0x6f,0x64,0x65,0x64,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x6e,0x70,0x75,0x62,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x64,0x69,0x66,0x66,0x65,0x72,0x65,0x6e,0x74,0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x73,0x20,0x6f,0x66,0x20,0x6e,0x6f,0x73,0x74,0x72,0x2d,0x74,0x6f,0x6f,0x6c,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x64,0x2e,0x64,0x61,0x74,0x61,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x73,0x74,0x72,0x69,0x6e,0x67,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x76,0x31,0x20,0x73,0x74,0x79,0x6c,0x65,0x20,0x2d,0x20,0x64,0x61,0x74,0x61,0x20,0x69,0x73,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x68,0x65,0x78,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x64,0x2e,0x64,0x61,0x74,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x76,0x32,0x20,0x73,0x74,0x79,0x6c,0x65,0x20,0x2d,0x20,0x64,0x61,0x74,0x61,0x20,0x69,0x73,0x20,0x55,0x69,0x6e,0x74,0x38,0x41,0x72,0x72,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x65,0x78,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x66,0x72,0x6f,0x6d,0x28,0x64,0x65,0x63,0x6f,0x64,0x65,0x64,0x2e,0x64,0x61,0x74,0x61,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x6d,0x61,0x70,0x28,0x62,0x20,0x3d,0x3e,0x20,0x62,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x31,0x36,0x29,0x2e,0x70,0x61,0x64,0x53,0x74,0x61,0x72,0x74,0x28,0x32,0x2c,0x20,0x27,0x30,0x27,0x29,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x27,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x68,0x65,0x78,0x50,0x75,0x62,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x20,0x6e,0x70,0x75,0x62,0x3a,0x27,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x20,0x2f,0x2f,0x20,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x41,0x64,0x64,0x20,0x62,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x20,0x72,0x75,0x6c,0x65,0x20,0x28,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x20,0x74,0x6f,0x20,0x75,0x73,0x65,0x20,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x65,0x64,0x20,0x69,0x6e,0x70,0x75,0x74,0x29,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x64,0x64,0x42,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x52,0x75,0x6c,0x65,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x50,0x75,0x62,0x6b,0x65,0x79,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x6e,0x70,0x75,0x74,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x70,0x75,0x74,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x6e,0x70,0x75,0x74,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x65,0x6e,0x74,0x65,0x72,0x20,0x61,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x6f,0x72,0x20,0x6e,0x73,0x65,0x63,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6f,0x6e,0x76,0x65,0x72,0x74,0x20,0x6e,0x73,0x65,0x63,0x20,0x6f,0x72,0x20,0x6e,0x70,0x75,0x62,0x20,0x74,0x6f,0x20,0x68,0x65,0x78,0x20,0x69,0x66,0x20,0x6e,0x65,0x65,0x64,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x65,0x78,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x6e,0x73,0x65,0x63,0x54,0x6f,0x48,0x65,0x78,0x28,0x69,0x6e,0x70,0x75,0x74,0x56,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x68,0x65,0x78,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x2e,0x20,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x65,0x6e,0x74,0x65,0x72,0x20,0x6e,0x73,0x65,0x63,0x31,0x2e,0x2e,0x2e,0x2c,0x20,0x6e,0x70,0x75,0x62,0x31,0x2e,0x2e,0x2e,0x2c,0x20,0x6f,0x72,0x20,0x36,0x34,0x2d,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x20,0x68,0x65,0x78,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x20,0x68,0x65,0x78,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x65,0x78,0x50,0x75,0x62,0x6b,0x65,0x79,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x21,0x3d,0x3d,0x20,0x36,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2e,0x20,0x4d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x65,0x78,0x61,0x63,0x74,0x6c,0x79,0x20,0x36,0x34,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x41,0x64,0x64,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x62,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x64,0x61,0x74,0x61,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x75,0x6c,0x65,0x44,0x61,0x74,0x61,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x3a,0x20,0x27,0x70,0x75,0x62,0x6b,0x65,0x79,0x5f,0x62,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x74,0x79,0x70,0x65,0x3a,0x20,0x27,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x3a,0x20,0x68,0x65,0x78,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x27,0x64,0x65,0x6e,0x79,0x27,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x64,0x64,0x20,0x74,0x6f,0x20,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x20,0x71,0x75,0x65,0x75,0x65,0x20,0x66,0x6f,0x72,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x61,0x64,0x64,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x56,0x69,0x61,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x28,0x72,0x75,0x6c,0x65,0x44,0x61,0x74,0x61,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x74,0x68,0x65,0x6e,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x24,0x7b,0x68,0x65,0x78,0x50,0x75,0x62,0x6b,0x65,0x79,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x30,0x2c,0x20,0x31,0x36,0x29,0x7d,0x2e,0x2e,0x2e,0x20,0x61,0x64,0x64,0x65,0x64,0x20,0x74,0x6f,0x20,0x62,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x27,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x66,0x72,0x65,0x73,0x68,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x69,0x66,0x20,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x26,0x26,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x21,0x3d,0x3d,0x20,0x27,0x6e,0x6f,0x6e,0x65,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x61,0x64,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x63,0x61,0x74,0x63,0x68,0x28,0x65,0x72,0x72,0x6f,0x72,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x61,0x64,0x64,0x20,0x72,0x75,0x6c,0x65,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x41,0x64,0x64,0x20,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x20,0x72,0x75,0x6c,0x65,0x20,0x28,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x20,0x74,0x6f,0x20,0x75,0x73,0x65,0x20,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x65,0x64,0x20,0x69,0x6e,0x70,0x75,0x74,0x29,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x64,0x64,0x57,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x52,0x75,0x6c,0x65,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x50,0x75,0x62,0x6b,0x65,0x79,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x44,0x69,0x76,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x57,0x61,0x72,0x6e,0x69,0x6e,0x67,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x6e,0x70,0x75,0x74,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x70,0x75,0x74,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x6e,0x70,0x75,0x74,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x65,0x6e,0x74,0x65,0x72,0x20,0x61,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x6f,0x72,0x20,0x6e,0x73,0x65,0x63,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6f,0x6e,0x76,0x65,0x72,0x74,0x20,0x6e,0x73,0x65,0x63,0x20,0x6f,0x72,0x20,0x6e,0x70,0x75,0x62,0x20,0x74,0x6f,0x20,0x68,0x65,0x78,0x20,0x69,0x66,0x20,0x6e,0x65,0x65,0x64,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x65,0x78,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x6e,0x73,0x65,0x63,0x54,0x6f,0x48,0x65,0x78,0x28,0x69,0x6e,0x70,0x75,0x74,0x56,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x68,0x65,0x78,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x2e,0x20,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x65,0x6e,0x74,0x65,0x72,0x20,0x6e,0x73,0x65,0x63,0x31,0x2e,0x2e,0x2e,0x2c,0x20,0x6e,0x70,0x75,0x62,0x31,0x2e,0x2e,0x2e,0x2c,0x20,0x6f,0x72,0x20,0x36,0x34,0x2d,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x20,0x68,0x65,0x78,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x20,0x68,0x65,0x78,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x65,0x78,0x50,0x75,0x62,0x6b,0x65,0x79,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x21,0x3d,0x3d,0x20,0x36,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2e,0x20,0x4d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x65,0x78,0x61,0x63,0x74,0x6c,0x79,0x20,0x36,0x34,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x68,0x6f,0x77,0x20,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x20,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x44,0x69,0x76,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x44,0x69,0x76,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x27,0x62,0x6c,0x6f,0x63,0x6b,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x41,0x64,0x64,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x64,0x61,0x74,0x61,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x75,0x6c,0x65,0x44,0x61,0x74,0x61,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x3a,0x20,0x27,0x70,0x75,0x62,0x6b,0x65,0x79,0x5f,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x74,0x79,0x70,0x65,0x3a,0x20,0x27,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x3a,0x20,0x68,0x65,0x78,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x27,0x61,0x6c,0x6c,0x6f,0x77,0x27,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x64,0x64,0x20,0x74,0x6f,0x20,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x20,0x71,0x75,0x65,0x75,0x65,0x20,0x66,0x6f,0x72,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x61,0x64,0x64,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x56,0x69,0x61,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x28,0x72,0x75,0x6c,0x65,0x44,0x61,0x74,0x61,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x74,0x68,0x65,0x6e,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x24,0x7b,0x68,0x65,0x78,0x50,0x75,0x62,0x6b,0x65,0x79,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x30,0x2c,0x20,0x31,0x36,0x29,0x7d,0x2e,0x2e,0x2e,0x20,0x61,0x64,0x64,0x65,0x64,0x20,0x74,0x6f,0x20,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x27,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x66,0x72,0x65,0x73,0x68,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x69,0x66,0x20,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x26,0x26,0x20,0x61,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x54,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x21,0x3d,0x3d,0x20,0x27,0x6e,0x6f,0x6e,0x65,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x61,0x64,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x63,0x61,0x74,0x63,0x68,0x28,0x65,0x72,0x72,0x6f,0x72,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x61,0x64,0x64,0x20,0x72,0x75,0x6c,0x65,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x41,0x64,0x64,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x76,0x69,0x61,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x28,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x36,0x20,0x65,0x76,0x65,0x6e,0x74,0x29,0x20,0x2d,0x20,0x46,0x49,0x58,0x45,0x44,0x20,0x74,0x6f,0x20,0x6d,0x61,0x74,0x63,0x68,0x20,0x77,0x6f,0x72,0x6b,0x69,0x6e,0x67,0x20,0x74,0x65,0x73,0x74,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x0a,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x64,0x64,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x56,0x69,0x61,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x28,0x72,0x75,0x6c,0x65,0x44,0x61,0x74,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x7c,0x7c,0x20,0x21,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x4d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x6f,0x20,0x61,0x64,0x64,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x41,0x64,0x64,0x69,0x6e,0x67,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x3a,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x44,0x61,0x74,0x61,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x7d,0x20,0x2d,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x44,0x61,0x74,0x61,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x30,0x2c,0x20,0x31,0x36,0x29,0x7d,0x2e,0x2e,0x2e,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4d,0x61,0x70,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x2d,0x73,0x69,0x64,0x65,0x20,0x72,0x75,0x6c,0x65,0x20,0x74,0x79,0x70,0x65,0x73,0x20,0x74,0x6f,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x20,0x28,0x6d,0x61,0x74,0x63,0x68,0x69,0x6e,0x67,0x20,0x77,0x6f,0x72,0x6b,0x69,0x6e,0x67,0x20,0x74,0x65,0x73,0x74,0x73,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x52,0x75,0x6c,0x65,0x54,0x79,0x70,0x65,0x2c,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x54,0x79,0x70,0x65,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x77,0x69,0x74,0x63,0x68,0x20,0x28,0x72,0x75,0x6c,0x65,0x44,0x61,0x74,0x61,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x27,0x70,0x75,0x62,0x6b,0x65,0x79,0x5f,0x62,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x27,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x52,0x75,0x6c,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x27,0x62,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x27,0x70,0x75,0x62,0x6b,0x65,0x79,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x27,0x70,0x75,0x62,0x6b,0x65,0x79,0x5f,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x27,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x52,0x75,0x6c,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x27,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x27,0x70,0x75,0x62,0x6b,0x65,0x79,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x27,0x68,0x61,0x73,0x68,0x5f,0x62,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x27,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x52,0x75,0x6c,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x27,0x62,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x27,0x68,0x61,0x73,0x68,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x55,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x20,0x72,0x75,0x6c,0x65,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x24,0x7b,0x72,0x75,0x6c,0x65,0x44,0x61,0x74,0x61,0x2e,0x72,0x75,0x6c,0x65,0x5f,0x74,0x79,0x70,0x65,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6d,0x65,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x20,0x61,0x73,0x20,0x77,0x6f,0x72,0x6b,0x69,0x6e,0x67,0x20,0x74,0x65,0x73,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x6f,0x72,0x6d,0x61,0x74,0x3a,0x20,0x5b,0x22,0x62,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x22,0x2c,0x20,0x22,0x70,0x75,0x62,0x6b,0x65,0x79,0x22,0x2c,0x20,0x22,0x61,0x62,0x63,0x31,0x32,0x33,0x2e,0x2e,0x2e,0x22,0x5d,0x20,0x6f,0x72,0x20,0x5b,0x22,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x22,0x2c,0x20,0x22,0x70,0x75,0x62,0x6b,0x65,0x79,0x22,0x2c,0x20,0x22,0x64,0x65,0x66,0x34,0x35,0x36,0x2e,0x2e,0x2e,0x22,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x20,0x3d,0x20,0x5b,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x52,0x75,0x6c,0x65,0x54,0x79,0x70,0x65,0x2c,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x54,0x79,0x70,0x65,0x2c,0x20,0x72,0x75,0x6c,0x65,0x44,0x61,0x74,0x61,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x5d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6c,0x79,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x46,0x6f,0x72,0x52,0x65,0x6c,0x61,0x79,0x28,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x20,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x36,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x75,0x74,0x68,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x20,0x32,0x33,0x34,0x35,0x36,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x3a,0x20,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x2f,0x20,0x31,0x30,0x30,0x30,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x73,0x3a,0x20,0x5b,0x5b,0x22,0x70,0x22,0x2c,0x20,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x5d,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x45,0x42,0x55,0x47,0x3a,0x20,0x4c,0x6f,0x67,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6d,0x70,0x6c,0x65,0x74,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x73,0x74,0x72,0x75,0x63,0x74,0x75,0x72,0x65,0x20,0x62,0x65,0x69,0x6e,0x67,0x20,0x73,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x41,0x55,0x54,0x48,0x20,0x52,0x55,0x4c,0x45,0x20,0x45,0x56,0x45,0x4e,0x54,0x20,0x44,0x45,0x42,0x55,0x47,0x20,0x28,0x41,0x64,0x6d,0x69,0x6e,0x69,0x73,0x74,0x72,0x61,0x74,0x6f,0x72,0x20,0x41,0x50,0x49,0x29,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x4f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x20,0x52,0x75,0x6c,0x65,0x20,0x44,0x61,0x74,0x61,0x3a,0x27,0x2c,0x20,0x72,0x75,0x6c,0x65,0x44,0x61,0x74,0x61,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x43,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x41,0x72,0x72,0x61,0x79,0x3a,0x27,0x2c,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x20,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x27,0x2c,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x30,0x2c,0x20,0x35,0x30,0x29,0x20,0x2b,0x20,0x27,0x2e,0x2e,0x2e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x41,0x75,0x74,0x68,0x20,0x45,0x76,0x65,0x6e,0x74,0x20,0x28,0x62,0x65,0x66,0x6f,0x72,0x65,0x20,0x73,0x69,0x67,0x6e,0x69,0x6e,0x67,0x29,0x3a,0x27,0x2c,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x61,0x75,0x74,0x68,0x45,0x76,0x65,0x6e,0x74,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x32,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x3d,0x3d,0x3d,0x20,0x45,0x4e,0x44,0x20,0x41,0x55,0x54,0x48,0x20,0x52,0x55,0x4c,0x45,0x20,0x45,0x56,0x45,0x4e,0x54,0x20,0x44,0x45,0x42,0x55,0x47,0x20,0x3d,0x3d,0x3d,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x69,0x67,0x6e,0x20,0x74,0x68,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x73,0x69,0x67,0x6e,0x45,0x76,0x65,0x6e,0x74,0x28,0x61,0x75,0x74,0x68,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x2e,0x73,0x69,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x76,0x65,0x6e,0x74,0x20,0x73,0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x76,0x69,0x61,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x77,0x69,0x74,0x68,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x55,0x72,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x28,0x5b,0x75,0x72,0x6c,0x5d,0x2c,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x20,0x70,0x65,0x72,0x2d,0x72,0x65,0x6c,0x61,0x79,0x20,0x6f,0x75,0x74,0x63,0x6f,0x6d,0x65,0x73,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x20,0x6f,0x66,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6e,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x66,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6c,0x66,0x69,0x6c,0x6c,0x65,0x64,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0xe2,0x9c,0x85,0x20,0x41,0x64,0x64,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x20,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x28,0x24,0x7b,0x75,0x72,0x6c,0x7d,0x29,0x3a,0x20,0x45,0x76,0x65,0x6e,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x41,0x64,0x64,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x60,0xe2,0x9d,0x8c,0x20,0x41,0x64,0x64,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x20,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x28,0x24,0x7b,0x75,0x72,0x6c,0x7d,0x29,0x3a,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x60,0x2c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x41,0x64,0x64,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x69,0x66,0x20,0x61,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x6d,0x61,0x70,0x28,0x28,0x72,0x2c,0x20,0x69,0x29,0x20,0x3d,0x3e,0x20,0x60,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x27,0x3b,0x20,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x41,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x65,0x64,0x20,0x61,0x64,0x64,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x20,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x41,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x61,0x64,0x64,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x61,0x64,0x64,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,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,0x0a,0x2f,0x2f,0x20,0x54,0x45,0x53,0x54,0x20,0x46,0x55,0x4e,0x43,0x54,0x49,0x4f,0x4e,0x53,0x20,0x46,0x4f,0x52,0x20,0x41,0x44,0x4d,0x49,0x4e,0x20,0x41,0x50,0x49,0x0a,0x2f,0x2f,0x20,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,0x0a,0x0a,0x2f,0x2f,0x20,0x54,0x65,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x6c,0x6f,0x67,0x67,0x69,0x6e,0x67,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x2c,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x65,0x73,0x74,0x4c,0x6f,0x67,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x74,0x65,0x73,0x74,0x2d,0x65,0x76,0x65,0x6e,0x74,0x2d,0x6c,0x6f,0x67,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x65,0x73,0x74,0x4c,0x6f,0x67,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x44,0x61,0x74,0x65,0x28,0x29,0x2e,0x74,0x6f,0x49,0x53,0x4f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x27,0x54,0x27,0x29,0x5b,0x31,0x5d,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x27,0x2e,0x27,0x29,0x5b,0x30,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x6f,0x67,0x45,0x6e,0x74,0x72,0x79,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x27,0x64,0x69,0x76,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x45,0x6e,0x74,0x72,0x79,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x27,0x6c,0x6f,0x67,0x2d,0x65,0x6e,0x74,0x72,0x79,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x53,0x45,0x4e,0x54,0x27,0x20,0x3f,0x20,0x27,0x23,0x30,0x30,0x37,0x62,0x66,0x66,0x27,0x20,0x3a,0x20,0x27,0x23,0x32,0x38,0x61,0x37,0x34,0x35,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x45,0x6e,0x74,0x72,0x79,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x73,0x70,0x61,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6c,0x6f,0x67,0x2d,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x22,0x3e,0x24,0x7b,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x7d,0x3c,0x2f,0x73,0x70,0x61,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x73,0x70,0x61,0x6e,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x24,0x7b,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x43,0x6f,0x6c,0x6f,0x72,0x7d,0x3b,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x62,0x6f,0x6c,0x64,0x3b,0x22,0x3e,0x5b,0x24,0x7b,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x7d,0x5d,0x3c,0x2f,0x73,0x70,0x61,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x73,0x70,0x61,0x6e,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x36,0x36,0x36,0x3b,0x22,0x3e,0x5b,0x24,0x7b,0x74,0x79,0x70,0x65,0x7d,0x5d,0x3c,0x2f,0x73,0x70,0x61,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x24,0x7b,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x74,0x65,0x73,0x74,0x4c,0x6f,0x67,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x43,0x68,0x69,0x6c,0x64,0x28,0x6c,0x6f,0x67,0x45,0x6e,0x74,0x72,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x65,0x73,0x74,0x4c,0x6f,0x67,0x2e,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x54,0x6f,0x70,0x20,0x3d,0x20,0x74,0x65,0x73,0x74,0x4c,0x6f,0x67,0x2e,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x48,0x65,0x69,0x67,0x68,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x54,0x65,0x73,0x74,0x3a,0x20,0x47,0x65,0x74,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x73,0x0a,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x65,0x73,0x74,0x47,0x65,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x7c,0x7c,0x20,0x21,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x27,0x4d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x6f,0x20,0x74,0x65,0x73,0x74,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x41,0x50,0x49,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x27,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x27,0x54,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x47,0x65,0x74,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x73,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x54,0x45,0x53,0x54,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x66,0x6f,0x72,0x20,0x67,0x65,0x74,0x74,0x69,0x6e,0x67,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x20,0x3d,0x20,0x27,0x5b,0x22,0x61,0x75,0x74,0x68,0x5f,0x71,0x75,0x65,0x72,0x79,0x22,0x2c,0x20,0x22,0x61,0x6c,0x6c,0x22,0x5d,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x46,0x6f,0x72,0x52,0x65,0x6c,0x61,0x79,0x28,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x61,0x75,0x74,0x68,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x36,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x75,0x74,0x68,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x20,0x32,0x33,0x34,0x35,0x36,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x3a,0x20,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x2f,0x20,0x31,0x30,0x30,0x30,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x73,0x3a,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x22,0x70,0x22,0x2c,0x20,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x69,0x67,0x6e,0x20,0x74,0x68,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x73,0x69,0x67,0x6e,0x45,0x76,0x65,0x6e,0x74,0x28,0x61,0x75,0x74,0x68,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x2e,0x73,0x69,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x76,0x65,0x6e,0x74,0x20,0x73,0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x53,0x45,0x4e,0x54,0x27,0x2c,0x20,0x60,0x47,0x65,0x74,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x73,0x20,0x65,0x76,0x65,0x6e,0x74,0x3a,0x20,0x24,0x7b,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x7d,0x60,0x2c,0x20,0x27,0x45,0x56,0x45,0x4e,0x54,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x76,0x69,0x61,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x77,0x69,0x74,0x68,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x55,0x72,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x28,0x5b,0x75,0x72,0x6c,0x5d,0x2c,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x20,0x70,0x65,0x72,0x2d,0x72,0x65,0x6c,0x61,0x79,0x20,0x6f,0x75,0x74,0x63,0x6f,0x6d,0x65,0x73,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x20,0x6f,0x66,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6e,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x66,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6c,0x66,0x69,0x6c,0x6c,0x65,0x64,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x54,0x65,0x73,0x74,0x20,0x41,0x64,0x64,0x20,0x42,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x54,0x65,0x73,0x74,0x20,0x41,0x64,0x64,0x20,0x42,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x69,0x66,0x20,0x61,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x6d,0x61,0x70,0x28,0x28,0x72,0x2c,0x20,0x69,0x29,0x20,0x3d,0x3e,0x20,0x60,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x27,0x3b,0x20,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x41,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x65,0x64,0x20,0x74,0x65,0x73,0x74,0x20,0x61,0x64,0x64,0x20,0x62,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x20,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x27,0x47,0x65,0x74,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x73,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x73,0x65,0x6e,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x27,0x2c,0x20,0x27,0x53,0x55,0x43,0x43,0x45,0x53,0x53,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x47,0x65,0x74,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x73,0x20,0x74,0x65,0x73,0x74,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x54,0x65,0x73,0x74,0x3a,0x20,0x43,0x6c,0x65,0x61,0x72,0x20,0x41,0x6c,0x6c,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x73,0x0a,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x65,0x73,0x74,0x43,0x6c,0x65,0x61,0x72,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x7c,0x7c,0x20,0x21,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x27,0x4d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x6f,0x20,0x74,0x65,0x73,0x74,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x41,0x50,0x49,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x27,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x27,0x54,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x43,0x6c,0x65,0x61,0x72,0x20,0x41,0x6c,0x6c,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x73,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x54,0x45,0x53,0x54,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x66,0x6f,0x72,0x20,0x63,0x6c,0x65,0x61,0x72,0x69,0x6e,0x67,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x20,0x3d,0x20,0x27,0x5b,0x22,0x73,0x79,0x73,0x74,0x65,0x6d,0x5f,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x22,0x2c,0x20,0x22,0x63,0x6c,0x65,0x61,0x72,0x5f,0x61,0x6c,0x6c,0x5f,0x61,0x75,0x74,0x68,0x5f,0x72,0x75,0x6c,0x65,0x73,0x22,0x5d,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x46,0x6f,0x72,0x52,0x65,0x6c,0x61,0x79,0x28,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x63,0x6c,0x65,0x61,0x72,0x20,0x61,0x75,0x74,0x68,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x36,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x75,0x74,0x68,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x20,0x32,0x33,0x34,0x35,0x36,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x3a,0x20,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x2f,0x20,0x31,0x30,0x30,0x30,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x73,0x3a,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x22,0x70,0x22,0x2c,0x20,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x69,0x67,0x6e,0x20,0x74,0x68,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x73,0x69,0x67,0x6e,0x45,0x76,0x65,0x6e,0x74,0x28,0x61,0x75,0x74,0x68,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x2e,0x73,0x69,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x76,0x65,0x6e,0x74,0x20,0x73,0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x53,0x45,0x4e,0x54,0x27,0x2c,0x20,0x60,0x43,0x6c,0x65,0x61,0x72,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x73,0x20,0x65,0x76,0x65,0x6e,0x74,0x3a,0x20,0x24,0x7b,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x7d,0x60,0x2c,0x20,0x27,0x45,0x56,0x45,0x4e,0x54,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x76,0x69,0x61,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x77,0x69,0x74,0x68,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x55,0x72,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x28,0x5b,0x75,0x72,0x6c,0x5d,0x2c,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x20,0x70,0x65,0x72,0x2d,0x72,0x65,0x6c,0x61,0x79,0x20,0x6f,0x75,0x74,0x63,0x6f,0x6d,0x65,0x73,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x20,0x6f,0x66,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6e,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x66,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6c,0x66,0x69,0x6c,0x6c,0x65,0x64,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x54,0x65,0x73,0x74,0x20,0x41,0x64,0x64,0x20,0x57,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x54,0x65,0x73,0x74,0x20,0x41,0x64,0x64,0x20,0x57,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x69,0x66,0x20,0x61,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x6d,0x61,0x70,0x28,0x28,0x72,0x2c,0x20,0x69,0x29,0x20,0x3d,0x3e,0x20,0x60,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x27,0x3b,0x20,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x41,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x65,0x64,0x20,0x74,0x65,0x73,0x74,0x20,0x61,0x64,0x64,0x20,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x20,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x27,0x43,0x6c,0x65,0x61,0x72,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x73,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x73,0x65,0x6e,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x27,0x2c,0x20,0x27,0x53,0x55,0x43,0x43,0x45,0x53,0x53,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x43,0x6c,0x65,0x61,0x72,0x20,0x41,0x75,0x74,0x68,0x20,0x52,0x75,0x6c,0x65,0x73,0x20,0x74,0x65,0x73,0x74,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x54,0x65,0x73,0x74,0x3a,0x20,0x41,0x64,0x64,0x20,0x42,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x0a,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x65,0x73,0x74,0x41,0x64,0x64,0x42,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x49,0x6e,0x70,0x75,0x74,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x74,0x65,0x73,0x74,0x2d,0x70,0x75,0x62,0x6b,0x65,0x79,0x2d,0x69,0x6e,0x70,0x75,0x74,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x49,0x6e,0x70,0x75,0x74,0x20,0x3f,0x20,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x49,0x6e,0x70,0x75,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x20,0x3a,0x20,0x27,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x61,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x74,0x65,0x73,0x74,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x69,0x66,0x20,0x6e,0x6f,0x6e,0x65,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x27,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x61,0x62,0x63,0x64,0x65,0x66,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x55,0x73,0x69,0x6e,0x67,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x74,0x65,0x73,0x74,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x24,0x7b,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x7d,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x7c,0x7c,0x20,0x21,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x27,0x4d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x6f,0x20,0x74,0x65,0x73,0x74,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x41,0x50,0x49,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x27,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x54,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x41,0x64,0x64,0x20,0x42,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x20,0x66,0x6f,0x72,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x24,0x7b,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x30,0x2c,0x20,0x31,0x36,0x29,0x7d,0x2e,0x2e,0x2e,0x60,0x2c,0x20,0x27,0x54,0x45,0x53,0x54,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x66,0x6f,0x72,0x20,0x61,0x64,0x64,0x69,0x6e,0x67,0x20,0x62,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x20,0x72,0x75,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x20,0x3d,0x20,0x60,0x5b,0x22,0x62,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x22,0x2c,0x20,0x22,0x70,0x75,0x62,0x6b,0x65,0x79,0x22,0x2c,0x20,0x22,0x24,0x7b,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x7d,0x22,0x5d,0x60,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x46,0x6f,0x72,0x52,0x65,0x6c,0x61,0x79,0x28,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x62,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x36,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x75,0x74,0x68,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x20,0x32,0x33,0x34,0x35,0x36,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x3a,0x20,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x2f,0x20,0x31,0x30,0x30,0x30,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x73,0x3a,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x22,0x70,0x22,0x2c,0x20,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x69,0x67,0x6e,0x20,0x74,0x68,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x73,0x69,0x67,0x6e,0x45,0x76,0x65,0x6e,0x74,0x28,0x61,0x75,0x74,0x68,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x2e,0x73,0x69,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x76,0x65,0x6e,0x74,0x20,0x73,0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x53,0x45,0x4e,0x54,0x27,0x2c,0x20,0x60,0x41,0x64,0x64,0x20,0x42,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x3a,0x20,0x24,0x7b,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x7d,0x60,0x2c,0x20,0x27,0x45,0x56,0x45,0x4e,0x54,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x76,0x69,0x61,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x77,0x69,0x74,0x68,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x55,0x72,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x28,0x5b,0x75,0x72,0x6c,0x5d,0x2c,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x20,0x70,0x65,0x72,0x2d,0x72,0x65,0x6c,0x61,0x79,0x20,0x6f,0x75,0x74,0x63,0x6f,0x6d,0x65,0x73,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x20,0x6f,0x66,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6e,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x66,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6c,0x66,0x69,0x6c,0x6c,0x65,0x64,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x54,0x65,0x73,0x74,0x20,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x51,0x75,0x65,0x72,0x79,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x54,0x65,0x73,0x74,0x20,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x51,0x75,0x65,0x72,0x79,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x69,0x66,0x20,0x61,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x6d,0x61,0x70,0x28,0x28,0x72,0x2c,0x20,0x69,0x29,0x20,0x3d,0x3e,0x20,0x60,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x27,0x3b,0x20,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x41,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x65,0x64,0x20,0x74,0x65,0x73,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x20,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x27,0x41,0x64,0x64,0x20,0x42,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x73,0x65,0x6e,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x27,0x2c,0x20,0x27,0x53,0x55,0x43,0x43,0x45,0x53,0x53,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x41,0x64,0x64,0x20,0x42,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x20,0x74,0x65,0x73,0x74,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x54,0x65,0x73,0x74,0x3a,0x20,0x41,0x64,0x64,0x20,0x57,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x0a,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x65,0x73,0x74,0x41,0x64,0x64,0x57,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x49,0x6e,0x70,0x75,0x74,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x74,0x65,0x73,0x74,0x2d,0x70,0x75,0x62,0x6b,0x65,0x79,0x2d,0x69,0x6e,0x70,0x75,0x74,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x49,0x6e,0x70,0x75,0x74,0x20,0x3f,0x20,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x49,0x6e,0x70,0x75,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x20,0x3a,0x20,0x27,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x61,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x74,0x65,0x73,0x74,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x69,0x66,0x20,0x6e,0x6f,0x6e,0x65,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x27,0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x61,0x62,0x63,0x64,0x65,0x66,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x55,0x73,0x69,0x6e,0x67,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x74,0x65,0x73,0x74,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x24,0x7b,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x7d,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x7c,0x7c,0x20,0x21,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x27,0x4d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x6f,0x20,0x74,0x65,0x73,0x74,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x41,0x50,0x49,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x27,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x54,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x41,0x64,0x64,0x20,0x57,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x20,0x66,0x6f,0x72,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x24,0x7b,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x30,0x2c,0x20,0x31,0x36,0x29,0x7d,0x2e,0x2e,0x2e,0x60,0x2c,0x20,0x27,0x54,0x45,0x53,0x54,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x66,0x6f,0x72,0x20,0x61,0x64,0x64,0x69,0x6e,0x67,0x20,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x20,0x72,0x75,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x20,0x3d,0x20,0x60,0x5b,0x22,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x22,0x2c,0x20,0x22,0x70,0x75,0x62,0x6b,0x65,0x79,0x22,0x2c,0x20,0x22,0x24,0x7b,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x7d,0x22,0x5d,0x60,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x46,0x6f,0x72,0x52,0x65,0x6c,0x61,0x79,0x28,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x36,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x75,0x74,0x68,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x20,0x32,0x33,0x34,0x35,0x36,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x3a,0x20,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x2f,0x20,0x31,0x30,0x30,0x30,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x73,0x3a,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x22,0x70,0x22,0x2c,0x20,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x69,0x67,0x6e,0x20,0x74,0x68,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x73,0x69,0x67,0x6e,0x45,0x76,0x65,0x6e,0x74,0x28,0x61,0x75,0x74,0x68,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x2e,0x73,0x69,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x76,0x65,0x6e,0x74,0x20,0x73,0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x53,0x45,0x4e,0x54,0x27,0x2c,0x20,0x60,0x41,0x64,0x64,0x20,0x57,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x3a,0x20,0x24,0x7b,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x7d,0x60,0x2c,0x20,0x27,0x45,0x56,0x45,0x4e,0x54,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x76,0x69,0x61,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x55,0x72,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x28,0x5b,0x75,0x72,0x6c,0x5d,0x2c,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x20,0x70,0x65,0x72,0x2d,0x72,0x65,0x6c,0x61,0x79,0x20,0x6f,0x75,0x74,0x63,0x6f,0x6d,0x65,0x73,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x20,0x6f,0x66,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6e,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x66,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6c,0x66,0x69,0x6c,0x6c,0x65,0x64,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x54,0x65,0x73,0x74,0x20,0x50,0x6f,0x73,0x74,0x20,0x45,0x76,0x65,0x6e,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x54,0x65,0x73,0x74,0x20,0x50,0x6f,0x73,0x74,0x20,0x45,0x76,0x65,0x6e,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x69,0x66,0x20,0x61,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x6d,0x61,0x70,0x28,0x28,0x72,0x2c,0x20,0x69,0x29,0x20,0x3d,0x3e,0x20,0x60,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x27,0x3b,0x20,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x41,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x65,0x64,0x20,0x74,0x65,0x73,0x74,0x20,0x70,0x6f,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x20,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x27,0x41,0x64,0x64,0x20,0x57,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x73,0x65,0x6e,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x27,0x2c,0x20,0x27,0x53,0x55,0x43,0x43,0x45,0x53,0x53,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x41,0x64,0x64,0x20,0x57,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x20,0x74,0x65,0x73,0x74,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x54,0x65,0x73,0x74,0x3a,0x20,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x51,0x75,0x65,0x72,0x79,0x0a,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x65,0x73,0x74,0x43,0x6f,0x6e,0x66,0x69,0x67,0x51,0x75,0x65,0x72,0x79,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x7c,0x7c,0x20,0x21,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x27,0x4d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x6f,0x20,0x74,0x65,0x73,0x74,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x41,0x50,0x49,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x27,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x27,0x54,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x51,0x75,0x65,0x72,0x79,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x54,0x45,0x53,0x54,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x66,0x6f,0x72,0x20,0x67,0x65,0x74,0x74,0x69,0x6e,0x67,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x20,0x3d,0x20,0x27,0x5b,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5f,0x71,0x75,0x65,0x72,0x79,0x22,0x2c,0x20,0x22,0x61,0x6c,0x6c,0x22,0x5d,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x46,0x6f,0x72,0x52,0x65,0x6c,0x61,0x79,0x28,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x36,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x20,0x32,0x33,0x34,0x35,0x36,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x3a,0x20,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x2f,0x20,0x31,0x30,0x30,0x30,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x73,0x3a,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x22,0x70,0x22,0x2c,0x20,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x69,0x67,0x6e,0x20,0x74,0x68,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x73,0x69,0x67,0x6e,0x45,0x76,0x65,0x6e,0x74,0x28,0x63,0x6f,0x6e,0x66,0x69,0x67,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x2e,0x73,0x69,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x76,0x65,0x6e,0x74,0x20,0x73,0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x53,0x45,0x4e,0x54,0x27,0x2c,0x20,0x60,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x51,0x75,0x65,0x72,0x79,0x20,0x65,0x76,0x65,0x6e,0x74,0x3a,0x20,0x24,0x7b,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x7d,0x60,0x2c,0x20,0x27,0x45,0x56,0x45,0x4e,0x54,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x76,0x69,0x61,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x77,0x69,0x74,0x68,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x55,0x72,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x28,0x5b,0x75,0x72,0x6c,0x5d,0x2c,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x20,0x70,0x65,0x72,0x2d,0x72,0x65,0x6c,0x61,0x79,0x20,0x6f,0x75,0x74,0x63,0x6f,0x6d,0x65,0x73,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x20,0x6f,0x66,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6e,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x66,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6c,0x66,0x69,0x6c,0x6c,0x65,0x64,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x54,0x65,0x73,0x74,0x20,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x51,0x75,0x65,0x72,0x79,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x54,0x65,0x73,0x74,0x20,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x51,0x75,0x65,0x72,0x79,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x69,0x66,0x20,0x61,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x6d,0x61,0x70,0x28,0x28,0x72,0x2c,0x20,0x69,0x29,0x20,0x3d,0x3e,0x20,0x60,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x27,0x3b,0x20,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x41,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x65,0x64,0x20,0x74,0x65,0x73,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x20,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x27,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x51,0x75,0x65,0x72,0x79,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x73,0x65,0x6e,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x27,0x2c,0x20,0x27,0x53,0x55,0x43,0x43,0x45,0x53,0x53,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x43,0x6f,0x6e,0x66,0x69,0x67,0x20,0x51,0x75,0x65,0x72,0x79,0x20,0x74,0x65,0x73,0x74,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x54,0x65,0x73,0x74,0x3a,0x20,0x50,0x6f,0x73,0x74,0x20,0x42,0x61,0x73,0x69,0x63,0x20,0x45,0x76,0x65,0x6e,0x74,0x0a,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x65,0x73,0x74,0x50,0x6f,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x7c,0x7c,0x20,0x21,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x27,0x4d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x6f,0x20,0x74,0x65,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x70,0x6f,0x73,0x74,0x69,0x6e,0x67,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x27,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x27,0x54,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x62,0x61,0x73,0x69,0x63,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x70,0x6f,0x73,0x74,0x69,0x6e,0x67,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x54,0x45,0x53,0x54,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x61,0x20,0x73,0x69,0x6d,0x70,0x6c,0x65,0x20,0x6b,0x69,0x6e,0x64,0x20,0x31,0x20,0x74,0x65,0x78,0x74,0x20,0x6e,0x6f,0x74,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x20,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x3a,0x20,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x2f,0x20,0x31,0x30,0x30,0x30,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x73,0x3a,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x22,0x74,0x22,0x2c,0x20,0x22,0x74,0x65,0x73,0x74,0x22,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x22,0x63,0x6c,0x69,0x65,0x6e,0x74,0x22,0x2c,0x20,0x22,0x63,0x2d,0x72,0x65,0x6c,0x61,0x79,0x2d,0x61,0x64,0x6d,0x69,0x6e,0x2d,0x61,0x70,0x69,0x22,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x60,0x54,0x65,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x66,0x72,0x6f,0x6d,0x20,0x43,0x2d,0x52,0x65,0x6c,0x61,0x79,0x20,0x41,0x64,0x6d,0x69,0x6e,0x20,0x41,0x50,0x49,0x20,0x61,0x74,0x20,0x24,0x7b,0x6e,0x65,0x77,0x20,0x44,0x61,0x74,0x65,0x28,0x29,0x2e,0x74,0x6f,0x49,0x53,0x4f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x7d,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x53,0x45,0x4e,0x54,0x27,0x2c,0x20,0x60,0x54,0x65,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x28,0x62,0x65,0x66,0x6f,0x72,0x65,0x20,0x73,0x69,0x67,0x6e,0x69,0x6e,0x67,0x29,0x3a,0x20,0x24,0x7b,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x74,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x29,0x7d,0x60,0x2c,0x20,0x27,0x45,0x56,0x45,0x4e,0x54,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x69,0x67,0x6e,0x20,0x74,0x68,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x30,0x37,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x73,0x69,0x67,0x6e,0x45,0x76,0x65,0x6e,0x74,0x28,0x74,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x2e,0x73,0x69,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x76,0x65,0x6e,0x74,0x20,0x73,0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x53,0x45,0x4e,0x54,0x27,0x2c,0x20,0x60,0x53,0x69,0x67,0x6e,0x65,0x64,0x20,0x74,0x65,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x3a,0x20,0x24,0x7b,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x7d,0x60,0x2c,0x20,0x27,0x45,0x56,0x45,0x4e,0x54,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x76,0x69,0x61,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x74,0x6f,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6d,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x77,0x69,0x74,0x68,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x55,0x72,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x3a,0x20,0x24,0x7b,0x75,0x72,0x6c,0x7d,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x28,0x5b,0x75,0x72,0x6c,0x5d,0x2c,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x20,0x70,0x65,0x72,0x2d,0x72,0x65,0x6c,0x61,0x79,0x20,0x6f,0x75,0x74,0x63,0x6f,0x6d,0x65,0x73,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x20,0x6f,0x66,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6e,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x66,0x6f,0x72,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6c,0x66,0x69,0x6c,0x6c,0x65,0x64,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x54,0x65,0x73,0x74,0x20,0x50,0x6f,0x73,0x74,0x20,0x45,0x76,0x65,0x6e,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x54,0x65,0x73,0x74,0x20,0x50,0x6f,0x73,0x74,0x20,0x45,0x76,0x65,0x6e,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x2c,0x20,0x27,0x50,0x55,0x42,0x4c,0x49,0x53,0x48,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x69,0x66,0x20,0x61,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x6d,0x61,0x70,0x28,0x28,0x72,0x2c,0x20,0x69,0x29,0x20,0x3d,0x3e,0x20,0x60,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x27,0x3b,0x20,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x41,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x65,0x64,0x20,0x74,0x65,0x73,0x74,0x20,0x70,0x6f,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x20,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x27,0x54,0x65,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x21,0x27,0x2c,0x20,0x27,0x53,0x55,0x43,0x43,0x45,0x53,0x53,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x27,0x43,0x68,0x65,0x63,0x6b,0x20,0x69,0x66,0x20,0x74,0x68,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x61,0x70,0x70,0x65,0x61,0x72,0x73,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x61,0x62,0x6f,0x76,0x65,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x50,0x6f,0x73,0x74,0x20,0x45,0x76,0x65,0x6e,0x74,0x20,0x74,0x65,0x73,0x74,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x50,0x6f,0x73,0x74,0x20,0x45,0x76,0x65,0x6e,0x74,0x20,0x74,0x65,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x3a,0x27,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x48,0x65,0x6c,0x70,0x65,0x72,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x66,0x6f,0x72,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x0a,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x46,0x6f,0x72,0x52,0x65,0x6c,0x61,0x79,0x28,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x69,0x6e,0x67,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x24,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7d,0x60,0x2c,0x20,0x27,0x44,0x45,0x42,0x55,0x47,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x47,0x65,0x74,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x70,0x75,0x62,0x6c,0x69,0x63,0x20,0x6b,0x65,0x79,0x20,0x66,0x6f,0x72,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x68,0x65,0x63,0x6b,0x20,0x69,0x66,0x20,0x77,0x65,0x20,0x68,0x61,0x76,0x65,0x20,0x61,0x63,0x63,0x65,0x73,0x73,0x20,0x74,0x6f,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x69,0x6f,0x6e,0x20,0x76,0x69,0x61,0x20,0x6e,0x6f,0x73,0x74,0x72,0x2d,0x74,0x6f,0x6f,0x6c,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x20,0x7c,0x7c,0x20,0x21,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x6e,0x69,0x70,0x34,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x4e,0x49,0x50,0x2d,0x34,0x34,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x20,0x2d,0x20,0x6e,0x6f,0x73,0x74,0x72,0x2d,0x74,0x6f,0x6f,0x6c,0x73,0x20,0x6c,0x69,0x62,0x72,0x61,0x72,0x79,0x20,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x47,0x65,0x74,0x20,0x75,0x73,0x65,0x72,0x27,0x73,0x20,0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x20,0x6b,0x65,0x79,0x20,0x66,0x6f,0x72,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x57,0x65,0x20,0x6e,0x65,0x65,0x64,0x20,0x74,0x6f,0x20,0x75,0x73,0x65,0x20,0x74,0x68,0x65,0x20,0x4e,0x49,0x50,0x2d,0x30,0x37,0x20,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x20,0x67,0x65,0x74,0x20,0x74,0x68,0x65,0x20,0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x20,0x6b,0x65,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x20,0x7c,0x7c,0x20,0x21,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x6e,0x69,0x70,0x34,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x4e,0x49,0x50,0x2d,0x34,0x34,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x20,0x76,0x69,0x61,0x20,0x4e,0x49,0x50,0x2d,0x30,0x37,0x20,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x4e,0x49,0x50,0x2d,0x30,0x37,0x20,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x27,0x73,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x6e,0x69,0x70,0x34,0x34,0x2e,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x28,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x4e,0x49,0x50,0x2d,0x34,0x34,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x65,0x64,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x53,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x60,0x2c,0x20,0x27,0x44,0x45,0x42,0x55,0x47,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x24,0x7b,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x30,0x2c,0x20,0x35,0x30,0x29,0x7d,0x2e,0x2e,0x2e,0x60,0x2c,0x20,0x27,0x44,0x45,0x42,0x55,0x47,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x4e,0x49,0x50,0x2d,0x34,0x34,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x69,0x6f,0x6e,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x3a,0x20,0x54,0x72,0x79,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x6e,0x6f,0x73,0x74,0x72,0x2d,0x74,0x6f,0x6f,0x6c,0x73,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6c,0x79,0x20,0x69,0x66,0x20,0x4e,0x49,0x50,0x2d,0x30,0x37,0x20,0x66,0x61,0x69,0x6c,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x27,0x41,0x74,0x74,0x65,0x6d,0x70,0x74,0x69,0x6e,0x67,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x69,0x6f,0x6e,0x20,0x77,0x69,0x74,0x68,0x20,0x6e,0x6f,0x73,0x74,0x72,0x2d,0x74,0x6f,0x6f,0x6c,0x73,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x44,0x45,0x42,0x55,0x47,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x20,0x7c,0x7c,0x20,0x21,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x6e,0x69,0x70,0x34,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x6e,0x6f,0x73,0x74,0x72,0x2d,0x74,0x6f,0x6f,0x6c,0x73,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x57,0x65,0x20,0x6e,0x65,0x65,0x64,0x20,0x74,0x68,0x65,0x20,0x75,0x73,0x65,0x72,0x27,0x73,0x20,0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x20,0x6b,0x65,0x79,0x2c,0x20,0x62,0x75,0x74,0x20,0x77,0x65,0x20,0x63,0x61,0x6e,0x27,0x74,0x20,0x67,0x65,0x74,0x20,0x69,0x74,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6c,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x61,0x20,0x73,0x65,0x63,0x75,0x72,0x69,0x74,0x79,0x20,0x6c,0x69,0x6d,0x69,0x74,0x61,0x74,0x69,0x6f,0x6e,0x20,0x2d,0x20,0x77,0x65,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x75,0x73,0x65,0x20,0x4e,0x49,0x50,0x2d,0x30,0x37,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x43,0x61,0x6e,0x6e,0x6f,0x74,0x20,0x61,0x63,0x63,0x65,0x73,0x73,0x20,0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x20,0x6b,0x65,0x79,0x20,0x66,0x6f,0x72,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x69,0x6f,0x6e,0x20,0x2d,0x20,0x75,0x73,0x65,0x20,0x4e,0x49,0x50,0x2d,0x30,0x37,0x20,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x45,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x2c,0x20,0x60,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x69,0x6f,0x6e,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x45,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x53,0x65,0x6e,0x64,0x20,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x44,0x69,0x72,0x65,0x63,0x74,0x20,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x35,0x39,0x20,0x6c,0x61,0x79,0x65,0x72,0x69,0x6e,0x67,0x0a,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x6e,0x64,0x4e,0x49,0x50,0x31,0x37,0x44,0x4d,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x7c,0x7c,0x20,0x21,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x4d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x6f,0x20,0x73,0x65,0x6e,0x64,0x20,0x44,0x4d,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x52,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x20,0x7c,0x7c,0x20,0x21,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x4d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x74,0x6f,0x20,0x73,0x65,0x6e,0x64,0x20,0x44,0x4d,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x3d,0x20,0x64,0x6d,0x4f,0x75,0x74,0x62,0x6f,0x78,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x65,0x6e,0x74,0x65,0x72,0x20,0x61,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x74,0x6f,0x20,0x73,0x65,0x6e,0x64,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x61,0x70,0x61,0x62,0x69,0x6c,0x69,0x74,0x79,0x20,0x63,0x68,0x65,0x63,0x6b,0x73,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x20,0x7c,0x7c,0x20,0x21,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x6e,0x69,0x70,0x34,0x34,0x20,0x7c,0x7c,0x20,0x21,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x73,0x69,0x67,0x6e,0x45,0x76,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x44,0x4d,0x73,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x20,0x61,0x20,0x4e,0x49,0x50,0x2d,0x30,0x37,0x20,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x20,0x77,0x69,0x74,0x68,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x27,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x44,0x4d,0x73,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x20,0x61,0x20,0x4e,0x49,0x50,0x2d,0x30,0x37,0x20,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x20,0x77,0x69,0x74,0x68,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x2e,0x20,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x69,0x6e,0x73,0x74,0x61,0x6c,0x6c,0x20,0x61,0x6e,0x64,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x65,0x20,0x61,0x20,0x63,0x6f,0x6d,0x70,0x61,0x74,0x69,0x62,0x6c,0x65,0x20,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x2e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x20,0x7c,0x7c,0x20,0x21,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x53,0x65,0x63,0x72,0x65,0x74,0x4b,0x65,0x79,0x20,0x7c,0x7c,0x20,0x21,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x67,0x65,0x74,0x50,0x75,0x62,0x6c,0x69,0x63,0x4b,0x65,0x79,0x20,0x7c,0x7c,0x20,0x21,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x66,0x69,0x6e,0x61,0x6c,0x69,0x7a,0x65,0x45,0x76,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x20,0x6c,0x69,0x62,0x72,0x61,0x72,0x79,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x20,0x66,0x6f,0x72,0x20,0x65,0x70,0x68,0x65,0x6d,0x65,0x72,0x61,0x6c,0x20,0x6b,0x65,0x79,0x20,0x6f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x73,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x27,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x20,0x6c,0x69,0x62,0x72,0x61,0x72,0x79,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x2e,0x20,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x65,0x6e,0x73,0x75,0x72,0x65,0x20,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x62,0x75,0x6e,0x64,0x6c,0x65,0x2e,0x6a,0x73,0x20,0x69,0x73,0x20,0x6c,0x6f,0x61,0x64,0x65,0x64,0x2e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x53,0x65,0x6e,0x64,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x44,0x4d,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x3a,0x20,0x24,0x7b,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x30,0x2c,0x20,0x35,0x30,0x29,0x7d,0x2e,0x2e,0x2e,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x65,0x70,0x20,0x31,0x3a,0x20,0x42,0x75,0x69,0x6c,0x64,0x20,0x75,0x6e,0x73,0x69,0x67,0x6e,0x65,0x64,0x20,0x72,0x75,0x6d,0x6f,0x72,0x20,0x28,0x6b,0x69,0x6e,0x64,0x20,0x31,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x75,0x6d,0x6f,0x72,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x20,0x31,0x34,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x3a,0x20,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x2f,0x20,0x31,0x30,0x30,0x30,0x29,0x2c,0x20,0x2f,0x2f,0x20,0x43,0x61,0x6e,0x6f,0x6e,0x69,0x63,0x61,0x6c,0x20,0x74,0x69,0x6d,0x65,0x20,0x66,0x6f,0x72,0x20,0x72,0x75,0x6d,0x6f,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x73,0x3a,0x20,0x5b,0x5b,0x22,0x70,0x22,0x2c,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x5d,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4e,0x4f,0x54,0x45,0x3a,0x20,0x52,0x75,0x6d,0x6f,0x72,0x20,0x72,0x65,0x6d,0x61,0x69,0x6e,0x73,0x20,0x75,0x6e,0x73,0x69,0x67,0x6e,0x65,0x64,0x20,0x70,0x65,0x72,0x20,0x4e,0x49,0x50,0x2d,0x35,0x39,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x52,0x75,0x6d,0x6f,0x72,0x20,0x62,0x75,0x69,0x6c,0x74,0x20,0x28,0x75,0x6e,0x73,0x69,0x67,0x6e,0x65,0x64,0x29,0x2c,0x20,0x63,0x72,0x65,0x61,0x74,0x69,0x6e,0x67,0x20,0x73,0x65,0x61,0x6c,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x65,0x70,0x20,0x32,0x3a,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x73,0x65,0x61,0x6c,0x20,0x28,0x6b,0x69,0x6e,0x64,0x20,0x31,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x65,0x61,0x6c,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x20,0x31,0x33,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x3a,0x20,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x4e,0x6f,0x77,0x28,0x29,0x2c,0x20,0x2f,0x2f,0x20,0x52,0x61,0x6e,0x64,0x6f,0x6d,0x69,0x7a,0x65,0x64,0x20,0x74,0x6f,0x20,0x70,0x61,0x73,0x74,0x20,0x66,0x6f,0x72,0x20,0x6d,0x65,0x74,0x61,0x64,0x61,0x74,0x61,0x20,0x70,0x72,0x6f,0x74,0x65,0x63,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x73,0x3a,0x20,0x5b,0x5d,0x2c,0x20,0x2f,0x2f,0x20,0x45,0x6d,0x70,0x74,0x79,0x20,0x74,0x61,0x67,0x73,0x20,0x70,0x65,0x72,0x20,0x4e,0x49,0x50,0x2d,0x35,0x39,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x6e,0x69,0x70,0x34,0x34,0x2e,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x28,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x72,0x75,0x6d,0x6f,0x72,0x29,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x69,0x67,0x6e,0x20,0x73,0x65,0x61,0x6c,0x20,0x77,0x69,0x74,0x68,0x20,0x6c,0x6f,0x6e,0x67,0x2d,0x74,0x65,0x72,0x6d,0x20,0x6b,0x65,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x53,0x65,0x61,0x6c,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x73,0x69,0x67,0x6e,0x45,0x76,0x65,0x6e,0x74,0x28,0x73,0x65,0x61,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x53,0x65,0x61,0x6c,0x20,0x7c,0x7c,0x20,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x53,0x65,0x61,0x6c,0x2e,0x73,0x69,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x73,0x69,0x67,0x6e,0x20,0x73,0x65,0x61,0x6c,0x20,0x65,0x76,0x65,0x6e,0x74,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x53,0x65,0x61,0x6c,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x20,0x61,0x6e,0x64,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x2c,0x20,0x63,0x72,0x65,0x61,0x74,0x69,0x6e,0x67,0x20,0x67,0x69,0x66,0x74,0x20,0x77,0x72,0x61,0x70,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x65,0x70,0x20,0x33,0x3a,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x67,0x69,0x66,0x74,0x20,0x77,0x72,0x61,0x70,0x20,0x28,0x6b,0x69,0x6e,0x64,0x20,0x31,0x30,0x35,0x39,0x29,0x20,0x77,0x69,0x74,0x68,0x20,0x65,0x70,0x68,0x65,0x6d,0x65,0x72,0x61,0x6c,0x20,0x6b,0x65,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x70,0x68,0x65,0x6d,0x65,0x72,0x61,0x6c,0x50,0x72,0x69,0x76,0x20,0x3d,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x53,0x65,0x63,0x72,0x65,0x74,0x4b,0x65,0x79,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x70,0x68,0x65,0x6d,0x65,0x72,0x61,0x6c,0x50,0x75,0x62,0x20,0x3d,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x67,0x65,0x74,0x50,0x75,0x62,0x6c,0x69,0x63,0x4b,0x65,0x79,0x28,0x65,0x70,0x68,0x65,0x6d,0x65,0x72,0x61,0x6c,0x50,0x72,0x69,0x76,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x67,0x69,0x66,0x74,0x57,0x72,0x61,0x70,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x20,0x31,0x30,0x35,0x39,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x65,0x70,0x68,0x65,0x6d,0x65,0x72,0x61,0x6c,0x50,0x75,0x62,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x3a,0x20,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x4e,0x6f,0x77,0x28,0x29,0x2c,0x20,0x2f,0x2f,0x20,0x52,0x61,0x6e,0x64,0x6f,0x6d,0x69,0x7a,0x65,0x64,0x20,0x74,0x6f,0x20,0x70,0x61,0x73,0x74,0x20,0x66,0x6f,0x72,0x20,0x6d,0x65,0x74,0x61,0x64,0x61,0x74,0x61,0x20,0x70,0x72,0x6f,0x74,0x65,0x63,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x73,0x3a,0x20,0x5b,0x5b,0x22,0x70,0x22,0x2c,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x5d,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x6e,0x69,0x70,0x34,0x34,0x2e,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x73,0x69,0x67,0x6e,0x65,0x64,0x53,0x65,0x61,0x6c,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x6e,0x69,0x70,0x34,0x34,0x2e,0x67,0x65,0x74,0x43,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x4b,0x65,0x79,0x28,0x65,0x70,0x68,0x65,0x6d,0x65,0x72,0x61,0x6c,0x50,0x72,0x69,0x76,0x2c,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x69,0x67,0x6e,0x20,0x67,0x69,0x66,0x74,0x20,0x77,0x72,0x61,0x70,0x20,0x77,0x69,0x74,0x68,0x20,0x65,0x70,0x68,0x65,0x6d,0x65,0x72,0x61,0x6c,0x20,0x6b,0x65,0x79,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x66,0x69,0x6e,0x61,0x6c,0x69,0x7a,0x65,0x45,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x47,0x69,0x66,0x74,0x57,0x72,0x61,0x70,0x20,0x3d,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x66,0x69,0x6e,0x61,0x6c,0x69,0x7a,0x65,0x45,0x76,0x65,0x6e,0x74,0x28,0x67,0x69,0x66,0x74,0x57,0x72,0x61,0x70,0x2c,0x20,0x65,0x70,0x68,0x65,0x6d,0x65,0x72,0x61,0x6c,0x50,0x72,0x69,0x76,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x47,0x69,0x66,0x74,0x57,0x72,0x61,0x70,0x20,0x7c,0x7c,0x20,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x47,0x69,0x66,0x74,0x57,0x72,0x61,0x70,0x2e,0x73,0x69,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x73,0x69,0x67,0x6e,0x20,0x67,0x69,0x66,0x74,0x20,0x77,0x72,0x61,0x70,0x20,0x65,0x76,0x65,0x6e,0x74,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x44,0x4d,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x20,0x61,0x6e,0x64,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x20,0x65,0x70,0x68,0x65,0x6d,0x65,0x72,0x61,0x6c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x69,0x6e,0x67,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x76,0x69,0x61,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x55,0x72,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x28,0x5b,0x75,0x72,0x6c,0x5d,0x2c,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x47,0x69,0x66,0x74,0x57,0x72,0x61,0x70,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x20,0x70,0x65,0x72,0x2d,0x72,0x65,0x6c,0x61,0x79,0x20,0x6f,0x75,0x74,0x63,0x6f,0x6d,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x67,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x65,0x64,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6c,0x66,0x69,0x6c,0x6c,0x65,0x64,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0xe2,0x9c,0x85,0x20,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x44,0x4d,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0xe2,0x9d,0x8c,0x20,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x44,0x4d,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x20,0x6f,0x6e,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x6d,0x61,0x70,0x28,0x28,0x72,0x2c,0x20,0x69,0x29,0x20,0x3d,0x3e,0x20,0x60,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x27,0x3b,0x20,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x41,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x65,0x64,0x20,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x44,0x4d,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x20,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6c,0x65,0x61,0x72,0x20,0x74,0x68,0x65,0x20,0x6f,0x75,0x74,0x62,0x6f,0x78,0x20,0x61,0x6e,0x64,0x20,0x73,0x68,0x6f,0x77,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6d,0x4f,0x75,0x74,0x62,0x6f,0x78,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x27,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x44,0x4d,0x20,0x73,0x65,0x6e,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x64,0x64,0x20,0x74,0x6f,0x20,0x69,0x6e,0x62,0x6f,0x78,0x20,0x66,0x6f,0x72,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x64,0x64,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x54,0x6f,0x49,0x6e,0x62,0x6f,0x78,0x28,0x27,0x73,0x65,0x6e,0x74,0x27,0x2c,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x2c,0x20,0x6e,0x65,0x77,0x20,0x44,0x61,0x74,0x65,0x28,0x29,0x2e,0x74,0x6f,0x4c,0x6f,0x63,0x61,0x6c,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x73,0x65,0x6e,0x64,0x20,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x44,0x4d,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x41,0x64,0x64,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x74,0x6f,0x20,0x69,0x6e,0x62,0x6f,0x78,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x64,0x64,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x54,0x6f,0x49,0x6e,0x62,0x6f,0x78,0x28,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x2c,0x20,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x2c,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x64,0x6d,0x49,0x6e,0x62,0x6f,0x78,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x44,0x69,0x76,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x27,0x64,0x69,0x76,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x44,0x69,0x76,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x27,0x6c,0x6f,0x67,0x2d,0x65,0x6e,0x74,0x72,0x79,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x73,0x65,0x6e,0x74,0x27,0x20,0x3f,0x20,0x27,0x23,0x30,0x30,0x37,0x62,0x66,0x66,0x27,0x20,0x3a,0x20,0x27,0x23,0x32,0x38,0x61,0x37,0x34,0x35,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6f,0x6e,0x76,0x65,0x72,0x74,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x73,0x20,0x74,0x6f,0x20,0x3c,0x62,0x72,0x3e,0x20,0x74,0x61,0x67,0x73,0x20,0x66,0x6f,0x72,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x20,0x48,0x54,0x4d,0x4c,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x74,0x65,0x64,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x3d,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5c,0x6e,0x2f,0x67,0x2c,0x20,0x27,0x3c,0x62,0x72,0x3e,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x64,0x64,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x66,0x6f,0x72,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x27,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x26,0x26,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x70,0x75,0x62,0x20,0x3d,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x6e,0x69,0x70,0x31,0x39,0x2e,0x6e,0x70,0x75,0x62,0x45,0x6e,0x63,0x6f,0x64,0x65,0x28,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x60,0x20,0x3c,0x73,0x70,0x61,0x6e,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x36,0x36,0x36,0x3b,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x31,0x70,0x78,0x3b,0x22,0x3e,0x28,0x24,0x7b,0x6e,0x70,0x75,0x62,0x7d,0x29,0x3c,0x2f,0x73,0x70,0x61,0x6e,0x3e,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x74,0x6f,0x20,0x6e,0x70,0x75,0x62,0x3a,0x27,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x44,0x69,0x76,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x73,0x70,0x61,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6c,0x6f,0x67,0x2d,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x22,0x3e,0x24,0x7b,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x7d,0x3c,0x2f,0x73,0x70,0x61,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x73,0x70,0x61,0x6e,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x24,0x7b,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x43,0x6f,0x6c,0x6f,0x72,0x7d,0x3b,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x62,0x6f,0x6c,0x64,0x3b,0x22,0x3e,0x5b,0x24,0x7b,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x74,0x6f,0x55,0x70,0x70,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x7d,0x5d,0x3c,0x2f,0x73,0x70,0x61,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x73,0x70,0x61,0x6e,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x77,0x68,0x69,0x74,0x65,0x2d,0x73,0x70,0x61,0x63,0x65,0x3a,0x20,0x70,0x72,0x65,0x2d,0x77,0x72,0x61,0x70,0x3b,0x22,0x3e,0x24,0x7b,0x66,0x6f,0x72,0x6d,0x61,0x74,0x74,0x65,0x64,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x24,0x7b,0x70,0x75,0x62,0x6b,0x65,0x79,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x7d,0x3c,0x2f,0x73,0x70,0x61,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x6d,0x6f,0x76,0x65,0x20,0x74,0x68,0x65,0x20,0x22,0x4e,0x6f,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x20,0x79,0x65,0x74,0x22,0x20,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x20,0x69,0x66,0x20,0x69,0x74,0x20,0x65,0x78,0x69,0x73,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x20,0x3d,0x20,0x64,0x6d,0x49,0x6e,0x62,0x6f,0x78,0x2e,0x71,0x75,0x65,0x72,0x79,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x28,0x27,0x2e,0x6c,0x6f,0x67,0x2d,0x65,0x6e,0x74,0x72,0x79,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x20,0x26,0x26,0x20,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x4e,0x6f,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x20,0x79,0x65,0x74,0x2e,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6d,0x49,0x6e,0x62,0x6f,0x78,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x27,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x64,0x64,0x20,0x6e,0x65,0x77,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x61,0x74,0x20,0x74,0x68,0x65,0x20,0x74,0x6f,0x70,0x0a,0x20,0x20,0x20,0x20,0x64,0x6d,0x49,0x6e,0x62,0x6f,0x78,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x44,0x69,0x76,0x2c,0x20,0x64,0x6d,0x49,0x6e,0x62,0x6f,0x78,0x2e,0x66,0x69,0x72,0x73,0x74,0x43,0x68,0x69,0x6c,0x64,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x69,0x6d,0x69,0x74,0x20,0x74,0x6f,0x20,0x6c,0x61,0x73,0x74,0x20,0x35,0x30,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x64,0x6d,0x49,0x6e,0x62,0x6f,0x78,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x35,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6d,0x49,0x6e,0x62,0x6f,0x78,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x43,0x68,0x69,0x6c,0x64,0x28,0x64,0x6d,0x49,0x6e,0x62,0x6f,0x78,0x2e,0x6c,0x61,0x73,0x74,0x43,0x68,0x69,0x6c,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x48,0x65,0x6c,0x70,0x65,0x72,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x20,0x67,0x65,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x74,0x68,0x65,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x61,0x6c,0x6c,0x79,0x20,0x66,0x65,0x74,0x63,0x68,0x65,0x64,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x69,0x66,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x26,0x26,0x20,0x69,0x73,0x52,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x74,0x6f,0x20,0x68,0x61,0x72,0x64,0x63,0x6f,0x64,0x65,0x64,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x66,0x6f,0x72,0x20,0x74,0x65,0x73,0x74,0x69,0x6e,0x67,0x2f,0x64,0x65,0x76,0x65,0x6c,0x6f,0x70,0x6d,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x57,0x61,0x72,0x6e,0x69,0x6e,0x67,0x3a,0x20,0x55,0x73,0x69,0x6e,0x67,0x20,0x68,0x61,0x72,0x64,0x63,0x6f,0x64,0x65,0x64,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x2e,0x20,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x66,0x69,0x72,0x73,0x74,0x2e,0x27,0x2c,0x20,0x27,0x57,0x41,0x52,0x4e,0x49,0x4e,0x47,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x27,0x34,0x66,0x33,0x35,0x35,0x62,0x64,0x63,0x62,0x37,0x63,0x63,0x30,0x61,0x66,0x37,0x32,0x38,0x65,0x66,0x33,0x63,0x63,0x65,0x62,0x39,0x36,0x31,0x35,0x64,0x39,0x30,0x36,0x38,0x34,0x62,0x62,0x35,0x62,0x32,0x63,0x61,0x35,0x66,0x38,0x35,0x39,0x61,0x62,0x30,0x66,0x30,0x62,0x37,0x30,0x34,0x30,0x37,0x35,0x38,0x37,0x31,0x61,0x61,0x27,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x45,0x6e,0x68,0x61,0x6e,0x63,0x65,0x64,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x20,0x74,0x6f,0x20,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x20,0x74,0x65,0x73,0x74,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x73,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x6e,0x68,0x61,0x6e,0x63,0x65,0x50,0x6f,0x6f,0x6c,0x46,0x6f,0x72,0x54,0x65,0x73,0x74,0x69,0x6e,0x67,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x73,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x70,0x61,0x72,0x73,0x69,0x6e,0x67,0x20,0x61,0x75,0x74,0x6f,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,0x6c,0x79,0x2c,0x20,0x73,0x6f,0x20,0x77,0x65,0x20,0x6a,0x75,0x73,0x74,0x20,0x6e,0x65,0x65,0x64,0x20,0x74,0x6f,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x65,0x6e,0x73,0x75,0x72,0x65,0x20,0x6f,0x75,0x72,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x20,0x6c,0x6f,0x67,0x20,0x61,0x70,0x70,0x72,0x6f,0x70,0x72,0x69,0x61,0x74,0x65,0x6c,0x79,0x2e,0x20,0x54,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x64,0x6f,0x6e,0x65,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x6e,0x65,0x76,0x65,0x6e,0x74,0x20,0x63,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2e,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x65,0x6e,0x68,0x61,0x6e,0x63,0x65,0x64,0x20,0x66,0x6f,0x72,0x20,0x74,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x2d,0x20,0x61,0x75,0x74,0x6f,0x6d,0x61,0x74,0x69,0x63,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x68,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x20,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x27,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x20,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x20,0x74,0x65,0x73,0x74,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x52,0x61,0x6e,0x64,0x6f,0x6d,0x54,0x65,0x73,0x74,0x4b,0x65,0x79,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x20,0x33,0x32,0x20,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x20,0x62,0x79,0x74,0x65,0x73,0x20,0x28,0x36,0x34,0x20,0x68,0x65,0x78,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x29,0x20,0x66,0x6f,0x72,0x20,0x61,0x20,0x76,0x61,0x6c,0x69,0x64,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x42,0x79,0x74,0x65,0x73,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x55,0x69,0x6e,0x74,0x38,0x41,0x72,0x72,0x61,0x79,0x28,0x33,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x72,0x79,0x70,0x74,0x6f,0x2e,0x67,0x65,0x74,0x52,0x61,0x6e,0x64,0x6f,0x6d,0x56,0x61,0x6c,0x75,0x65,0x73,0x28,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x42,0x79,0x74,0x65,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6f,0x6e,0x76,0x65,0x72,0x74,0x20,0x74,0x6f,0x20,0x68,0x65,0x78,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x65,0x78,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x66,0x72,0x6f,0x6d,0x28,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x42,0x79,0x74,0x65,0x73,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x6d,0x61,0x70,0x28,0x62,0x20,0x3d,0x3e,0x20,0x62,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x31,0x36,0x29,0x2e,0x70,0x61,0x64,0x53,0x74,0x61,0x72,0x74,0x28,0x32,0x2c,0x20,0x27,0x30,0x27,0x29,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x27,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x65,0x74,0x20,0x74,0x68,0x65,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x64,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x66,0x69,0x65,0x6c,0x64,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x49,0x6e,0x70,0x75,0x74,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x74,0x65,0x73,0x74,0x2d,0x70,0x75,0x62,0x6b,0x65,0x79,0x2d,0x69,0x6e,0x70,0x75,0x74,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x49,0x6e,0x70,0x75,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x73,0x74,0x50,0x75,0x62,0x6b,0x65,0x79,0x49,0x6e,0x70,0x75,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x68,0x65,0x78,0x50,0x75,0x62,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x54,0x65,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x28,0x27,0x49,0x4e,0x46,0x4f,0x27,0x2c,0x20,0x60,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x64,0x20,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x20,0x74,0x65,0x73,0x74,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x24,0x7b,0x68,0x65,0x78,0x50,0x75,0x62,0x6b,0x65,0x79,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x30,0x2c,0x20,0x31,0x36,0x29,0x7d,0x2e,0x2e,0x2e,0x60,0x2c,0x20,0x27,0x4b,0x45,0x59,0x47,0x45,0x4e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x68,0x65,0x78,0x50,0x75,0x62,0x6b,0x65,0x79,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,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,0x0a,0x2f,0x2f,0x20,0x44,0x41,0x54,0x41,0x42,0x41,0x53,0x45,0x20,0x53,0x54,0x41,0x54,0x49,0x53,0x54,0x49,0x43,0x53,0x20,0x46,0x55,0x4e,0x43,0x54,0x49,0x4f,0x4e,0x53,0x0a,0x2f,0x2f,0x20,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,0x0a,0x0a,0x2f,0x2f,0x20,0x53,0x65,0x6e,0x64,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x74,0x6f,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x41,0x64,0x6d,0x69,0x6e,0x69,0x73,0x74,0x72,0x61,0x74,0x6f,0x72,0x20,0x41,0x50,0x49,0x0a,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x6e,0x64,0x52,0x65,0x73,0x74,0x61,0x72,0x74,0x43,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x7c,0x7c,0x20,0x21,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x4d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x6f,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x53,0x65,0x6e,0x64,0x69,0x6e,0x67,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x66,0x6f,0x72,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x20,0x3d,0x20,0x5b,0x22,0x73,0x79,0x73,0x74,0x65,0x6d,0x5f,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x22,0x2c,0x20,0x22,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x22,0x5d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6c,0x79,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x46,0x6f,0x72,0x52,0x65,0x6c,0x61,0x79,0x28,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x20,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x36,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x20,0x32,0x33,0x34,0x35,0x36,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x3a,0x20,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x2f,0x20,0x31,0x30,0x30,0x30,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x73,0x3a,0x20,0x5b,0x5b,0x22,0x70,0x22,0x2c,0x20,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x5d,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x69,0x67,0x6e,0x20,0x74,0x68,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x73,0x69,0x67,0x6e,0x45,0x76,0x65,0x6e,0x74,0x28,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x2e,0x73,0x69,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x76,0x65,0x6e,0x74,0x20,0x73,0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x76,0x69,0x61,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x55,0x72,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x28,0x5b,0x75,0x72,0x6c,0x5d,0x2c,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x20,0x70,0x65,0x72,0x2d,0x72,0x65,0x6c,0x61,0x79,0x20,0x6f,0x75,0x74,0x63,0x6f,0x6d,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x68,0x65,0x63,0x6b,0x20,0x69,0x66,0x20,0x61,0x6e,0x79,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x61,0x63,0x63,0x65,0x70,0x74,0x65,0x64,0x20,0x74,0x68,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6c,0x66,0x69,0x6c,0x6c,0x65,0x64,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x52,0x65,0x73,0x74,0x61,0x72,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x52,0x65,0x73,0x74,0x61,0x72,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x20,0x6f,0x6e,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x6d,0x61,0x70,0x28,0x28,0x72,0x2c,0x20,0x69,0x29,0x20,0x3d,0x3e,0x20,0x60,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x27,0x3b,0x20,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x41,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x65,0x64,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x2e,0x20,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x52,0x65,0x73,0x74,0x61,0x72,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x73,0x65,0x6e,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x20,0x2d,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x20,0x73,0x68,0x6f,0x72,0x74,0x6c,0x79,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x74,0x6f,0x20,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x65,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x20,0x69,0x73,0x20,0x69,0x6e,0x20,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x52,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6e,0x67,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x52,0x45,0x53,0x54,0x41,0x52,0x54,0x49,0x4e,0x47,0x2e,0x2e,0x2e,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x77,0x69,0x6c,0x6c,0x20,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x20,0x61,0x6e,0x64,0x20,0x6e,0x65,0x65,0x64,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x72,0x65,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x69,0x73,0x20,0x77,0x69,0x6c,0x6c,0x20,0x62,0x65,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x64,0x20,0x62,0x79,0x20,0x74,0x68,0x65,0x20,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x20,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x73,0x65,0x6e,0x64,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x52,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x65,0x72,0x72,0x6f,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x53,0x65,0x6e,0x64,0x20,0x73,0x74,0x61,0x74,0x73,0x5f,0x71,0x75,0x65,0x72,0x79,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x74,0x6f,0x20,0x67,0x65,0x74,0x20,0x64,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x20,0x73,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x41,0x64,0x6d,0x69,0x6e,0x69,0x73,0x74,0x72,0x61,0x74,0x6f,0x72,0x20,0x41,0x50,0x49,0x20,0x28,0x69,0x6e,0x6e,0x65,0x72,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x29,0x0a,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x6e,0x64,0x53,0x74,0x61,0x74,0x73,0x51,0x75,0x65,0x72,0x79,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x7c,0x7c,0x20,0x21,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x4d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x6f,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x64,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x20,0x73,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x65,0x72,0x72,0x6f,0x72,0x27,0x2c,0x20,0x27,0x4e,0x6f,0x74,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x27,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x65,0x72,0x72,0x6f,0x72,0x27,0x2c,0x20,0x27,0x4e,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x27,0x2c,0x20,0x27,0x51,0x75,0x65,0x72,0x79,0x69,0x6e,0x67,0x20,0x64,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x2e,0x2e,0x2e,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x66,0x6f,0x72,0x20,0x73,0x74,0x61,0x74,0x73,0x20,0x71,0x75,0x65,0x72,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x20,0x3d,0x20,0x5b,0x22,0x73,0x74,0x61,0x74,0x73,0x5f,0x71,0x75,0x65,0x72,0x79,0x22,0x2c,0x20,0x22,0x61,0x6c,0x6c,0x22,0x5d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6c,0x79,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x4e,0x49,0x50,0x2d,0x34,0x34,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x46,0x6f,0x72,0x52,0x65,0x6c,0x61,0x79,0x28,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x5f,0x61,0x72,0x72,0x61,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x20,0x6b,0x69,0x6e,0x64,0x20,0x32,0x33,0x34,0x35,0x36,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x74,0x61,0x74,0x73,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x69,0x6e,0x64,0x3a,0x20,0x32,0x33,0x34,0x35,0x36,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x3a,0x20,0x75,0x73,0x65,0x72,0x50,0x75,0x62,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x3a,0x20,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x2f,0x20,0x31,0x30,0x30,0x30,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x73,0x3a,0x20,0x5b,0x5b,0x22,0x70,0x22,0x2c,0x20,0x67,0x65,0x74,0x52,0x65,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x28,0x29,0x5d,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x65,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x69,0x67,0x6e,0x20,0x74,0x68,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x6f,0x73,0x74,0x72,0x2e,0x73,0x69,0x67,0x6e,0x45,0x76,0x65,0x6e,0x74,0x28,0x73,0x74,0x61,0x74,0x73,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x21,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x2e,0x73,0x69,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x45,0x76,0x65,0x6e,0x74,0x20,0x73,0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x53,0x65,0x6e,0x64,0x69,0x6e,0x67,0x20,0x73,0x74,0x61,0x74,0x73,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x75,0x62,0x6c,0x69,0x73,0x68,0x20,0x76,0x69,0x61,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x55,0x72,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x50,0x6f,0x6f,0x6c,0x2e,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x28,0x5b,0x75,0x72,0x6c,0x5d,0x2c,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x20,0x70,0x65,0x72,0x2d,0x72,0x65,0x6c,0x61,0x79,0x20,0x6f,0x75,0x74,0x63,0x6f,0x6d,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x53,0x65,0x74,0x74,0x6c,0x65,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x68,0x65,0x63,0x6b,0x20,0x69,0x66,0x20,0x61,0x6e,0x79,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x61,0x63,0x63,0x65,0x70,0x74,0x65,0x64,0x20,0x74,0x68,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x66,0x75,0x6c,0x66,0x69,0x6c,0x6c,0x65,0x64,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x53,0x74,0x61,0x74,0x73,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x70,0x75,0x62,0x6c,0x69,0x73,0x68,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x20,0x74,0x6f,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x53,0x74,0x61,0x74,0x73,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x20,0x6f,0x6e,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x6d,0x61,0x70,0x28,0x28,0x72,0x2c,0x20,0x69,0x29,0x20,0x3d,0x3e,0x20,0x60,0x52,0x65,0x6c,0x61,0x79,0x20,0x24,0x7b,0x69,0x7d,0x3a,0x20,0x24,0x7b,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x72,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x60,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x27,0x3b,0x20,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x41,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x61,0x79,0x73,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x65,0x64,0x20,0x73,0x74,0x61,0x74,0x73,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x20,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x44,0x65,0x74,0x61,0x69,0x6c,0x73,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x53,0x74,0x61,0x74,0x73,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x20,0x73,0x65,0x6e,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x20,0x2d,0x20,0x77,0x61,0x69,0x74,0x69,0x6e,0x67,0x20,0x66,0x6f,0x72,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x77,0x61,0x69,0x74,0x69,0x6e,0x67,0x27,0x2c,0x20,0x27,0x57,0x61,0x69,0x74,0x69,0x6e,0x67,0x20,0x66,0x6f,0x72,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x2e,0x2e,0x2e,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x73,0x65,0x6e,0x64,0x20,0x73,0x74,0x61,0x74,0x73,0x20,0x71,0x75,0x65,0x72,0x79,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x65,0x72,0x72,0x6f,0x72,0x27,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x73,0x74,0x61,0x74,0x73,0x5f,0x71,0x75,0x65,0x72,0x79,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x61,0x6e,0x64,0x20,0x70,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x20,0x74,0x61,0x62,0x6c,0x65,0x73,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x53,0x74,0x61,0x74,0x73,0x51,0x75,0x65,0x72,0x79,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x69,0x6e,0x67,0x20,0x73,0x74,0x61,0x74,0x73,0x20,0x71,0x75,0x65,0x72,0x79,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x53,0x74,0x61,0x74,0x73,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x64,0x61,0x74,0x61,0x3a,0x27,0x2c,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x2e,0x71,0x75,0x65,0x72,0x79,0x5f,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x27,0x73,0x74,0x61,0x74,0x73,0x5f,0x71,0x75,0x65,0x72,0x79,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x49,0x67,0x6e,0x6f,0x72,0x69,0x6e,0x67,0x20,0x6e,0x6f,0x6e,0x2d,0x73,0x74,0x61,0x74,0x73,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x27,0x2c,0x20,0x27,0x57,0x41,0x52,0x4e,0x49,0x4e,0x47,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x20,0x6f,0x76,0x65,0x72,0x76,0x69,0x65,0x77,0x20,0x74,0x61,0x62,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x4f,0x76,0x65,0x72,0x76,0x69,0x65,0x77,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x6b,0x69,0x6e,0x64,0x73,0x20,0x74,0x61,0x62,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x4b,0x69,0x6e,0x64,0x73,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x20,0x74,0x69,0x6d,0x65,0x2d,0x62,0x61,0x73,0x65,0x64,0x20,0x73,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x54,0x69,0x6d,0x65,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x20,0x74,0x6f,0x70,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x73,0x20,0x74,0x61,0x62,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x50,0x75,0x62,0x6b,0x65,0x79,0x73,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x44,0x61,0x74,0x61,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x6c,0x6f,0x61,0x64,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x44,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x20,0x73,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x6c,0x79,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x45,0x72,0x72,0x6f,0x72,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x69,0x6e,0x67,0x20,0x73,0x74,0x61,0x74,0x73,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x27,0x65,0x72,0x72,0x6f,0x72,0x27,0x2c,0x20,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x50,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x20,0x64,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x20,0x6f,0x76,0x65,0x72,0x76,0x69,0x65,0x77,0x20,0x74,0x61,0x62,0x6c,0x65,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x4f,0x76,0x65,0x72,0x76,0x69,0x65,0x77,0x28,0x64,0x61,0x74,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x64,0x61,0x74,0x61,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x69,0x6e,0x64,0x69,0x76,0x69,0x64,0x75,0x61,0x6c,0x20,0x63,0x65,0x6c,0x6c,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x66,0x6c,0x61,0x73,0x68,0x20,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6f,0x72,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x64,0x20,0x76,0x61,0x6c,0x75,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x43,0x65,0x6c,0x6c,0x28,0x27,0x64,0x62,0x2d,0x73,0x69,0x7a,0x65,0x27,0x2c,0x20,0x64,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x5f,0x73,0x69,0x7a,0x65,0x5f,0x62,0x79,0x74,0x65,0x73,0x20,0x3f,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x46,0x69,0x6c,0x65,0x53,0x69,0x7a,0x65,0x28,0x64,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x5f,0x73,0x69,0x7a,0x65,0x5f,0x62,0x79,0x74,0x65,0x73,0x29,0x20,0x3a,0x20,0x27,0x2d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x43,0x65,0x6c,0x6c,0x28,0x27,0x74,0x6f,0x74,0x61,0x6c,0x2d,0x65,0x76,0x65,0x6e,0x74,0x73,0x27,0x2c,0x20,0x64,0x61,0x74,0x61,0x2e,0x74,0x6f,0x74,0x61,0x6c,0x5f,0x65,0x76,0x65,0x6e,0x74,0x73,0x20,0x7c,0x7c,0x20,0x27,0x2d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x43,0x65,0x6c,0x6c,0x28,0x27,0x6f,0x6c,0x64,0x65,0x73,0x74,0x2d,0x65,0x76,0x65,0x6e,0x74,0x27,0x2c,0x20,0x64,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x5f,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x20,0x3f,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x54,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x28,0x64,0x61,0x74,0x61,0x2e,0x64,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x5f,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x5f,0x61,0x74,0x29,0x20,0x3a,0x20,0x27,0x2d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x43,0x65,0x6c,0x6c,0x28,0x27,0x6e,0x65,0x77,0x65,0x73,0x74,0x2d,0x65,0x76,0x65,0x6e,0x74,0x27,0x2c,0x20,0x64,0x61,0x74,0x61,0x2e,0x6c,0x61,0x74,0x65,0x73,0x74,0x5f,0x65,0x76,0x65,0x6e,0x74,0x5f,0x61,0x74,0x20,0x3f,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x54,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x28,0x64,0x61,0x74,0x61,0x2e,0x6c,0x61,0x74,0x65,0x73,0x74,0x5f,0x65,0x76,0x65,0x6e,0x74,0x5f,0x61,0x74,0x29,0x20,0x3a,0x20,0x27,0x2d,0x27,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x50,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x6b,0x69,0x6e,0x64,0x73,0x20,0x64,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x20,0x74,0x61,0x62,0x6c,0x65,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x4b,0x69,0x6e,0x64,0x73,0x28,0x64,0x61,0x74,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x73,0x74,0x61,0x74,0x73,0x2d,0x6b,0x69,0x6e,0x64,0x73,0x2d,0x74,0x61,0x62,0x6c,0x65,0x2d,0x62,0x6f,0x64,0x79,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x20,0x7c,0x7c,0x20,0x21,0x64,0x61,0x74,0x61,0x2e,0x65,0x76,0x65,0x6e,0x74,0x5f,0x6b,0x69,0x6e,0x64,0x73,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x74,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x27,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x61,0x74,0x61,0x2e,0x65,0x76,0x65,0x6e,0x74,0x5f,0x6b,0x69,0x6e,0x64,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x6f,0x77,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x27,0x74,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x77,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x27,0x3c,0x74,0x64,0x20,0x63,0x6f,0x6c,0x73,0x70,0x61,0x6e,0x3d,0x22,0x33,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x20,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x20,0x69,0x74,0x61,0x6c,0x69,0x63,0x3b,0x22,0x3e,0x4e,0x6f,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x64,0x61,0x74,0x61,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x43,0x68,0x69,0x6c,0x64,0x28,0x72,0x6f,0x77,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x64,0x61,0x74,0x61,0x2e,0x65,0x76,0x65,0x6e,0x74,0x5f,0x6b,0x69,0x6e,0x64,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x6b,0x69,0x6e,0x64,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x6f,0x77,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x27,0x74,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x77,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x24,0x7b,0x6b,0x69,0x6e,0x64,0x2e,0x6b,0x69,0x6e,0x64,0x7d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x24,0x7b,0x6b,0x69,0x6e,0x64,0x2e,0x63,0x6f,0x75,0x6e,0x74,0x7d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x24,0x7b,0x6b,0x69,0x6e,0x64,0x2e,0x70,0x65,0x72,0x63,0x65,0x6e,0x74,0x61,0x67,0x65,0x7d,0x25,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x43,0x68,0x69,0x6c,0x64,0x28,0x72,0x6f,0x77,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x50,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x20,0x74,0x69,0x6d,0x65,0x2d,0x62,0x61,0x73,0x65,0x64,0x20,0x73,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x20,0x74,0x61,0x62,0x6c,0x65,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x54,0x69,0x6d,0x65,0x28,0x64,0x61,0x74,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x64,0x61,0x74,0x61,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x63,0x63,0x65,0x73,0x73,0x20,0x74,0x68,0x65,0x20,0x6e,0x65,0x73,0x74,0x65,0x64,0x20,0x74,0x69,0x6d,0x65,0x5f,0x73,0x74,0x61,0x74,0x73,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x20,0x66,0x72,0x6f,0x6d,0x20,0x62,0x61,0x63,0x6b,0x65,0x6e,0x64,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x69,0x6d,0x65,0x53,0x74,0x61,0x74,0x73,0x20,0x3d,0x20,0x64,0x61,0x74,0x61,0x2e,0x74,0x69,0x6d,0x65,0x5f,0x73,0x74,0x61,0x74,0x73,0x20,0x7c,0x7c,0x20,0x7b,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x63,0x65,0x6c,0x6c,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x66,0x6c,0x61,0x73,0x68,0x20,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6f,0x72,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x64,0x20,0x76,0x61,0x6c,0x75,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x43,0x65,0x6c,0x6c,0x28,0x27,0x65,0x76,0x65,0x6e,0x74,0x73,0x2d,0x32,0x34,0x68,0x27,0x2c,0x20,0x74,0x69,0x6d,0x65,0x53,0x74,0x61,0x74,0x73,0x2e,0x6c,0x61,0x73,0x74,0x5f,0x32,0x34,0x68,0x20,0x7c,0x7c,0x20,0x27,0x30,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x43,0x65,0x6c,0x6c,0x28,0x27,0x65,0x76,0x65,0x6e,0x74,0x73,0x2d,0x37,0x64,0x27,0x2c,0x20,0x74,0x69,0x6d,0x65,0x53,0x74,0x61,0x74,0x73,0x2e,0x6c,0x61,0x73,0x74,0x5f,0x37,0x64,0x20,0x7c,0x7c,0x20,0x27,0x30,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x43,0x65,0x6c,0x6c,0x28,0x27,0x65,0x76,0x65,0x6e,0x74,0x73,0x2d,0x33,0x30,0x64,0x27,0x2c,0x20,0x74,0x69,0x6d,0x65,0x53,0x74,0x61,0x74,0x73,0x2e,0x6c,0x61,0x73,0x74,0x5f,0x33,0x30,0x64,0x20,0x7c,0x7c,0x20,0x27,0x30,0x27,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x50,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x20,0x74,0x6f,0x70,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x73,0x20,0x74,0x61,0x62,0x6c,0x65,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x6f,0x70,0x75,0x6c,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x50,0x75,0x62,0x6b,0x65,0x79,0x73,0x28,0x64,0x61,0x74,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x73,0x74,0x61,0x74,0x73,0x2d,0x70,0x75,0x62,0x6b,0x65,0x79,0x73,0x2d,0x74,0x61,0x62,0x6c,0x65,0x2d,0x62,0x6f,0x64,0x79,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x20,0x7c,0x7c,0x20,0x21,0x64,0x61,0x74,0x61,0x2e,0x74,0x6f,0x70,0x5f,0x70,0x75,0x62,0x6b,0x65,0x79,0x73,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x74,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x27,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x61,0x74,0x61,0x2e,0x74,0x6f,0x70,0x5f,0x70,0x75,0x62,0x6b,0x65,0x79,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x6f,0x77,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x27,0x74,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x77,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x27,0x3c,0x74,0x64,0x20,0x63,0x6f,0x6c,0x73,0x70,0x61,0x6e,0x3d,0x22,0x34,0x22,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x20,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x20,0x69,0x74,0x61,0x6c,0x69,0x63,0x3b,0x22,0x3e,0x4e,0x6f,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x64,0x61,0x74,0x61,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x43,0x68,0x69,0x6c,0x64,0x28,0x72,0x6f,0x77,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x64,0x61,0x74,0x61,0x2e,0x74,0x6f,0x70,0x5f,0x70,0x75,0x62,0x6b,0x65,0x79,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x70,0x75,0x62,0x6b,0x65,0x79,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x6f,0x77,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x27,0x74,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6f,0x6e,0x76,0x65,0x72,0x74,0x20,0x68,0x65,0x78,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x74,0x6f,0x20,0x6e,0x70,0x75,0x62,0x20,0x66,0x6f,0x72,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x7c,0x7c,0x20,0x27,0x2d,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6e,0x70,0x75,0x62,0x4c,0x69,0x6e,0x6b,0x20,0x3d,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x75,0x62,0x6b,0x65,0x79,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x26,0x26,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x34,0x20,0x26,0x26,0x20,0x2f,0x5e,0x5b,0x30,0x2d,0x39,0x61,0x2d,0x66,0x41,0x2d,0x46,0x5d,0x2b,0x24,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x70,0x75,0x62,0x6b,0x65,0x79,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x70,0x75,0x62,0x20,0x3d,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x4e,0x6f,0x73,0x74,0x72,0x54,0x6f,0x6f,0x6c,0x73,0x2e,0x6e,0x69,0x70,0x31,0x39,0x2e,0x6e,0x70,0x75,0x62,0x45,0x6e,0x63,0x6f,0x64,0x65,0x28,0x70,0x75,0x62,0x6b,0x65,0x79,0x2e,0x70,0x75,0x62,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x50,0x75,0x62,0x6b,0x65,0x79,0x20,0x3d,0x20,0x6e,0x70,0x75,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x70,0x75,0x62,0x4c,0x69,0x6e,0x6b,0x20,0x3d,0x20,0x60,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x6e,0x6a,0x75,0x6d,0x70,0x2e,0x6d,0x65,0x2f,0x24,0x7b,0x6e,0x70,0x75,0x62,0x7d,0x22,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x3d,0x22,0x5f,0x62,0x6c,0x61,0x6e,0x6b,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6e,0x70,0x75,0x62,0x2d,0x6c,0x69,0x6e,0x6b,0x22,0x3e,0x24,0x7b,0x6e,0x70,0x75,0x62,0x7d,0x3c,0x2f,0x61,0x3e,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x20,0x70,0x75,0x62,0x6b,0x65,0x79,0x20,0x74,0x6f,0x20,0x6e,0x70,0x75,0x62,0x3a,0x27,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x77,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x24,0x7b,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x7d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x27,0x43,0x6f,0x75,0x72,0x69,0x65,0x72,0x20,0x4e,0x65,0x77,0x27,0x2c,0x20,0x6d,0x6f,0x6e,0x6f,0x73,0x70,0x61,0x63,0x65,0x3b,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x32,0x70,0x78,0x3b,0x20,0x77,0x6f,0x72,0x64,0x2d,0x62,0x72,0x65,0x61,0x6b,0x3a,0x20,0x62,0x72,0x65,0x61,0x6b,0x2d,0x61,0x6c,0x6c,0x3b,0x22,0x3e,0x24,0x7b,0x6e,0x70,0x75,0x62,0x4c,0x69,0x6e,0x6b,0x7d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x24,0x7b,0x70,0x75,0x62,0x6b,0x65,0x79,0x2e,0x65,0x76,0x65,0x6e,0x74,0x5f,0x63,0x6f,0x75,0x6e,0x74,0x7d,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x64,0x3e,0x24,0x7b,0x70,0x75,0x62,0x6b,0x65,0x79,0x2e,0x70,0x65,0x72,0x63,0x65,0x6e,0x74,0x61,0x67,0x65,0x7d,0x25,0x3c,0x2f,0x74,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x62,0x6c,0x65,0x42,0x6f,0x64,0x79,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x43,0x68,0x69,0x6c,0x64,0x28,0x72,0x6f,0x77,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x73,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x20,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x20,0x28,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x2d,0x20,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x64,0x29,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x73,0x74,0x61,0x74,0x75,0x73,0x2c,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x3d,0x20,0x27,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x61,0x74,0x75,0x73,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x68,0x61,0x73,0x20,0x62,0x65,0x65,0x6e,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x64,0x20,0x66,0x72,0x6f,0x6d,0x20,0x74,0x68,0x65,0x20,0x55,0x49,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x55,0x74,0x69,0x6c,0x69,0x74,0x79,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x20,0x66,0x69,0x6c,0x65,0x20,0x73,0x69,0x7a,0x65,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x46,0x69,0x6c,0x65,0x53,0x69,0x7a,0x65,0x28,0x62,0x79,0x74,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x62,0x79,0x74,0x65,0x73,0x20,0x7c,0x7c,0x20,0x62,0x79,0x74,0x65,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x27,0x30,0x20,0x42,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x20,0x3d,0x20,0x31,0x30,0x32,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x7a,0x65,0x73,0x20,0x3d,0x20,0x5b,0x27,0x42,0x27,0x2c,0x20,0x27,0x4b,0x42,0x27,0x2c,0x20,0x27,0x4d,0x42,0x27,0x2c,0x20,0x27,0x47,0x42,0x27,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x20,0x3d,0x20,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x4d,0x61,0x74,0x68,0x2e,0x6c,0x6f,0x67,0x28,0x62,0x79,0x74,0x65,0x73,0x29,0x20,0x2f,0x20,0x4d,0x61,0x74,0x68,0x2e,0x6c,0x6f,0x67,0x28,0x6b,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x61,0x72,0x73,0x65,0x46,0x6c,0x6f,0x61,0x74,0x28,0x28,0x62,0x79,0x74,0x65,0x73,0x20,0x2f,0x20,0x4d,0x61,0x74,0x68,0x2e,0x70,0x6f,0x77,0x28,0x6b,0x2c,0x20,0x69,0x29,0x29,0x2e,0x74,0x6f,0x46,0x69,0x78,0x65,0x64,0x28,0x31,0x29,0x29,0x20,0x2b,0x20,0x27,0x20,0x27,0x20,0x2b,0x20,0x73,0x69,0x7a,0x65,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x55,0x74,0x69,0x6c,0x69,0x74,0x79,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x20,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x54,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x28,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x27,0x2d,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x61,0x74,0x65,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x44,0x61,0x74,0x65,0x28,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x20,0x2a,0x20,0x31,0x30,0x30,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x64,0x61,0x74,0x65,0x2e,0x74,0x6f,0x4c,0x6f,0x63,0x61,0x6c,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x73,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x20,0x63,0x65,0x6c,0x6c,0x20,0x77,0x69,0x74,0x68,0x20,0x66,0x6c,0x61,0x73,0x68,0x20,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x20,0x69,0x66,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x64,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x73,0x43,0x65,0x6c,0x6c,0x28,0x63,0x65,0x6c,0x6c,0x49,0x64,0x2c,0x20,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x65,0x6c,0x6c,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x63,0x65,0x6c,0x6c,0x49,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x65,0x6c,0x6c,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x63,0x65,0x6c,0x6c,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x65,0x6c,0x6c,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x6c,0x61,0x73,0x68,0x20,0x69,0x66,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x56,0x61,0x6c,0x75,0x65,0x20,0x21,0x3d,0x3d,0x20,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x20,0x26,0x26,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x56,0x61,0x6c,0x75,0x65,0x20,0x21,0x3d,0x3d,0x20,0x27,0x2d,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x65,0x6c,0x6c,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4c,0x69,0x73,0x74,0x2e,0x61,0x64,0x64,0x28,0x27,0x66,0x6c,0x61,0x73,0x68,0x2d,0x76,0x61,0x6c,0x75,0x65,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x65,0x6c,0x6c,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4c,0x69,0x73,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x27,0x66,0x6c,0x61,0x73,0x68,0x2d,0x76,0x61,0x6c,0x75,0x65,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x20,0x35,0x30,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x53,0x74,0x61,0x72,0x74,0x20,0x61,0x75,0x74,0x6f,0x2d,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x69,0x6e,0x67,0x20,0x64,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x20,0x73,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x20,0x65,0x76,0x65,0x72,0x79,0x20,0x31,0x30,0x20,0x73,0x65,0x63,0x6f,0x6e,0x64,0x73,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x61,0x72,0x74,0x53,0x74,0x61,0x74,0x73,0x41,0x75,0x74,0x6f,0x52,0x65,0x66,0x72,0x65,0x73,0x68,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6c,0x65,0x61,0x72,0x20,0x61,0x6e,0x79,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x20,0x69,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x6f,0x70,0x53,0x74,0x61,0x74,0x73,0x41,0x75,0x74,0x6f,0x52,0x65,0x66,0x72,0x65,0x73,0x68,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x73,0x65,0x74,0x20,0x63,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x53,0x65,0x63,0x6f,0x6e,0x64,0x73,0x20,0x3d,0x20,0x31,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x43,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x61,0x72,0x74,0x20,0x63,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x20,0x69,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x20,0x2d,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x65,0x76,0x65,0x72,0x79,0x20,0x73,0x65,0x63,0x6f,0x6e,0x64,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x20,0x3d,0x20,0x73,0x65,0x74,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x53,0x65,0x63,0x6f,0x6e,0x64,0x73,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x43,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x53,0x65,0x63,0x6f,0x6e,0x64,0x73,0x20,0x3c,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x69,0x6d,0x65,0x20,0x74,0x6f,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x26,0x26,0x20,0x69,0x73,0x52,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x41,0x75,0x74,0x6f,0x2d,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x69,0x6e,0x67,0x20,0x64,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x20,0x73,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x2e,0x2e,0x2e,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x6e,0x64,0x53,0x74,0x61,0x74,0x73,0x51,0x75,0x65,0x72,0x79,0x28,0x29,0x2e,0x74,0x68,0x65,0x6e,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x6c,0x61,0x73,0x68,0x20,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x72,0x65,0x64,0x20,0x6f,0x6e,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x61,0x73,0x68,0x52,0x65,0x66,0x72,0x65,0x73,0x68,0x42,0x75,0x74,0x74,0x6f,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x73,0x65,0x74,0x20,0x63,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x53,0x65,0x63,0x6f,0x6e,0x64,0x73,0x20,0x3d,0x20,0x31,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x43,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x2e,0x63,0x61,0x74,0x63,0x68,0x28,0x65,0x72,0x72,0x6f,0x72,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x41,0x75,0x74,0x6f,0x2d,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x2c,0x20,0x27,0x45,0x52,0x52,0x4f,0x52,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x73,0x65,0x74,0x20,0x63,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x20,0x65,0x76,0x65,0x6e,0x20,0x6f,0x6e,0x20,0x66,0x61,0x69,0x6c,0x75,0x72,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x53,0x65,0x63,0x6f,0x6e,0x64,0x73,0x20,0x3d,0x20,0x31,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x43,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x73,0x65,0x74,0x20,0x63,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x20,0x69,0x66,0x20,0x6e,0x6f,0x74,0x20,0x6c,0x6f,0x67,0x67,0x65,0x64,0x20,0x69,0x6e,0x2f,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x53,0x65,0x63,0x6f,0x6e,0x64,0x73,0x20,0x3d,0x20,0x31,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x43,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x20,0x31,0x30,0x30,0x30,0x29,0x3b,0x20,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x65,0x76,0x65,0x72,0x79,0x20,0x31,0x20,0x73,0x65,0x63,0x6f,0x6e,0x64,0x0a,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x44,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x20,0x73,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x20,0x61,0x75,0x74,0x6f,0x2d,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x20,0x73,0x74,0x61,0x72,0x74,0x65,0x64,0x20,0x28,0x31,0x30,0x20,0x73,0x65,0x63,0x6f,0x6e,0x64,0x20,0x69,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x73,0x29,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x53,0x74,0x6f,0x70,0x20,0x61,0x75,0x74,0x6f,0x2d,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x69,0x6e,0x67,0x20,0x64,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x20,0x73,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x6f,0x70,0x53,0x74,0x61,0x74,0x73,0x41,0x75,0x74,0x6f,0x52,0x65,0x66,0x72,0x65,0x73,0x68,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x73,0x41,0x75,0x74,0x6f,0x52,0x65,0x66,0x72,0x65,0x73,0x68,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x65,0x61,0x72,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x28,0x73,0x74,0x61,0x74,0x73,0x41,0x75,0x74,0x6f,0x52,0x65,0x66,0x72,0x65,0x73,0x68,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x73,0x41,0x75,0x74,0x6f,0x52,0x65,0x66,0x72,0x65,0x73,0x68,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x65,0x61,0x72,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x28,0x63,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x73,0x65,0x74,0x20,0x63,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x43,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x27,0x44,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x20,0x73,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x20,0x61,0x75,0x74,0x6f,0x2d,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x20,0x73,0x74,0x6f,0x70,0x70,0x65,0x64,0x27,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x63,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x69,0x6e,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x20,0x62,0x75,0x74,0x74,0x6f,0x6e,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x43,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x2d,0x73,0x74,0x61,0x74,0x73,0x2d,0x62,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x42,0x74,0x6e,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x20,0x26,0x26,0x20,0x69,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x49,0x6e,0x20,0x26,0x26,0x20,0x69,0x73,0x52,0x65,0x6c,0x61,0x79,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4a,0x61,0x70,0x61,0x6e,0x65,0x73,0x65,0x20,0x4b,0x61,0x6e,0x6a,0x69,0x20,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x3a,0x20,0xe3,0x80,0x87,0x20,0xe4,0xb8,0x80,0x20,0xe4,0xba,0x8c,0x20,0xe4,0xb8,0x89,0x20,0xe5,0x9b,0x9b,0x20,0xe4,0xba,0x94,0x20,0xe5,0x85,0xad,0x20,0xe4,0xb8,0x83,0x20,0xe5,0x85,0xab,0x20,0xe4,0xb9,0x9d,0x20,0xe5,0x8d,0x81,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x61,0x6e,0x6a,0x69,0x4e,0x75,0x6d,0x62,0x65,0x72,0x73,0x20,0x3d,0x20,0x5b,0x27,0xe3,0x80,0x87,0x27,0x2c,0x20,0x27,0xe4,0xb8,0x80,0x27,0x2c,0x20,0x27,0xe4,0xba,0x8c,0x27,0x2c,0x20,0x27,0xe4,0xb8,0x89,0x27,0x2c,0x20,0x27,0xe5,0x9b,0x9b,0x27,0x2c,0x20,0x27,0xe4,0xba,0x94,0x27,0x2c,0x20,0x27,0xe5,0x85,0xad,0x27,0x2c,0x20,0x27,0xe4,0xb8,0x83,0x27,0x2c,0x20,0x27,0xe5,0x85,0xab,0x27,0x2c,0x20,0x27,0xe4,0xb9,0x9d,0x27,0x2c,0x20,0x27,0xe5,0x8d,0x81,0x27,0x5d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x68,0x6f,0x77,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x20,0x63,0x6f,0x75,0x6e,0x74,0x69,0x6e,0x67,0x20,0x64,0x6f,0x77,0x6e,0x20,0x66,0x72,0x6f,0x6d,0x20,0xe5,0x8d,0x81,0x20,0x28,0x31,0x30,0x29,0x20,0x74,0x6f,0x20,0xe3,0x80,0x87,0x20,0x28,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x53,0x65,0x63,0x6f,0x6e,0x64,0x73,0x20,0x3e,0x3d,0x20,0x30,0x20,0x26,0x26,0x20,0x63,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x53,0x65,0x63,0x6f,0x6e,0x64,0x73,0x20,0x3c,0x3d,0x20,0x31,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x42,0x74,0x6e,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x6b,0x61,0x6e,0x6a,0x69,0x4e,0x75,0x6d,0x62,0x65,0x72,0x73,0x5b,0x63,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x53,0x65,0x63,0x6f,0x6e,0x64,0x73,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x42,0x74,0x6e,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x68,0x6f,0x77,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x77,0x68,0x65,0x6e,0x20,0x6e,0x6f,0x74,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x42,0x74,0x6e,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x27,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x46,0x6c,0x61,0x73,0x68,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x20,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x72,0x65,0x64,0x20,0x6f,0x6e,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x66,0x75,0x6c,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6c,0x61,0x73,0x68,0x52,0x65,0x66,0x72,0x65,0x73,0x68,0x42,0x75,0x74,0x74,0x6f,0x6e,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x2d,0x73,0x74,0x61,0x74,0x73,0x2d,0x62,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x42,0x74,0x6e,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x64,0x64,0x20,0x72,0x65,0x64,0x20,0x66,0x6c,0x61,0x73,0x68,0x20,0x63,0x6c,0x61,0x73,0x73,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x42,0x74,0x6e,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4c,0x69,0x73,0x74,0x2e,0x61,0x64,0x64,0x28,0x27,0x66,0x6c,0x61,0x73,0x68,0x2d,0x72,0x65,0x64,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x6d,0x6f,0x76,0x65,0x20,0x66,0x6c,0x61,0x73,0x68,0x20,0x63,0x6c,0x61,0x73,0x73,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x42,0x74,0x6e,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4c,0x69,0x73,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x27,0x66,0x6c,0x61,0x73,0x68,0x2d,0x72,0x65,0x64,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x20,0x35,0x30,0x30,0x29,0x3b,0x20,0x2f,0x2f,0x20,0x4d,0x61,0x74,0x63,0x68,0x20,0x43,0x53,0x53,0x20,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x20,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x45,0x76,0x65,0x6e,0x74,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x20,0x66,0x6f,0x72,0x20,0x74,0x65,0x73,0x74,0x20,0x62,0x75,0x74,0x74,0x6f,0x6e,0x73,0x0a,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x44,0x4f,0x4d,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x4c,0x6f,0x61,0x64,0x65,0x64,0x27,0x2c,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x65,0x73,0x74,0x20,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x65,0x73,0x74,0x47,0x65,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x74,0x65,0x73,0x74,0x2d,0x67,0x65,0x74,0x2d,0x61,0x75,0x74,0x68,0x2d,0x72,0x75,0x6c,0x65,0x73,0x2d,0x62,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x65,0x73,0x74,0x43,0x6c,0x65,0x61,0x72,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x74,0x65,0x73,0x74,0x2d,0x63,0x6c,0x65,0x61,0x72,0x2d,0x61,0x75,0x74,0x68,0x2d,0x72,0x75,0x6c,0x65,0x73,0x2d,0x62,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x65,0x73,0x74,0x41,0x64,0x64,0x42,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x74,0x65,0x73,0x74,0x2d,0x61,0x64,0x64,0x2d,0x62,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x2d,0x62,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x65,0x73,0x74,0x41,0x64,0x64,0x57,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x74,0x65,0x73,0x74,0x2d,0x61,0x64,0x64,0x2d,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x2d,0x62,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x65,0x73,0x74,0x43,0x6f,0x6e,0x66,0x69,0x67,0x51,0x75,0x65,0x72,0x79,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x74,0x65,0x73,0x74,0x2d,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x71,0x75,0x65,0x72,0x79,0x2d,0x62,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x65,0x73,0x74,0x50,0x6f,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x74,0x65,0x73,0x74,0x2d,0x70,0x6f,0x73,0x74,0x2d,0x65,0x76,0x65,0x6e,0x74,0x2d,0x62,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6c,0x65,0x61,0x72,0x54,0x65,0x73,0x74,0x4c,0x6f,0x67,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x63,0x6c,0x65,0x61,0x72,0x2d,0x74,0x65,0x73,0x74,0x2d,0x6c,0x6f,0x67,0x2d,0x62,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x54,0x65,0x73,0x74,0x4b,0x65,0x79,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x2d,0x74,0x65,0x73,0x74,0x2d,0x6b,0x65,0x79,0x2d,0x62,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x65,0x73,0x74,0x47,0x65,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x42,0x74,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x73,0x74,0x47,0x65,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x42,0x74,0x6e,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x63,0x6c,0x69,0x63,0x6b,0x27,0x2c,0x20,0x74,0x65,0x73,0x74,0x47,0x65,0x74,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x65,0x73,0x74,0x43,0x6c,0x65,0x61,0x72,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x42,0x74,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x73,0x74,0x43,0x6c,0x65,0x61,0x72,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x42,0x74,0x6e,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x63,0x6c,0x69,0x63,0x6b,0x27,0x2c,0x20,0x74,0x65,0x73,0x74,0x43,0x6c,0x65,0x61,0x72,0x41,0x75,0x74,0x68,0x52,0x75,0x6c,0x65,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x65,0x73,0x74,0x41,0x64,0x64,0x42,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x42,0x74,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x73,0x74,0x41,0x64,0x64,0x42,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x42,0x74,0x6e,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x63,0x6c,0x69,0x63,0x6b,0x27,0x2c,0x20,0x74,0x65,0x73,0x74,0x41,0x64,0x64,0x42,0x6c,0x61,0x63,0x6b,0x6c,0x69,0x73,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x65,0x73,0x74,0x41,0x64,0x64,0x57,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x42,0x74,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x73,0x74,0x41,0x64,0x64,0x57,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x42,0x74,0x6e,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x63,0x6c,0x69,0x63,0x6b,0x27,0x2c,0x20,0x74,0x65,0x73,0x74,0x41,0x64,0x64,0x57,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x65,0x73,0x74,0x43,0x6f,0x6e,0x66,0x69,0x67,0x51,0x75,0x65,0x72,0x79,0x42,0x74,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x73,0x74,0x43,0x6f,0x6e,0x66,0x69,0x67,0x51,0x75,0x65,0x72,0x79,0x42,0x74,0x6e,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x63,0x6c,0x69,0x63,0x6b,0x27,0x2c,0x20,0x74,0x65,0x73,0x74,0x43,0x6f,0x6e,0x66,0x69,0x67,0x51,0x75,0x65,0x72,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x65,0x73,0x74,0x50,0x6f,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x42,0x74,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x73,0x74,0x50,0x6f,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x42,0x74,0x6e,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x63,0x6c,0x69,0x63,0x6b,0x27,0x2c,0x20,0x74,0x65,0x73,0x74,0x50,0x6f,0x73,0x74,0x45,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6c,0x65,0x61,0x72,0x54,0x65,0x73,0x74,0x4c,0x6f,0x67,0x42,0x74,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x65,0x61,0x72,0x54,0x65,0x73,0x74,0x4c,0x6f,0x67,0x42,0x74,0x6e,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x63,0x6c,0x69,0x63,0x6b,0x27,0x2c,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x65,0x73,0x74,0x4c,0x6f,0x67,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x74,0x65,0x73,0x74,0x2d,0x65,0x76,0x65,0x6e,0x74,0x2d,0x6c,0x6f,0x67,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x65,0x73,0x74,0x4c,0x6f,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x73,0x74,0x4c,0x6f,0x67,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x27,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6c,0x6f,0x67,0x2d,0x65,0x6e,0x74,0x72,0x79,0x22,0x3e,0x3c,0x73,0x70,0x61,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6c,0x6f,0x67,0x2d,0x74,0x69,0x6d,0x65,0x73,0x74,0x61,0x6d,0x70,0x22,0x3e,0x53,0x59,0x53,0x54,0x45,0x4d,0x3a,0x3c,0x2f,0x73,0x70,0x61,0x6e,0x3e,0x20,0x54,0x65,0x73,0x74,0x20,0x6c,0x6f,0x67,0x20,0x63,0x6c,0x65,0x61,0x72,0x65,0x64,0x2e,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x54,0x65,0x73,0x74,0x4b,0x65,0x79,0x42,0x74,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x54,0x65,0x73,0x74,0x4b,0x65,0x79,0x42,0x74,0x6e,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x63,0x6c,0x69,0x63,0x6b,0x27,0x2c,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x52,0x61,0x6e,0x64,0x6f,0x6d,0x54,0x65,0x73,0x74,0x4b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x68,0x6f,0x77,0x20,0x74,0x65,0x73,0x74,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x77,0x68,0x65,0x6e,0x20,0x6e,0x65,0x65,0x64,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x65,0x73,0x74,0x49,0x6e,0x70,0x75,0x74,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x74,0x65,0x73,0x74,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2d,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x65,0x73,0x74,0x49,0x6e,0x70,0x75,0x74,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x73,0x74,0x49,0x6e,0x70,0x75,0x74,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x27,0x62,0x6c,0x6f,0x63,0x6b,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x61,0x74,0x61,0x62,0x61,0x73,0x65,0x20,0x73,0x74,0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x53,0x74,0x61,0x74,0x73,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x2d,0x73,0x74,0x61,0x74,0x73,0x2d,0x62,0x74,0x6e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x53,0x74,0x61,0x74,0x73,0x42,0x74,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x53,0x74,0x61,0x74,0x73,0x42,0x74,0x6e,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x63,0x6c,0x69,0x63,0x6b,0x27,0x2c,0x20,0x73,0x65,0x6e,0x64,0x53,0x74,0x61,0x74,0x73,0x51,0x75,0x65,0x72,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4e,0x49,0x50,0x2d,0x31,0x37,0x20,0x44,0x4d,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x65,0x6e,0x64,0x44,0x6d,0x42,0x74,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x6e,0x64,0x44,0x6d,0x42,0x74,0x6e,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x63,0x6c,0x69,0x63,0x6b,0x27,0x2c,0x20,0x73,0x65,0x6e,0x64,0x4e,0x49,0x50,0x31,0x37,0x44,0x4d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x29,0x3b,0x0a,0x0a,0x2f,0x2f,0x20,0x53,0x65,0x74,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x55,0x52,0x4c,0x20,0x62,0x61,0x73,0x65,0x64,0x20,0x6f,0x6e,0x20,0x77,0x68,0x65,0x72,0x65,0x20,0x74,0x68,0x65,0x20,0x70,0x61,0x67,0x65,0x20,0x69,0x73,0x20,0x62,0x65,0x69,0x6e,0x67,0x20,0x73,0x65,0x72,0x76,0x65,0x64,0x20,0x66,0x72,0x6f,0x6d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x74,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x52,0x65,0x6c,0x61,0x79,0x55,0x72,0x6c,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x55,0x72,0x6c,0x49,0x6e,0x70,0x75,0x74,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x72,0x65,0x6c,0x61,0x79,0x2d,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2d,0x75,0x72,0x6c,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x6c,0x61,0x79,0x55,0x72,0x6c,0x49,0x6e,0x70,0x75,0x74,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x47,0x65,0x74,0x20,0x74,0x68,0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x70,0x61,0x67,0x65,0x27,0x73,0x20,0x70,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x20,0x61,0x6e,0x64,0x20,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x20,0x3d,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x68,0x74,0x74,0x70,0x73,0x3a,0x27,0x20,0x3f,0x20,0x27,0x77,0x73,0x73,0x3a,0x27,0x20,0x3a,0x20,0x27,0x77,0x73,0x3a,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x6f,0x72,0x74,0x20,0x3d,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x70,0x6f,0x72,0x74,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x55,0x52,0x4c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x55,0x72,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x6c,0x6f,0x63,0x61,0x6c,0x68,0x6f,0x73,0x74,0x27,0x20,0x7c,0x7c,0x20,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x31,0x32,0x37,0x2e,0x30,0x2e,0x30,0x2e,0x31,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x6f,0x72,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x68,0x6f,0x73,0x74,0x2c,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x74,0x6f,0x20,0x77,0x73,0x3a,0x2f,0x2f,0x6c,0x6f,0x63,0x61,0x6c,0x68,0x6f,0x73,0x74,0x3a,0x38,0x38,0x38,0x38,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x55,0x72,0x6c,0x20,0x3d,0x20,0x27,0x77,0x73,0x3a,0x2f,0x2f,0x6c,0x6f,0x63,0x61,0x6c,0x68,0x6f,0x73,0x74,0x3a,0x38,0x38,0x38,0x38,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x6f,0x72,0x20,0x70,0x72,0x6f,0x64,0x75,0x63,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x75,0x73,0x65,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6d,0x65,0x20,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x20,0x77,0x69,0x74,0x68,0x20,0x57,0x65,0x62,0x53,0x6f,0x63,0x6b,0x65,0x74,0x20,0x70,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x6d,0x6f,0x76,0x65,0x20,0x70,0x6f,0x72,0x74,0x20,0x66,0x72,0x6f,0x6d,0x20,0x55,0x52,0x4c,0x20,0x73,0x69,0x6e,0x63,0x65,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x74,0x79,0x70,0x69,0x63,0x61,0x6c,0x6c,0x79,0x20,0x72,0x75,0x6e,0x73,0x20,0x6f,0x6e,0x20,0x73,0x74,0x61,0x6e,0x64,0x61,0x72,0x64,0x20,0x70,0x6f,0x72,0x74,0x73,0x20,0x28,0x38,0x30,0x2f,0x34,0x34,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x55,0x72,0x6c,0x20,0x3d,0x20,0x60,0x24,0x7b,0x70,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x7d,0x2f,0x2f,0x24,0x7b,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x7d,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x61,0x79,0x55,0x72,0x6c,0x49,0x6e,0x70,0x75,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x72,0x65,0x6c,0x61,0x79,0x55,0x72,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x28,0x60,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x55,0x52,0x4c,0x20,0x73,0x65,0x74,0x20,0x74,0x6f,0x3a,0x20,0x24,0x7b,0x72,0x65,0x6c,0x61,0x79,0x55,0x72,0x6c,0x7d,0x60,0x2c,0x20,0x27,0x49,0x4e,0x46,0x4f,0x27,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x49,0x6e,0x69,0x74,0x69,0x61,0x6c,0x69,0x7a,0x65,0x20,0x74,0x68,0x65,0x20,0x61,0x70,0x70,0x0a,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x27,0x44,0x4f,0x4d,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x4c,0x6f,0x61,0x64,0x65,0x64,0x27,0x2c,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x27,0x43,0x2d,0x52,0x65,0x6c,0x61,0x79,0x20,0x41,0x64,0x6d,0x69,0x6e,0x20,0x41,0x50,0x49,0x20,0x69,0x6e,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x20,0x6c,0x6f,0x61,0x64,0x65,0x64,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x65,0x74,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x72,0x65,0x6c,0x61,0x79,0x20,0x55,0x52,0x4c,0x20,0x62,0x61,0x73,0x65,0x64,0x20,0x6f,0x6e,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x70,0x61,0x67,0x65,0x20,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x52,0x65,0x6c,0x61,0x79,0x55,0x72,0x6c,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x73,0x75,0x72,0x65,0x20,0x61,0x64,0x6d,0x69,0x6e,0x20,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x20,0x61,0x72,0x65,0x20,0x68,0x69,0x64,0x64,0x65,0x6e,0x20,0x62,0x79,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x6f,0x6e,0x20,0x70,0x61,0x67,0x65,0x20,0x6c,0x6f,0x61,0x64,0x0a,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x41,0x64,0x6d,0x69,0x6e,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x56,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x69,0x7a,0x65,0x41,0x70,0x70,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x68,0x61,0x6e,0x63,0x65,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x50,0x6f,0x6f,0x6c,0x20,0x66,0x6f,0x72,0x20,0x74,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x69,0x7a,0x61,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x65,0x6e,0x68,0x61,0x6e,0x63,0x65,0x50,0x6f,0x6f,0x6c,0x46,0x6f,0x72,0x54,0x65,0x73,0x74,0x69,0x6e,0x67,0x2c,0x20,0x32,0x30,0x30,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x20,0x31,0x30,0x30,0x29,0x3b,0x0a,0x7d,0x29,0x3b,};
+static const size_t index_js_size = 146267;
// Auto-generated from api/nostr.bundle.js
static const unsigned char nostr_bundle_js_data[] = {
@@ -33,6 +38,7 @@ static const size_t nostr_lite_js_size = 150590;
static embedded_file_t embedded_files[] = {
{"/", index_html_data, index_html_size, "text/html"},
{"/index.css", index_css_data, index_css_size, "text/css"},
+ {"/embedded.html", embedded_html_data, embedded_html_size, "text/html"},
{"/nostr-lite.js", nostr_lite_js_data, nostr_lite_js_size, "application/javascript"},
{"/index.js", index_js_data, index_js_size, "application/javascript"},
{"/index.html", index_html_data, index_html_size, "text/html"},
diff --git a/tests/test_results_20251011_134617.log b/tests/test_results_20251011_134617.log
deleted file mode 100644
index 8f3d536..0000000
--- a/tests/test_results_20251011_134617.log
+++ /dev/null
@@ -1,18 +0,0 @@
-2025-10-11 13:46:17 - ==========================================
-2025-10-11 13:46:17 - C-Relay Comprehensive Test Suite Runner
-2025-10-11 13:46:17 - ==========================================
-2025-10-11 13:46:17 - Relay URL: ws://127.0.0.1:8888
-2025-10-11 13:46:17 - Log file: test_results_20251011_134617.log
-2025-10-11 13:46:17 - Report file: test_report_20251011_134617.html
-2025-10-11 13:46:17 -
-2025-10-11 13:46:17 - Checking relay status at ws://127.0.0.1:8888...
-2025-10-11 13:46:17 - \033[0;32m✓ Relay HTTP endpoint is accessible\033[0m
-2025-10-11 13:46:17 -
-2025-10-11 13:46:17 - Starting comprehensive test execution...
-2025-10-11 13:46:17 -
-2025-10-11 13:46:17 - \033[0;34m=== SECURITY TEST SUITES ===\033[0m
-2025-10-11 13:46:17 - ==========================================
-2025-10-11 13:46:17 - Running Test Suite: SQL Injection Tests
-2025-10-11 13:46:17 - Description: Comprehensive SQL injection vulnerability testing
-2025-10-11 13:46:17 - ==========================================
-2025-10-11 13:46:17 - \033[0;31mERROR: Test script tests/sql_injection_tests.sh not found\033[0m
diff --git a/tests/test_results_20251011_134807.log b/tests/test_results_20251011_134807.log
deleted file mode 100644
index 9b3b7c0..0000000
--- a/tests/test_results_20251011_134807.log
+++ /dev/null
@@ -1,629 +0,0 @@
-2025-10-11 13:48:07 - ==========================================
-2025-10-11 13:48:07 - C-Relay Comprehensive Test Suite Runner
-2025-10-11 13:48:07 - ==========================================
-2025-10-11 13:48:07 - Relay URL: ws://127.0.0.1:8888
-2025-10-11 13:48:07 - Log file: test_results_20251011_134807.log
-2025-10-11 13:48:07 - Report file: test_report_20251011_134807.html
-2025-10-11 13:48:07 -
-2025-10-11 13:48:07 - Checking relay status at ws://127.0.0.1:8888...
-2025-10-11 13:48:07 - \033[0;32m✓ Relay HTTP endpoint is accessible\033[0m
-2025-10-11 13:48:07 -
-2025-10-11 13:48:07 - Starting comprehensive test execution...
-2025-10-11 13:48:07 -
-2025-10-11 13:48:07 - \033[0;34m=== SECURITY TEST SUITES ===\033[0m
-2025-10-11 13:48:07 - ==========================================
-2025-10-11 13:48:07 - Running Test Suite: SQL Injection Tests
-2025-10-11 13:48:07 - Description: Comprehensive SQL injection vulnerability testing
-2025-10-11 13:48:07 - ==========================================
-==========================================
-C-Relay SQL Injection Test Suite
-==========================================
-Testing against relay at ws://127.0.0.1:8888
-
-=== Basic Connectivity Test ===
-Testing Basic connectivity... [0;32mPASSED[0m - Valid query works
-
-=== Authors Filter SQL Injection Tests ===
-Testing Authors filter with payload: '; DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: 1' OR '1'='1... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: 1; SELECT * FROM sqlite_master; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: ' OR 1=1 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: admin'--... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: 1' UNION SELECT password FROM users --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: 1' AND SLEEP(5) --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: 1' AND 1=1 WAITFOR DELAY '0:0:5' --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: 1' AND 1=CAST((SELECT version()) AS INT) --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: 1' AND 1=CONVERT(INT, (SELECT @@VERSION)) --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: ' UNION SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: ' UNION SELECT 1,2,3 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: ' UNION ALL SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: '; SELECT * FROM events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: '; DELETE FROM events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: '; UPDATE events SET content='hacked' WHERE 1=1; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: /*... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: */... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: /**/... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: #... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: 0x53514C5F494E4A454354494F4E... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: J1NSTCBJTkpFQ1RJT04gLS0=... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: '))); DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: ')) UNION SELECT NULL; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: ' AND 1=1 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: ' AND 1=2 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: ' AND (SELECT COUNT(*) FROM events) > 0 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: '; EXEC master..xp_cmdshell 'net user' --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: '; DECLARE @host varchar(1024); SELECT @host=(SELECT TOP 1 master..sys.fn_varbintohexstr(password_hash) FROM sys.sql_logins WHERE name='sa'); --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-
-=== IDs Filter SQL Injection Tests ===
-Testing IDs filter with payload: '; DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: 1' OR '1'='1... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: 1; SELECT * FROM sqlite_master; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: ' OR 1=1 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: admin'--... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: 1' UNION SELECT password FROM users --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: 1' AND SLEEP(5) --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: 1' AND 1=1 WAITFOR DELAY '0:0:5' --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: 1' AND 1=CAST((SELECT version()) AS INT) --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: 1' AND 1=CONVERT(INT, (SELECT @@VERSION)) --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: ' UNION SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: ' UNION SELECT 1,2,3 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: ' UNION ALL SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: '; SELECT * FROM events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: '; DELETE FROM events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: '; UPDATE events SET content='hacked' WHERE 1=1; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: /*... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: */... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: /**/... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: #... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: 0x53514C5F494E4A454354494F4E... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: J1NSTCBJTkpFQ1RJT04gLS0=... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: '))); DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: ')) UNION SELECT NULL; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: ' AND 1=1 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: ' AND 1=2 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: ' AND (SELECT COUNT(*) FROM events) > 0 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: '; EXEC master..xp_cmdshell 'net user' --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: '; DECLARE @host varchar(1024); SELECT @host=(SELECT TOP 1 master..sys.fn_varbintohexstr(password_hash) FROM sys.sql_logins WHERE name='sa'); --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-
-=== Kinds Filter SQL Injection Tests ===
-Testing Kinds filter with string injection... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Kinds filter with negative value... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Kinds filter with very large value... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-
-=== Search Filter SQL Injection Tests ===
-Testing Search filter with payload: '; DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: 1' OR '1'='1... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing Search filter with payload: 1; SELECT * FROM sqlite_master; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: ' OR 1=1 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: admin'--... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: 1' UNION SELECT password FROM users --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: 1' AND SLEEP(5) --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: 1' AND 1=1 WAITFOR DELAY '0:0:5' --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: 1' AND 1=CAST((SELECT version()) AS INT) --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: 1' AND 1=CONVERT(INT, (SELECT @@VERSION)) --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: ' UNION SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: ' UNION SELECT 1,2,3 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: ' UNION ALL SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: '; SELECT * FROM events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: '; DELETE FROM events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: '; UPDATE events SET content='hacked' WHERE 1=1; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: /*... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: */... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: /**/... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: #... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing Search filter with payload: 0x53514C5F494E4A454354494F4E... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing Search filter with payload: J1NSTCBJTkpFQ1RJT04gLS0=... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing Search filter with payload: '))); DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: ')) UNION SELECT NULL; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: ' AND 1=1 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: ' AND 1=2 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: ' AND (SELECT COUNT(*) FROM events) > 0 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: '; EXEC master..xp_cmdshell 'net user' --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: '; DECLARE @host varchar(1024); SELECT @host=(SELECT TOP 1 master..sys.fn_varbintohexstr(password_hash) FROM sys.sql_logins WHERE name='sa'); --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-
-=== Tag Filter SQL Injection Tests ===
-Testing #e tag filter with payload: '; DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: 1' OR '1'='1... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: 1; SELECT * FROM sqlite_master; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: ' OR 1=1 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: admin'--... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: 1' UNION SELECT password FROM users --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: 1' AND SLEEP(5) --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: 1' AND 1=1 WAITFOR DELAY '0:0:5' --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: 1' AND 1=CAST((SELECT version()) AS INT) --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: 1' AND 1=CONVERT(INT, (SELECT @@VERSION)) --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: ' UNION SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: ' UNION SELECT 1,2,3 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: ' UNION ALL SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: '; SELECT * FROM events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: '; DELETE FROM events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: '; UPDATE events SET content='hacked' WHERE 1=1; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: /*... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: */... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: /**/... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: #... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: 0x53514C5F494E4A454354494F4E... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: J1NSTCBJTkpFQ1RJT04gLS0=... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: '))); DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: ')) UNION SELECT NULL; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: ' AND 1=1 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: ' AND 1=2 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: ' AND (SELECT COUNT(*) FROM events) > 0 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: '; EXEC master..xp_cmdshell 'net user' --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: '; DECLARE @host varchar(1024); SELECT @host=(SELECT TOP 1 master..sys.fn_varbintohexstr(password_hash) FROM sys.sql_logins WHERE name='sa'); --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: '; DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: 1' OR '1'='1... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: 1; SELECT * FROM sqlite_master; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: ' OR 1=1 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: admin'--... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: 1' UNION SELECT password FROM users --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: 1' AND SLEEP(5) --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: 1' AND 1=1 WAITFOR DELAY '0:0:5' --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: 1' AND 1=CAST((SELECT version()) AS INT) --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: 1' AND 1=CONVERT(INT, (SELECT @@VERSION)) --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: ' UNION SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: ' UNION SELECT 1,2,3 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: ' UNION ALL SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: '; SELECT * FROM events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: '; DELETE FROM events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: '; UPDATE events SET content='hacked' WHERE 1=1; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: /*... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: */... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: /**/... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: #... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: 0x53514C5F494E4A454354494F4E... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: J1NSTCBJTkpFQ1RJT04gLS0=... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: '))); DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: ')) UNION SELECT NULL; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: ' AND 1=1 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: ' AND 1=2 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: ' AND (SELECT COUNT(*) FROM events) > 0 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: '; EXEC master..xp_cmdshell 'net user' --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: '; DECLARE @host varchar(1024); SELECT @host=(SELECT TOP 1 master..sys.fn_varbintohexstr(password_hash) FROM sys.sql_logins WHERE name='sa'); --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: '; DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: 1' OR '1'='1... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: 1; SELECT * FROM sqlite_master; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: ' OR 1=1 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: admin'--... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: 1' UNION SELECT password FROM users --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: 1' AND SLEEP(5) --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: 1' AND 1=1 WAITFOR DELAY '0:0:5' --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: 1' AND 1=CAST((SELECT version()) AS INT) --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: 1' AND 1=CONVERT(INT, (SELECT @@VERSION)) --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: ' UNION SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: ' UNION SELECT 1,2,3 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: ' UNION ALL SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: '; SELECT * FROM events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: '; DELETE FROM events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: '; UPDATE events SET content='hacked' WHERE 1=1; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: /*... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: */... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: /**/... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: #... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: 0x53514C5F494E4A454354494F4E... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: J1NSTCBJTkpFQ1RJT04gLS0=... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: '))); DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: ')) UNION SELECT NULL; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: ' AND 1=1 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: ' AND 1=2 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: ' AND (SELECT COUNT(*) FROM events) > 0 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: '; EXEC master..xp_cmdshell 'net user' --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: '; DECLARE @host varchar(1024); SELECT @host=(SELECT TOP 1 master..sys.fn_varbintohexstr(password_hash) FROM sys.sql_logins WHERE name='sa'); --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: '; DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: 1' OR '1'='1... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: 1; SELECT * FROM sqlite_master; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: ' OR 1=1 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: admin'--... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: 1' UNION SELECT password FROM users --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: 1' AND SLEEP(5) --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: 1' AND 1=1 WAITFOR DELAY '0:0:5' --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: 1' AND 1=CAST((SELECT version()) AS INT) --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: 1' AND 1=CONVERT(INT, (SELECT @@VERSION)) --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: ' UNION SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: ' UNION SELECT 1,2,3 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: ' UNION ALL SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: '; SELECT * FROM events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: '; DELETE FROM events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: '; UPDATE events SET content='hacked' WHERE 1=1; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: /*... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: */... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: /**/... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: #... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: 0x53514C5F494E4A454354494F4E... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: J1NSTCBJTkpFQ1RJT04gLS0=... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: '))); DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: ')) UNION SELECT NULL; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: ' AND 1=1 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: ' AND 1=2 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: ' AND (SELECT COUNT(*) FROM events) > 0 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: '; EXEC master..xp_cmdshell 'net user' --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: '; DECLARE @host varchar(1024); SELECT @host=(SELECT TOP 1 master..sys.fn_varbintohexstr(password_hash) FROM sys.sql_logins WHERE name='sa'); --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: '; DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: 1' OR '1'='1... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: 1; SELECT * FROM sqlite_master; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: ' OR 1=1 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: admin'--... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: 1' UNION SELECT password FROM users --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: 1' AND SLEEP(5) --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: 1' AND 1=1 WAITFOR DELAY '0:0:5' --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: 1' AND 1=CAST((SELECT version()) AS INT) --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: 1' AND 1=CONVERT(INT, (SELECT @@VERSION)) --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: ' UNION SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: ' UNION SELECT 1,2,3 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: ' UNION ALL SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: '; SELECT * FROM events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: '; DELETE FROM events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: '; UPDATE events SET content='hacked' WHERE 1=1; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: /*... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: */... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: /**/... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: #... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: 0x53514C5F494E4A454354494F4E... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: J1NSTCBJTkpFQ1RJT04gLS0=... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: '))); DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: ')) UNION SELECT NULL; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: ' AND 1=1 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: ' AND 1=2 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: ' AND (SELECT COUNT(*) FROM events) > 0 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: '; EXEC master..xp_cmdshell 'net user' --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: '; DECLARE @host varchar(1024); SELECT @host=(SELECT TOP 1 master..sys.fn_varbintohexstr(password_hash) FROM sys.sql_logins WHERE name='sa'); --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-
-=== Timestamp Filter SQL Injection Tests ===
-Testing Since parameter injection... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Until parameter injection... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-
-=== Limit Parameter SQL Injection Tests ===
-Testing Limit parameter injection... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Limit with UNION... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-
-=== Complex Multi-Filter SQL Injection Tests ===
-Testing Multi-filter with authors injection... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Multi-filter with search injection... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Multi-filter with tag injection... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-
-=== COUNT Message SQL Injection Tests ===
-Testing COUNT with authors payload: '; DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: '; DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: 1' OR '1'='1... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: 1' OR '1'='1... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing COUNT with authors payload: 1; SELECT * FROM sqlite_master; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: 1; SELECT * FROM sqlite_master; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: ' OR 1=1 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: ' OR 1=1 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: admin'--... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: admin'--... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: 1' UNION SELECT password FROM users --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: 1' UNION SELECT password FROM users --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: 1' AND SLEEP(5) --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: 1' AND SLEEP(5) --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: 1' AND 1=1 WAITFOR DELAY '0:0:5' --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: 1' AND 1=1 WAITFOR DELAY '0:0:5' --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: 1' AND 1=CAST((SELECT version()) AS INT) --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: 1' AND 1=CAST((SELECT version()) AS INT) --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: 1' AND 1=CONVERT(INT, (SELECT @@VERSION)) --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: 1' AND 1=CONVERT(INT, (SELECT @@VERSION)) --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: ' UNION SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: ' UNION SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: ' UNION SELECT 1,2,3 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: ' UNION SELECT 1,2,3 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: ' UNION ALL SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: ' UNION ALL SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: '; SELECT * FROM events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: '; SELECT * FROM events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: '; DELETE FROM events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: '; DELETE FROM events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: '; UPDATE events SET content='hacked' WHERE 1=1; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: '; UPDATE events SET content='hacked' WHERE 1=1; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: /*... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: /*... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: */... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: */... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: /**/... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: /**/... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: #... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: #... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing COUNT with authors payload: 0x53514C5F494E4A454354494F4E... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: 0x53514C5F494E4A454354494F4E... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing COUNT with authors payload: J1NSTCBJTkpFQ1RJT04gLS0=... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: J1NSTCBJTkpFQ1RJT04gLS0=... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing COUNT with authors payload: '))); DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: '))); DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: ')) UNION SELECT NULL; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: ')) UNION SELECT NULL; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: ' AND 1=1 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: ' AND 1=1 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: ' AND 1=2 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: ' AND 1=2 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: ' AND (SELECT COUNT(*) FROM events) > 0 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: ' AND (SELECT COUNT(*) FROM events) > 0 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: '; EXEC master..xp_cmdshell 'net user' --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: '; EXEC master..xp_cmdshell 'net user' --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: '; DECLARE @host varchar(1024); SELECT @host=(SELECT TOP 1 master..sys.fn_varbintohexstr(password_hash) FROM sys.sql_logins WHERE name='sa'); --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: '; DECLARE @host varchar(1024); SELECT @host=(SELECT TOP 1 master..sys.fn_varbintohexstr(password_hash) FROM sys.sql_logins WHERE name='sa'); --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-
-=== Edge Case SQL Injection Tests ===
-Testing Empty string injection... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Null byte injection... [0;32mPASSED[0m - SQL injection blocked (silently rejected)
-Testing Unicode injection... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Very long injection payload... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-
-=== Subscription ID SQL Injection Tests ===
-Testing Subscription ID injection... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Subscription ID with quotes... [0;32mPASSED[0m - SQL injection blocked (silently rejected)
-
-=== CLOSE Message SQL Injection Tests ===
-Testing CLOSE with injection... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-
-=== Test Results ===
-Total tests: 318
-Passed: [0;32m318[0m
-Failed: [0;31m0[0m
-[0;32m✓ All SQL injection tests passed![0m
-The relay appears to be protected against SQL injection attacks.
-2025-10-11 13:48:30 - \033[0;32m✓ SQL Injection Tests PASSED\033[0m (Duration: 23s)
-2025-10-11 13:48:30 - ==========================================
-2025-10-11 13:48:30 - Running Test Suite: Filter Validation Tests
-2025-10-11 13:48:30 - Description: Input validation for REQ and COUNT messages
-2025-10-11 13:48:30 - ==========================================
-=== C-Relay Filter Validation Tests ===
-Testing against relay at ws://127.0.0.1:8888
-
-Testing Valid REQ message... [0;32mPASSED[0m
-Testing Valid COUNT message... [0;32mPASSED[0m
-
-=== Testing Filter Array Validation ===
-Testing Non-object filter... [0;32mPASSED[0m
-Testing Too many filters... [0;32mPASSED[0m
-
-=== Testing Authors Validation ===
-Testing Invalid author type... [0;32mPASSED[0m
-Testing Invalid author hex... [0;32mPASSED[0m
-Testing Too many authors... [0;32mPASSED[0m
-
-=== Testing IDs Validation ===
-Testing Invalid ID type... [0;32mPASSED[0m
-Testing Invalid ID hex... [0;32mPASSED[0m
-Testing Too many IDs... [0;32mPASSED[0m
-
-=== Testing Kinds Validation ===
-Testing Invalid kind type... [0;32mPASSED[0m
-Testing Negative kind... [0;32mPASSED[0m
-Testing Too large kind... [0;32mPASSED[0m
-Testing Too many kinds... [0;32mPASSED[0m
-
-=== Testing Timestamp Validation ===
-Testing Invalid since type... [0;32mPASSED[0m
-Testing Negative since... [0;32mPASSED[0m
-Testing Invalid until type... [0;32mPASSED[0m
-Testing Negative until... [0;32mPASSED[0m
-
-=== Testing Limit Validation ===
-Testing Invalid limit type... [0;32mPASSED[0m
-Testing Negative limit... [0;32mPASSED[0m
-Testing Too large limit... [0;32mPASSED[0m
-
-=== Testing Search Validation ===
-Testing Invalid search type... [0;32mPASSED[0m
-Testing Search too long... [0;32mPASSED[0m
-Testing Search SQL injection... [0;32mPASSED[0m
-
-=== Testing Tag Filter Validation ===
-Testing Invalid tag filter type... [0;32mPASSED[0m
-Testing Too many tag values... [0;32mPASSED[0m
-Testing Tag value too long... [0;32mPASSED[0m
-
-=== Testing Rate Limiting ===
-Testing rate limiting with malformed requests... [1;33mUNCERTAIN[0m - Rate limiting may not have triggered (this could be normal)
-
-=== Test Results ===
-Total tests: 28
-Passed: [0;32m28[0m
-Failed: [0;31m0[0m
-[0;32mAll tests passed![0m
-2025-10-11 13:48:35 - \033[0;32m✓ Filter Validation Tests PASSED\033[0m (Duration: 5s)
-2025-10-11 13:48:35 - ==========================================
-2025-10-11 13:48:35 - Running Test Suite: Subscription Validation Tests
-2025-10-11 13:48:35 - Description: Subscription ID and message validation
-2025-10-11 13:48:35 - ==========================================
-Testing subscription ID validation fixes...
-Testing malformed subscription IDs...
-Valid ID test: Success
-Testing CLOSE message validation...
-CLOSE valid ID test: Success
-Subscription validation tests completed.
-2025-10-11 13:48:36 - \033[0;32m✓ Subscription Validation Tests PASSED\033[0m (Duration: 1s)
-2025-10-11 13:48:36 - ==========================================
-2025-10-11 13:48:36 - Running Test Suite: Memory Corruption Tests
-2025-10-11 13:48:36 - Description: Buffer overflow and memory safety testing
-2025-10-11 13:48:36 - ==========================================
-==========================================
-C-Relay Memory Corruption Test Suite
-==========================================
-Testing against relay at ws://127.0.0.1:8888
-Note: These tests may cause the relay to crash if vulnerabilities exist
-
-=== Basic Connectivity Test ===
-Testing Basic connectivity... [0;32mPASSED[0m - No memory corruption detected
-
-=== Subscription ID Memory Corruption Tests ===
-Testing Empty subscription ID... [1;33mUNCERTAIN[0m - Expected error but got normal response
-Testing Very long subscription ID (1KB)... [1;33mUNCERTAIN[0m - Expected error but got normal response
-Testing Very long subscription ID (10KB)... [1;33mUNCERTAIN[0m - Expected error but got normal response
-Testing Subscription ID with null bytes... [1;33mUNCERTAIN[0m - Expected error but got normal response
-Testing Subscription ID with special chars... [1;33mUNCERTAIN[0m - Expected error but got normal response
-Testing Unicode subscription ID... [1;33mUNCERTAIN[0m - Expected error but got normal response
-Testing Subscription ID with path traversal... [1;33mUNCERTAIN[0m - Expected error but got normal response
-
-=== Filter Array Memory Corruption Tests ===
-Testing Too many filters (50)... [1;33mUNCERTAIN[0m - Expected error but got normal response
-
-=== Concurrent Access Memory Tests ===
-Testing Concurrent subscription creation... ["EVENT", "concurrent_1760204917502714788", { "id": "b3a2a79b768c304a8ad315a97319e3c6fd9d521844fc9f1e4228c75c453dd882", "pubkey": "aa4fc8665f5696e33db7e1a572e3b0f5b3d615837b0f362dcb1c8068b098c7b4", "created_at": 1760196143, "kind": 30001, "content": "Updated addressable event", "sig": "795671a831de31fbbdd6282585529f274f61bb6e8c974e597560d70989355f24c8ecfe70caf043e8fbc24ce65d9b0d562297c682af958cfcdd2ee137dd9bccb4", "tags": [["d", "test-article"], ["type", "addressable"], ["updated", "true"]] }]
-["EVENT", "concurrent_1760204917502714788", { "id": "b3a2a79b768c304a8ad315a97319e3c6fd9d521844fc9f1e4228c75c453dd882", "pubkey": "aa4fc8665f5696e33db7e1a572e3b0f5b3d615837b0f362dcb1c8068b098c7b4", "created_at": 1760196143, "kind": 30001, "content": "Updated addressable event", "sig": "795671a831de31fbbdd6282585529f274f61bb6e8c974e597560d70989355f24c8ecfe70caf043e8fbc24ce65d9b0d562297c682af958cfcdd2ee137dd9bccb4", "tags": [["d", "test-article"], ["type", "addressable"], ["updated", "true"]] }]
-["EVENT", "concurrent_1760204917502714788", { "id": "b3a2a79b768c304a8ad315a97319e3c6fd9d521844fc9f1e4228c75c453dd882", "pubkey": "aa4fc8665f5696e33db7e1a572e3b0f5b3d615837b0f362dcb1c8068b098c7b4", "created_at": 1760196143, "kind": 30001, "content": "Updated addressable event", "sig": "795671a831de31fbbdd6282585529f274f61bb6e8c974e597560d70989355f24c8ecfe70caf043e8fbc24ce65d9b0d562297c682af958cfcdd2ee137dd9bccb4", "tags": [["d", "test-article"], ["type", "addressable"], ["updated", "true"]] }]
-["EVENT", "concurrent_1760204917502714788", { "id": "b3a2a79b768c304a8ad315a97319e3c6fd9d521844fc9f1e4228c75c453dd882", "pubkey": "aa4fc8665f5696e33db7e1a572e3b0f5b3d615837b0f362dcb1c8068b098c7b4", "created_at": 1760196143, "kind": 30001, "content": "Updated addressable event", "sig": "795671a831de31fbbdd6282585529f274f61bb6e8c974e597560d70989355f24c8ecfe70caf043e8fbc24ce65d9b0d562297c682af958cfcdd2ee137dd9bccb4", "tags": [["d", "test-article"], ["type", "addressable"], ["updated", "true"]] }]
-["EVENT", "concurrent_1760204917502714788", { "id": "b3a2a79b768c304a8ad315a97319e3c6fd9d521844fc9f1e4228c75c453dd882", "pubkey": "aa4fc8665f5696e33db7e1a572e3b0f5b3d615837b0f362dcb1c8068b098c7b4", "created_at": 1760196143, "kind": 30001, "content": "Updated addressable event", "sig": "795671a831de31fbbdd6282585529f274f61bb6e8c974e597560d70989355f24c8ecfe70caf043e8fbc24ce65d9b0d562297c682af958cfcdd2ee137dd9bccb4", "tags": [["d", "test-article"], ["type", "addressable"], ["updated", "true"]] }]
-["EVENT", "concurrent_1760204917502714788", { "id": "b3a2a79b768c304a8ad315a97319e3c6fd9d521844fc9f1e4228c75c453dd882", "pubkey": "aa4fc8665f5696e33db7e1a572e3b0f5b3d615837b0f362dcb1c8068b098c7b4", "created_at": 1760196143, "kind": 30001, "content": "Updated addressable event", "sig": "795671a831de31fbbdd6282585529f274f61bb6e8c974e597560d70989355f24c8ecfe70caf043e8fbc24ce65d9b0d562297c682af958cfcdd2ee137dd9bccb4", "tags": [["d", "test-article"], ["type", "addressable"], ["updated", "true"]] }]
-["EVENT", "concurrent_1760204917502714788", { "id": "b3a2a79b768c304a8ad315a97319e3c6fd9d521844fc9f1e4228c75c453dd882", "pubkey": "aa4fc8665f5696e33db7e1a572e3b0f5b3d615837b0f362dcb1c8068b098c7b4", "created_at": 1760196143, "kind": 30001, "content": "Updated addressable event", "sig": "795671a831de31fbbdd6282585529f274f61bb6e8c974e597560d70989355f24c8ecfe70caf043e8fbc24ce65d9b0d562297c682af958cfcdd2ee137dd9bccb4", "tags": [["d", "test-article"], ["type", "addressable"], ["updated", "true"]] }]
-["EVENT", "concurrent_1760204917502714788", { "id": "b3a2a79b768c304a8ad315a97319e3c6fd9d521844fc9f1e4228c75c453dd882", "pubkey": "aa4fc8665f5696e33db7e1a572e3b0f5b3d615837b0f362dcb1c8068b098c7b4", "created_at": 1760196143, "kind": 30001, "content": "Updated addressable event", "sig": "795671a831de31fbbdd6282585529f274f61bb6e8c974e597560d70989355f24c8ecfe70caf043e8fbc24ce65d9b0d562297c682af958cfcdd2ee137dd9bccb4", "tags": [["d", "test-article"], ["type", "addressable"], ["updated", "true"]] }]
-["EVENT", "concurrent_1760204917502714788", { "id": "b3a2a79b768c304a8ad315a97319e3c6fd9d521844fc9f1e4228c75c453dd882", "pubkey": "aa4fc8665f5696e33db7e1a572e3b0f5b3d615837b0f362dcb1c8068b098c7b4", "created_at": 1760196143, "kind": 30001, "content": "Updated addressable event", "sig": "795671a831de31fbbdd6282585529f274f61bb6e8c974e597560d70989355f24c8ecfe70caf043e8fbc24ce65d9b0d562297c682af958cfcdd2ee137dd9bccb4", "tags": [["d", "test-article"], ["type", "addressable"], ["updated", "true"]] }]
-["EVENT", "concurrent_1760204917502714788", { "id": "b3a2a79b768c304a8ad315a97319e3c6fd9d521844fc9f1e4228c75c453dd882", "pubkey": "aa4fc8665f5696e33db7e1a572e3b0f5b3d615837b0f362dcb1c8068b098c7b4", "created_at": 1760196143, "kind": 30001, "content": "Updated addressable event", "sig": "795671a831de31fbbdd6282585529f274f61bb6e8c974e597560d70989355f24c8ecfe70caf043e8fbc24ce65d9b0d562297c682af958cfcdd2ee137dd9bccb4", "tags": [["d", "test-article"], ["type", "addressable"], ["updated", "true"]] }]
-[0;32mPASSED[0m - Concurrent access handled safely
-Testing Concurrent CLOSE operations...
-
-
-
-
-
-
-
-
-
-[0;32mPASSED[0m - Concurrent access handled safely
-
-=== Malformed JSON Memory Tests ===
-Testing Unclosed JSON object... [1;33mUNCERTAIN[0m - Expected error but got normal response
-Testing Mismatched brackets... [1;33mUNCERTAIN[0m - Expected error but got normal response
-Testing Extra closing brackets... [1;33mUNCERTAIN[0m - Expected error but got normal response
-Testing Null bytes in JSON... [1;33mUNCERTAIN[0m - Expected error but got normal response
-
-=== Large Message Memory Tests ===
-Testing Very large filter array... [1;33mUNCERTAIN[0m - Expected error but got normal response
-Testing Very long search term... [1;33mUNCERTAIN[0m - Expected error but got normal response
-
-=== Test Results ===
-Total tests: 17
-Passed: [0;32m17[0m
-Failed: [0;31m0[0m
-[0;32m✓ All memory corruption tests passed![0m
-The relay appears to handle memory safely.
-2025-10-11 13:48:38 - \033[0;32m✓ Memory Corruption Tests PASSED\033[0m (Duration: 2s)
-2025-10-11 13:48:38 - ==========================================
-2025-10-11 13:48:38 - Running Test Suite: Input Validation Tests
-2025-10-11 13:48:38 - Description: Comprehensive input boundary testing
-2025-10-11 13:48:38 - ==========================================
-==========================================
-C-Relay Input Validation Test Suite
-==========================================
-Testing against relay at ws://127.0.0.1:8888
-
-=== Basic Connectivity Test ===
-Testing Basic connectivity... [0;32mPASSED[0m - Input accepted correctly
-
-=== Message Type Validation ===
-Testing Invalid message type - string... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Invalid message type - number... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Invalid message type - null... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Invalid message type - object... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Empty message type... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Very long message type... [0;32mPASSED[0m - Invalid input properly rejected
-
-=== Message Structure Validation ===
-Testing Too few arguments... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Too many arguments... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Non-array message... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Empty array... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Nested arrays incorrectly... [0;32mPASSED[0m - Invalid input properly rejected
-
-=== Subscription ID Boundary Tests ===
-Testing Valid subscription ID... [0;32mPASSED[0m - Input accepted correctly
-Testing Empty subscription ID... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Subscription ID with spaces... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Subscription ID with newlines... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Subscription ID with tabs... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Subscription ID with control chars... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Unicode subscription ID... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Very long subscription ID... [0;32mPASSED[0m - Invalid input properly rejected
-
-=== Filter Object Validation ===
-Testing Valid empty filter... [0;32mPASSED[0m - Input accepted correctly
-Testing Non-object filter... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Null filter... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Array filter... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Filter with invalid keys... [0;32mPASSED[0m - Input accepted correctly
-
-=== Authors Field Validation ===
-Testing Valid authors array... [0;32mPASSED[0m - Input accepted correctly
-Testing Empty authors array... [0;32mPASSED[0m - Input accepted correctly
-Testing Non-array authors... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Invalid hex in authors... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Short pubkey in authors... [0;32mPASSED[0m - Invalid input properly rejected
-
-=== IDs Field Validation ===
-Testing Valid ids array... [0;32mPASSED[0m - Input accepted correctly
-Testing Empty ids array... [0;32mPASSED[0m - Input accepted correctly
-Testing Non-array ids... [0;32mPASSED[0m - Invalid input properly rejected
-
-=== Kinds Field Validation ===
-Testing Valid kinds array... [0;32mPASSED[0m - Input accepted correctly
-Testing Empty kinds array... [0;32mPASSED[0m - Input accepted correctly
-Testing Non-array kinds... [0;32mPASSED[0m - Invalid input properly rejected
-Testing String in kinds... [0;32mPASSED[0m - Invalid input properly rejected
-
-=== Timestamp Field Validation ===
-Testing Valid since timestamp... [0;32mPASSED[0m - Input accepted correctly
-Testing Valid until timestamp... [0;32mPASSED[0m - Input accepted correctly
-Testing String since timestamp... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Negative timestamp... [0;32mPASSED[0m - Invalid input properly rejected
-
-=== Limit Field Validation ===
-Testing Valid limit... [0;32mPASSED[0m - Input accepted correctly
-Testing Zero limit... [0;32mPASSED[0m - Input accepted correctly
-Testing String limit... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Negative limit... [0;32mPASSED[0m - Invalid input properly rejected
-
-=== Multiple Filters ===
-Testing Two valid filters... [0;32mPASSED[0m - Input accepted correctly
-Testing Many filters... [0;32mPASSED[0m - Input accepted correctly
-
-=== Test Results ===
-Total tests: 47
-Passed: 47
-Failed: 0
-[0;32m✓ All input validation tests passed![0m
-The relay properly validates input.
-2025-10-11 13:48:42 - \033[0;32m✓ Input Validation Tests PASSED\033[0m (Duration: 4s)
-2025-10-11 13:48:42 -
-2025-10-11 13:48:42 - \033[0;34m=== PERFORMANCE TEST SUITES ===\033[0m
-2025-10-11 13:48:42 - ==========================================
-2025-10-11 13:48:42 - Running Test Suite: Subscription Limit Tests
-2025-10-11 13:48:42 - Description: Subscription limit enforcement testing
-2025-10-11 13:48:42 - ==========================================
-=== Subscription Limit Test ===
-[INFO] Testing relay at: ws://127.0.0.1:8888
-[INFO] Note: This test assumes default subscription limits (max 25 per client)
-
-=== Test 1: Basic Connectivity ===
-[INFO] Testing basic WebSocket connection...
-[PASS] Basic connectivity works
-
-=== Test 2: Subscription Limit Enforcement ===
-[INFO] Testing subscription limits by creating multiple subscriptions...
-[INFO] Creating multiple subscriptions within a single connection...
-[INFO] Hit subscription limit at subscription 26
-[PASS] Subscription limit enforcement working (limit hit after 25 subscriptions)
-
-=== Test Complete ===
-2025-10-11 13:48:42 - \033[0;32m✓ Subscription Limit Tests PASSED\033[0m (Duration: 0s)
-2025-10-11 13:48:42 - ==========================================
-2025-10-11 13:48:42 - Running Test Suite: Load Testing
-2025-10-11 13:48:42 - Description: High concurrent connection testing
-2025-10-11 13:48:42 - ==========================================
-==========================================
-C-Relay Load Testing Suite
-==========================================
-Testing against relay at ws://127.0.0.1:8888
-
-=== Basic Connectivity Test ===
-[0;31m✗ Cannot connect to relay. Aborting tests.[0m
-2025-10-11 13:48:47 - \033[0;31m✗ Load Testing FAILED\033[0m (Duration: 5s)
diff --git a/tests/test_results_20251011_141134.log b/tests/test_results_20251011_141134.log
deleted file mode 100644
index 1bc39d9..0000000
--- a/tests/test_results_20251011_141134.log
+++ /dev/null
@@ -1,728 +0,0 @@
-2025-10-11 14:11:34 - ==========================================
-2025-10-11 14:11:34 - C-Relay Comprehensive Test Suite Runner
-2025-10-11 14:11:34 - ==========================================
-2025-10-11 14:11:34 - Relay URL: ws://127.0.0.1:8888
-2025-10-11 14:11:34 - Log file: test_results_20251011_141134.log
-2025-10-11 14:11:34 - Report file: test_report_20251011_141134.html
-2025-10-11 14:11:34 -
-2025-10-11 14:11:34 - Checking relay status at ws://127.0.0.1:8888...
-2025-10-11 14:11:34 - \033[0;32m✓ Relay HTTP endpoint is accessible\033[0m
-2025-10-11 14:11:34 -
-2025-10-11 14:11:34 - Starting comprehensive test execution...
-2025-10-11 14:11:34 -
-2025-10-11 14:11:34 - \033[0;34m=== SECURITY TEST SUITES ===\033[0m
-2025-10-11 14:11:34 - ==========================================
-2025-10-11 14:11:34 - Running Test Suite: SQL Injection Tests
-2025-10-11 14:11:34 - Description: Comprehensive SQL injection vulnerability testing
-2025-10-11 14:11:34 - ==========================================
-==========================================
-C-Relay SQL Injection Test Suite
-==========================================
-Testing against relay at ws://127.0.0.1:8888
-
-=== Basic Connectivity Test ===
-Testing Basic connectivity... [0;32mPASSED[0m - Valid query works
-
-=== Authors Filter SQL Injection Tests ===
-Testing Authors filter with payload: '; DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: 1' OR '1'='1... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: 1; SELECT * FROM sqlite_master; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: ' OR 1=1 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: admin'--... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: 1' UNION SELECT password FROM users --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: 1' AND SLEEP(5) --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: 1' AND 1=1 WAITFOR DELAY '0:0:5' --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: 1' AND 1=CAST((SELECT version()) AS INT) --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: 1' AND 1=CONVERT(INT, (SELECT @@VERSION)) --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: ' UNION SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: ' UNION SELECT 1,2,3 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: ' UNION ALL SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: '; SELECT * FROM events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: '; DELETE FROM events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: '; UPDATE events SET content='hacked' WHERE 1=1; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: /*... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: */... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: /**/... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: #... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: 0x53514C5F494E4A454354494F4E... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: J1NSTCBJTkpFQ1RJT04gLS0=... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: '))); DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: ')) UNION SELECT NULL; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: ' AND 1=1 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: ' AND 1=2 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: ' AND (SELECT COUNT(*) FROM events) > 0 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: '; EXEC master..xp_cmdshell 'net user' --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Authors filter with payload: '; DECLARE @host varchar(1024); SELECT @host=(SELECT TOP 1 master..sys.fn_varbintohexstr(password_hash) FROM sys.sql_logins WHERE name='sa'); --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-
-=== IDs Filter SQL Injection Tests ===
-Testing IDs filter with payload: '; DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: 1' OR '1'='1... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: 1; SELECT * FROM sqlite_master; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: ' OR 1=1 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: admin'--... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: 1' UNION SELECT password FROM users --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: 1' AND SLEEP(5) --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: 1' AND 1=1 WAITFOR DELAY '0:0:5' --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: 1' AND 1=CAST((SELECT version()) AS INT) --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: 1' AND 1=CONVERT(INT, (SELECT @@VERSION)) --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: ' UNION SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: ' UNION SELECT 1,2,3 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: ' UNION ALL SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: '; SELECT * FROM events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: '; DELETE FROM events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: '; UPDATE events SET content='hacked' WHERE 1=1; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: /*... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: */... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: /**/... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: #... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: 0x53514C5F494E4A454354494F4E... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: J1NSTCBJTkpFQ1RJT04gLS0=... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: '))); DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: ')) UNION SELECT NULL; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: ' AND 1=1 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: ' AND 1=2 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: ' AND (SELECT COUNT(*) FROM events) > 0 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: '; EXEC master..xp_cmdshell 'net user' --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing IDs filter with payload: '; DECLARE @host varchar(1024); SELECT @host=(SELECT TOP 1 master..sys.fn_varbintohexstr(password_hash) FROM sys.sql_logins WHERE name='sa'); --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-
-=== Kinds Filter SQL Injection Tests ===
-Testing Kinds filter with string injection... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Kinds filter with negative value... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Kinds filter with very large value... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-
-=== Search Filter SQL Injection Tests ===
-Testing Search filter with payload: '; DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: 1' OR '1'='1... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing Search filter with payload: 1; SELECT * FROM sqlite_master; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: ' OR 1=1 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: admin'--... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: 1' UNION SELECT password FROM users --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: 1' AND SLEEP(5) --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: 1' AND 1=1 WAITFOR DELAY '0:0:5' --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: 1' AND 1=CAST((SELECT version()) AS INT) --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: 1' AND 1=CONVERT(INT, (SELECT @@VERSION)) --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: ' UNION SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: ' UNION SELECT 1,2,3 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: ' UNION ALL SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: '; SELECT * FROM events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: '; DELETE FROM events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: '; UPDATE events SET content='hacked' WHERE 1=1; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: /*... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: */... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: /**/... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: #... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing Search filter with payload: 0x53514C5F494E4A454354494F4E... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing Search filter with payload: J1NSTCBJTkpFQ1RJT04gLS0=... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing Search filter with payload: '))); DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: ')) UNION SELECT NULL; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: ' AND 1=1 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: ' AND 1=2 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: ' AND (SELECT COUNT(*) FROM events) > 0 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: '; EXEC master..xp_cmdshell 'net user' --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Search filter with payload: '; DECLARE @host varchar(1024); SELECT @host=(SELECT TOP 1 master..sys.fn_varbintohexstr(password_hash) FROM sys.sql_logins WHERE name='sa'); --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-
-=== Tag Filter SQL Injection Tests ===
-Testing #e tag filter with payload: '; DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: 1' OR '1'='1... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: 1; SELECT * FROM sqlite_master; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: ' OR 1=1 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: admin'--... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: 1' UNION SELECT password FROM users --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: 1' AND SLEEP(5) --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: 1' AND 1=1 WAITFOR DELAY '0:0:5' --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: 1' AND 1=CAST((SELECT version()) AS INT) --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: 1' AND 1=CONVERT(INT, (SELECT @@VERSION)) --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: ' UNION SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: ' UNION SELECT 1,2,3 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: ' UNION ALL SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: '; SELECT * FROM events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: '; DELETE FROM events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: '; UPDATE events SET content='hacked' WHERE 1=1; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: /*... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: */... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: /**/... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: #... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: 0x53514C5F494E4A454354494F4E... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: J1NSTCBJTkpFQ1RJT04gLS0=... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: '))); DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: ')) UNION SELECT NULL; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: ' AND 1=1 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: ' AND 1=2 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: ' AND (SELECT COUNT(*) FROM events) > 0 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: '; EXEC master..xp_cmdshell 'net user' --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #e tag filter with payload: '; DECLARE @host varchar(1024); SELECT @host=(SELECT TOP 1 master..sys.fn_varbintohexstr(password_hash) FROM sys.sql_logins WHERE name='sa'); --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: '; DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: 1' OR '1'='1... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: 1; SELECT * FROM sqlite_master; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: ' OR 1=1 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: admin'--... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: 1' UNION SELECT password FROM users --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: 1' AND SLEEP(5) --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: 1' AND 1=1 WAITFOR DELAY '0:0:5' --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: 1' AND 1=CAST((SELECT version()) AS INT) --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: 1' AND 1=CONVERT(INT, (SELECT @@VERSION)) --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: ' UNION SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: ' UNION SELECT 1,2,3 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: ' UNION ALL SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: '; SELECT * FROM events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: '; DELETE FROM events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: '; UPDATE events SET content='hacked' WHERE 1=1; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: /*... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: */... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: /**/... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: #... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: 0x53514C5F494E4A454354494F4E... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: J1NSTCBJTkpFQ1RJT04gLS0=... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: '))); DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: ')) UNION SELECT NULL; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: ' AND 1=1 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: ' AND 1=2 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: ' AND (SELECT COUNT(*) FROM events) > 0 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: '; EXEC master..xp_cmdshell 'net user' --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #p tag filter with payload: '; DECLARE @host varchar(1024); SELECT @host=(SELECT TOP 1 master..sys.fn_varbintohexstr(password_hash) FROM sys.sql_logins WHERE name='sa'); --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: '; DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: 1' OR '1'='1... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: 1; SELECT * FROM sqlite_master; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: ' OR 1=1 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: admin'--... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: 1' UNION SELECT password FROM users --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: 1' AND SLEEP(5) --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: 1' AND 1=1 WAITFOR DELAY '0:0:5' --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: 1' AND 1=CAST((SELECT version()) AS INT) --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: 1' AND 1=CONVERT(INT, (SELECT @@VERSION)) --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: ' UNION SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: ' UNION SELECT 1,2,3 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: ' UNION ALL SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: '; SELECT * FROM events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: '; DELETE FROM events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: '; UPDATE events SET content='hacked' WHERE 1=1; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: /*... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: */... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: /**/... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: #... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: 0x53514C5F494E4A454354494F4E... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: J1NSTCBJTkpFQ1RJT04gLS0=... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: '))); DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: ')) UNION SELECT NULL; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: ' AND 1=1 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: ' AND 1=2 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: ' AND (SELECT COUNT(*) FROM events) > 0 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: '; EXEC master..xp_cmdshell 'net user' --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #t tag filter with payload: '; DECLARE @host varchar(1024); SELECT @host=(SELECT TOP 1 master..sys.fn_varbintohexstr(password_hash) FROM sys.sql_logins WHERE name='sa'); --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: '; DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: 1' OR '1'='1... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: 1; SELECT * FROM sqlite_master; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: ' OR 1=1 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: admin'--... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: 1' UNION SELECT password FROM users --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: 1' AND SLEEP(5) --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: 1' AND 1=1 WAITFOR DELAY '0:0:5' --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: 1' AND 1=CAST((SELECT version()) AS INT) --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: 1' AND 1=CONVERT(INT, (SELECT @@VERSION)) --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: ' UNION SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: ' UNION SELECT 1,2,3 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: ' UNION ALL SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: '; SELECT * FROM events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: '; DELETE FROM events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: '; UPDATE events SET content='hacked' WHERE 1=1; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: /*... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: */... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: /**/... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: #... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: 0x53514C5F494E4A454354494F4E... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: J1NSTCBJTkpFQ1RJT04gLS0=... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: '))); DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: ')) UNION SELECT NULL; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: ' AND 1=1 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: ' AND 1=2 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: ' AND (SELECT COUNT(*) FROM events) > 0 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: '; EXEC master..xp_cmdshell 'net user' --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #r tag filter with payload: '; DECLARE @host varchar(1024); SELECT @host=(SELECT TOP 1 master..sys.fn_varbintohexstr(password_hash) FROM sys.sql_logins WHERE name='sa'); --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: '; DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: 1' OR '1'='1... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: 1; SELECT * FROM sqlite_master; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: ' OR 1=1 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: admin'--... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: 1' UNION SELECT password FROM users --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: 1' AND SLEEP(5) --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: 1' AND 1=1 WAITFOR DELAY '0:0:5' --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: 1' AND 1=CAST((SELECT version()) AS INT) --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: 1' AND 1=CONVERT(INT, (SELECT @@VERSION)) --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: ' UNION SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: ' UNION SELECT 1,2,3 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: ' UNION ALL SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: '; SELECT * FROM events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: '; DELETE FROM events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: '; UPDATE events SET content='hacked' WHERE 1=1; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: /*... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: */... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: /**/... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: #... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: 0x53514C5F494E4A454354494F4E... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: J1NSTCBJTkpFQ1RJT04gLS0=... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: '))); DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: ')) UNION SELECT NULL; --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: ' AND 1=1 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: ' AND 1=2 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: ' AND (SELECT COUNT(*) FROM events) > 0 --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: '; EXEC master..xp_cmdshell 'net user' --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing #d tag filter with payload: '; DECLARE @host varchar(1024); SELECT @host=(SELECT TOP 1 master..sys.fn_varbintohexstr(password_hash) FROM sys.sql_logins WHERE name='sa'); --... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-
-=== Timestamp Filter SQL Injection Tests ===
-Testing Since parameter injection... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Until parameter injection... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-
-=== Limit Parameter SQL Injection Tests ===
-Testing Limit parameter injection... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Limit with UNION... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-
-=== Complex Multi-Filter SQL Injection Tests ===
-Testing Multi-filter with authors injection... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Multi-filter with search injection... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Multi-filter with tag injection... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-
-=== COUNT Message SQL Injection Tests ===
-Testing COUNT with authors payload: '; DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: '; DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: 1' OR '1'='1... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: 1' OR '1'='1... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing COUNT with authors payload: 1; SELECT * FROM sqlite_master; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: 1; SELECT * FROM sqlite_master; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: ' OR 1=1 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: ' OR 1=1 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: admin'--... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: admin'--... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: 1' UNION SELECT password FROM users --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: 1' UNION SELECT password FROM users --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: 1' AND SLEEP(5) --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: 1' AND SLEEP(5) --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: 1' AND 1=1 WAITFOR DELAY '0:0:5' --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: 1' AND 1=1 WAITFOR DELAY '0:0:5' --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: 1' AND 1=CAST((SELECT version()) AS INT) --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: 1' AND 1=CAST((SELECT version()) AS INT) --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: 1' AND 1=CONVERT(INT, (SELECT @@VERSION)) --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: 1' AND 1=CONVERT(INT, (SELECT @@VERSION)) --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: ' UNION SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: ' UNION SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: ' UNION SELECT 1,2,3 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: ' UNION SELECT 1,2,3 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: ' UNION ALL SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: ' UNION ALL SELECT NULL,NULL,NULL --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: '; SELECT * FROM events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: '; SELECT * FROM events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: '; DELETE FROM events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: '; DELETE FROM events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: '; UPDATE events SET content='hacked' WHERE 1=1; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: '; UPDATE events SET content='hacked' WHERE 1=1; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: /*... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: /*... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: */... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: */... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: /**/... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: /**/... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: #... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: #... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing COUNT with authors payload: 0x53514C5F494E4A454354494F4E... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: 0x53514C5F494E4A454354494F4E... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing COUNT with authors payload: J1NSTCBJTkpFQ1RJT04gLS0=... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: J1NSTCBJTkpFQ1RJT04gLS0=... [0;32mPASSED[0m - SQL injection blocked (query sanitized)
-Testing COUNT with authors payload: '))); DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: '))); DROP TABLE events; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: ')) UNION SELECT NULL; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: ')) UNION SELECT NULL; --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: ' AND 1=1 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: ' AND 1=1 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: ' AND 1=2 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: ' AND 1=2 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: ' AND (SELECT COUNT(*) FROM events) > 0 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: ' AND (SELECT COUNT(*) FROM events) > 0 --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: '; EXEC master..xp_cmdshell 'net user' --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: '; EXEC master..xp_cmdshell 'net user' --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with authors payload: '; DECLARE @host varchar(1024); SELECT @host=(SELECT TOP 1 master..sys.fn_varbintohexstr(password_hash) FROM sys.sql_logins WHERE name='sa'); --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing COUNT with search payload: '; DECLARE @host varchar(1024); SELECT @host=(SELECT TOP 1 master..sys.fn_varbintohexstr(password_hash) FROM sys.sql_logins WHERE name='sa'); --... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-
-=== Edge Case SQL Injection Tests ===
-Testing Empty string injection... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Null byte injection... [0;32mPASSED[0m - SQL injection blocked (silently rejected)
-Testing Unicode injection... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Very long injection payload... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-
-=== Subscription ID SQL Injection Tests ===
-Testing Subscription ID injection... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-Testing Subscription ID with quotes... [0;32mPASSED[0m - SQL injection blocked (silently rejected)
-
-=== CLOSE Message SQL Injection Tests ===
-Testing CLOSE with injection... [0;32mPASSED[0m - SQL injection blocked (rejected with error)
-
-=== Test Results ===
-Total tests: 318
-Passed: [0;32m318[0m
-Failed: [0;31m0[0m
-[0;32m✓ All SQL injection tests passed![0m
-The relay appears to be protected against SQL injection attacks.
-2025-10-11 14:11:56 - \033[0;32m✓ SQL Injection Tests PASSED\033[0m (Duration: 22s)
-2025-10-11 14:11:56 - ==========================================
-2025-10-11 14:11:56 - Running Test Suite: Filter Validation Tests
-2025-10-11 14:11:56 - Description: Input validation for REQ and COUNT messages
-2025-10-11 14:11:56 - ==========================================
-=== C-Relay Filter Validation Tests ===
-Testing against relay at ws://127.0.0.1:8888
-
-Testing Valid REQ message... [0;32mPASSED[0m
-Testing Valid COUNT message... [0;32mPASSED[0m
-
-=== Testing Filter Array Validation ===
-Testing Non-object filter... [0;32mPASSED[0m
-Testing Too many filters... [0;32mPASSED[0m
-
-=== Testing Authors Validation ===
-Testing Invalid author type... [0;32mPASSED[0m
-Testing Invalid author hex... [0;32mPASSED[0m
-Testing Too many authors... [0;32mPASSED[0m
-
-=== Testing IDs Validation ===
-Testing Invalid ID type... [0;32mPASSED[0m
-Testing Invalid ID hex... [0;32mPASSED[0m
-Testing Too many IDs... [0;32mPASSED[0m
-
-=== Testing Kinds Validation ===
-Testing Invalid kind type... [0;32mPASSED[0m
-Testing Negative kind... [0;32mPASSED[0m
-Testing Too large kind... [0;32mPASSED[0m
-Testing Too many kinds... [0;32mPASSED[0m
-
-=== Testing Timestamp Validation ===
-Testing Invalid since type... [0;32mPASSED[0m
-Testing Negative since... [0;32mPASSED[0m
-Testing Invalid until type... [0;32mPASSED[0m
-Testing Negative until... [0;32mPASSED[0m
-
-=== Testing Limit Validation ===
-Testing Invalid limit type... [0;32mPASSED[0m
-Testing Negative limit... [0;32mPASSED[0m
-Testing Too large limit... [0;32mPASSED[0m
-
-=== Testing Search Validation ===
-Testing Invalid search type... [0;32mPASSED[0m
-Testing Search too long... [0;32mPASSED[0m
-Testing Search SQL injection... [0;32mPASSED[0m
-
-=== Testing Tag Filter Validation ===
-Testing Invalid tag filter type... [0;32mPASSED[0m
-Testing Too many tag values... [0;32mPASSED[0m
-Testing Tag value too long... [0;32mPASSED[0m
-
-=== Testing Rate Limiting ===
-Testing rate limiting with malformed requests... [1;33mUNCERTAIN[0m - Rate limiting may not have triggered (this could be normal)
-
-=== Test Results ===
-Total tests: 28
-Passed: [0;32m28[0m
-Failed: [0;31m0[0m
-[0;32mAll tests passed![0m
-2025-10-11 14:12:02 - \033[0;32m✓ Filter Validation Tests PASSED\033[0m (Duration: 6s)
-2025-10-11 14:12:02 - ==========================================
-2025-10-11 14:12:02 - Running Test Suite: Subscription Validation Tests
-2025-10-11 14:12:02 - Description: Subscription ID and message validation
-2025-10-11 14:12:02 - ==========================================
-Testing subscription ID validation fixes...
-Testing malformed subscription IDs...
-Valid ID test: Success
-Testing CLOSE message validation...
-CLOSE valid ID test: Success
-Subscription validation tests completed.
-2025-10-11 14:12:02 - \033[0;32m✓ Subscription Validation Tests PASSED\033[0m (Duration: 0s)
-2025-10-11 14:12:02 - ==========================================
-2025-10-11 14:12:02 - Running Test Suite: Memory Corruption Tests
-2025-10-11 14:12:02 - Description: Buffer overflow and memory safety testing
-2025-10-11 14:12:02 - ==========================================
-==========================================
-C-Relay Memory Corruption Test Suite
-==========================================
-Testing against relay at ws://127.0.0.1:8888
-Note: These tests may cause the relay to crash if vulnerabilities exist
-
-=== Basic Connectivity Test ===
-Testing Basic connectivity... [0;32mPASSED[0m - No memory corruption detected
-
-=== Subscription ID Memory Corruption Tests ===
-Testing Empty subscription ID... [1;33mUNCERTAIN[0m - Expected error but got normal response
-Testing Very long subscription ID (1KB)... [1;33mUNCERTAIN[0m - Expected error but got normal response
-Testing Very long subscription ID (10KB)... [1;33mUNCERTAIN[0m - Expected error but got normal response
-Testing Subscription ID with null bytes... [1;33mUNCERTAIN[0m - Expected error but got normal response
-Testing Subscription ID with special chars... [1;33mUNCERTAIN[0m - Expected error but got normal response
-Testing Unicode subscription ID... [1;33mUNCERTAIN[0m - Expected error but got normal response
-Testing Subscription ID with path traversal... [1;33mUNCERTAIN[0m - Expected error but got normal response
-
-=== Filter Array Memory Corruption Tests ===
-Testing Too many filters (50)... [1;33mUNCERTAIN[0m - Expected error but got normal response
-
-=== Concurrent Access Memory Tests ===
-Testing Concurrent subscription creation... ["EVENT", "concurrent_1760206323991056473", { "id": "b3a2a79b768c304a8ad315a97319e3c6fd9d521844fc9f1e4228c75c453dd882", "pubkey": "aa4fc8665f5696e33db7e1a572e3b0f5b3d615837b0f362dcb1c8068b098c7b4", "created_at": 1760196143, "kind": 30001, "content": "Updated addressable event", "sig": "795671a831de31fbbdd6282585529f274f61bb6e8c974e597560d70989355f24c8ecfe70caf043e8fbc24ce65d9b0d562297c682af958cfcdd2ee137dd9bccb4", "tags": [["d", "test-article"], ["type", "addressable"], ["updated", "true"]] }]
-["EVENT", "concurrent_1760206323991056473", { "id": "b3a2a79b768c304a8ad315a97319e3c6fd9d521844fc9f1e4228c75c453dd882", "pubkey": "aa4fc8665f5696e33db7e1a572e3b0f5b3d615837b0f362dcb1c8068b098c7b4", "created_at": 1760196143, "kind": 30001, "content": "Updated addressable event", "sig": "795671a831de31fbbdd6282585529f274f61bb6e8c974e597560d70989355f24c8ecfe70caf043e8fbc24ce65d9b0d562297c682af958cfcdd2ee137dd9bccb4", "tags": [["d", "test-article"], ["type", "addressable"], ["updated", "true"]] }]
-["EVENT", "concurrent_1760206323991056473", { "id": "b3a2a79b768c304a8ad315a97319e3c6fd9d521844fc9f1e4228c75c453dd882", "pubkey": "aa4fc8665f5696e33db7e1a572e3b0f5b3d615837b0f362dcb1c8068b098c7b4", "created_at": 1760196143, "kind": 30001, "content": "Updated addressable event", "sig": "795671a831de31fbbdd6282585529f274f61bb6e8c974e597560d70989355f24c8ecfe70caf043e8fbc24ce65d9b0d562297c682af958cfcdd2ee137dd9bccb4", "tags": [["d", "test-article"], ["type", "addressable"], ["updated", "true"]] }]
-["EVENT", "concurrent_1760206323991056473", { "id": "b3a2a79b768c304a8ad315a97319e3c6fd9d521844fc9f1e4228c75c453dd882", "pubkey": "aa4fc8665f5696e33db7e1a572e3b0f5b3d615837b0f362dcb1c8068b098c7b4", "created_at": 1760196143, "kind": 30001, "content": "Updated addressable event", "sig": "795671a831de31fbbdd6282585529f274f61bb6e8c974e597560d70989355f24c8ecfe70caf043e8fbc24ce65d9b0d562297c682af958cfcdd2ee137dd9bccb4", "tags": [["d", "test-article"], ["type", "addressable"], ["updated", "true"]] }]
-["EVENT", "concurrent_1760206323991056473", { "id": "b3a2a79b768c304a8ad315a97319e3c6fd9d521844fc9f1e4228c75c453dd882", "pubkey": "aa4fc8665f5696e33db7e1a572e3b0f5b3d615837b0f362dcb1c8068b098c7b4", "created_at": 1760196143, "kind": 30001, "content": "Updated addressable event", "sig": "795671a831de31fbbdd6282585529f274f61bb6e8c974e597560d70989355f24c8ecfe70caf043e8fbc24ce65d9b0d562297c682af958cfcdd2ee137dd9bccb4", "tags": [["d", "test-article"], ["type", "addressable"], ["updated", "true"]] }]
-["EVENT", "concurrent_1760206323991056473", { "id": "b3a2a79b768c304a8ad315a97319e3c6fd9d521844fc9f1e4228c75c453dd882", "pubkey": "aa4fc8665f5696e33db7e1a572e3b0f5b3d615837b0f362dcb1c8068b098c7b4", "created_at": 1760196143, "kind": 30001, "content": "Updated addressable event", "sig": "795671a831de31fbbdd6282585529f274f61bb6e8c974e597560d70989355f24c8ecfe70caf043e8fbc24ce65d9b0d562297c682af958cfcdd2ee137dd9bccb4", "tags": [["d", "test-article"], ["type", "addressable"], ["updated", "true"]] }]
-["EVENT", "concurrent_1760206323991056473", { "id": "b3a2a79b768c304a8ad315a97319e3c6fd9d521844fc9f1e4228c75c453dd882", "pubkey": "aa4fc8665f5696e33db7e1a572e3b0f5b3d615837b0f362dcb1c8068b098c7b4", "created_at": 1760196143, "kind": 30001, "content": "Updated addressable event", "sig": "795671a831de31fbbdd6282585529f274f61bb6e8c974e597560d70989355f24c8ecfe70caf043e8fbc24ce65d9b0d562297c682af958cfcdd2ee137dd9bccb4", "tags": [["d", "test-article"], ["type", "addressable"], ["updated", "true"]] }]
-["EVENT", "concurrent_1760206323991056473", { "id": "b3a2a79b768c304a8ad315a97319e3c6fd9d521844fc9f1e4228c75c453dd882", "pubkey": "aa4fc8665f5696e33db7e1a572e3b0f5b3d615837b0f362dcb1c8068b098c7b4", "created_at": 1760196143, "kind": 30001, "content": "Updated addressable event", "sig": "795671a831de31fbbdd6282585529f274f61bb6e8c974e597560d70989355f24c8ecfe70caf043e8fbc24ce65d9b0d562297c682af958cfcdd2ee137dd9bccb4", "tags": [["d", "test-article"], ["type", "addressable"], ["updated", "true"]] }]
-["EVENT", "concurrent_1760206323991056473", { "id": "b3a2a79b768c304a8ad315a97319e3c6fd9d521844fc9f1e4228c75c453dd882", "pubkey": "aa4fc8665f5696e33db7e1a572e3b0f5b3d615837b0f362dcb1c8068b098c7b4", "created_at": 1760196143, "kind": 30001, "content": "Updated addressable event", "sig": "795671a831de31fbbdd6282585529f274f61bb6e8c974e597560d70989355f24c8ecfe70caf043e8fbc24ce65d9b0d562297c682af958cfcdd2ee137dd9bccb4", "tags": [["d", "test-article"], ["type", "addressable"], ["updated", "true"]] }]
-["EVENT", "concurrent_1760206323991056473", { "id": "b3a2a79b768c304a8ad315a97319e3c6fd9d521844fc9f1e4228c75c453dd882", "pubkey": "aa4fc8665f5696e33db7e1a572e3b0f5b3d615837b0f362dcb1c8068b098c7b4", "created_at": 1760196143, "kind": 30001, "content": "Updated addressable event", "sig": "795671a831de31fbbdd6282585529f274f61bb6e8c974e597560d70989355f24c8ecfe70caf043e8fbc24ce65d9b0d562297c682af958cfcdd2ee137dd9bccb4", "tags": [["d", "test-article"], ["type", "addressable"], ["updated", "true"]] }]
-[0;32mPASSED[0m - Concurrent access handled safely
-Testing Concurrent CLOSE operations...
-
-
-
-
-
-
-
-
-
-[0;32mPASSED[0m - Concurrent access handled safely
-
-=== Malformed JSON Memory Tests ===
-Testing Unclosed JSON object... [1;33mUNCERTAIN[0m - Expected error but got normal response
-Testing Mismatched brackets... [1;33mUNCERTAIN[0m - Expected error but got normal response
-Testing Extra closing brackets... [1;33mUNCERTAIN[0m - Expected error but got normal response
-Testing Null bytes in JSON... [1;33mUNCERTAIN[0m - Expected error but got normal response
-
-=== Large Message Memory Tests ===
-Testing Very large filter array... [1;33mUNCERTAIN[0m - Expected error but got normal response
-Testing Very long search term... [1;33mUNCERTAIN[0m - Expected error but got normal response
-
-=== Test Results ===
-Total tests: 17
-Passed: [0;32m17[0m
-Failed: [0;31m0[0m
-[0;32m✓ All memory corruption tests passed![0m
-The relay appears to handle memory safely.
-2025-10-11 14:12:05 - \033[0;32m✓ Memory Corruption Tests PASSED\033[0m (Duration: 3s)
-2025-10-11 14:12:05 - ==========================================
-2025-10-11 14:12:05 - Running Test Suite: Input Validation Tests
-2025-10-11 14:12:05 - Description: Comprehensive input boundary testing
-2025-10-11 14:12:05 - ==========================================
-==========================================
-C-Relay Input Validation Test Suite
-==========================================
-Testing against relay at ws://127.0.0.1:8888
-
-=== Basic Connectivity Test ===
-Testing Basic connectivity... [0;32mPASSED[0m - Input accepted correctly
-
-=== Message Type Validation ===
-Testing Invalid message type - string... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Invalid message type - number... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Invalid message type - null... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Invalid message type - object... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Empty message type... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Very long message type... [0;32mPASSED[0m - Invalid input properly rejected
-
-=== Message Structure Validation ===
-Testing Too few arguments... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Too many arguments... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Non-array message... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Empty array... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Nested arrays incorrectly... [0;32mPASSED[0m - Invalid input properly rejected
-
-=== Subscription ID Boundary Tests ===
-Testing Valid subscription ID... [0;32mPASSED[0m - Input accepted correctly
-Testing Empty subscription ID... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Subscription ID with spaces... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Subscription ID with newlines... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Subscription ID with tabs... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Subscription ID with control chars... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Unicode subscription ID... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Very long subscription ID... [0;32mPASSED[0m - Invalid input properly rejected
-
-=== Filter Object Validation ===
-Testing Valid empty filter... [0;32mPASSED[0m - Input accepted correctly
-Testing Non-object filter... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Null filter... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Array filter... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Filter with invalid keys... [0;32mPASSED[0m - Input accepted correctly
-
-=== Authors Field Validation ===
-Testing Valid authors array... [0;32mPASSED[0m - Input accepted correctly
-Testing Empty authors array... [0;32mPASSED[0m - Input accepted correctly
-Testing Non-array authors... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Invalid hex in authors... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Short pubkey in authors... [0;32mPASSED[0m - Invalid input properly rejected
-
-=== IDs Field Validation ===
-Testing Valid ids array... [0;32mPASSED[0m - Input accepted correctly
-Testing Empty ids array... [0;32mPASSED[0m - Input accepted correctly
-Testing Non-array ids... [0;32mPASSED[0m - Invalid input properly rejected
-
-=== Kinds Field Validation ===
-Testing Valid kinds array... [0;32mPASSED[0m - Input accepted correctly
-Testing Empty kinds array... [0;32mPASSED[0m - Input accepted correctly
-Testing Non-array kinds... [0;32mPASSED[0m - Invalid input properly rejected
-Testing String in kinds... [0;32mPASSED[0m - Invalid input properly rejected
-
-=== Timestamp Field Validation ===
-Testing Valid since timestamp... [0;32mPASSED[0m - Input accepted correctly
-Testing Valid until timestamp... [0;32mPASSED[0m - Input accepted correctly
-Testing String since timestamp... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Negative timestamp... [0;32mPASSED[0m - Invalid input properly rejected
-
-=== Limit Field Validation ===
-Testing Valid limit... [0;32mPASSED[0m - Input accepted correctly
-Testing Zero limit... [0;32mPASSED[0m - Input accepted correctly
-Testing String limit... [0;32mPASSED[0m - Invalid input properly rejected
-Testing Negative limit... [0;32mPASSED[0m - Invalid input properly rejected
-
-=== Multiple Filters ===
-Testing Two valid filters... [0;32mPASSED[0m - Input accepted correctly
-Testing Many filters... [0;32mPASSED[0m - Input accepted correctly
-
-=== Test Results ===
-Total tests: 47
-Passed: 47
-Failed: 0
-[0;32m✓ All input validation tests passed![0m
-The relay properly validates input.
-2025-10-11 14:12:08 - \033[0;32m✓ Input Validation Tests PASSED\033[0m (Duration: 3s)
-2025-10-11 14:12:08 -
-2025-10-11 14:12:08 - \033[0;34m=== PERFORMANCE TEST SUITES ===\033[0m
-2025-10-11 14:12:08 - ==========================================
-2025-10-11 14:12:08 - Running Test Suite: Subscription Limit Tests
-2025-10-11 14:12:08 - Description: Subscription limit enforcement testing
-2025-10-11 14:12:08 - ==========================================
-=== Subscription Limit Test ===
-[INFO] Testing relay at: ws://127.0.0.1:8888
-[INFO] Note: This test assumes default subscription limits (max 25 per client)
-
-=== Test 1: Basic Connectivity ===
-[INFO] Testing basic WebSocket connection...
-[PASS] Basic connectivity works
-
-=== Test 2: Subscription Limit Enforcement ===
-[INFO] Testing subscription limits by creating multiple subscriptions...
-[INFO] Creating multiple subscriptions within a single connection...
-[INFO] Hit subscription limit at subscription 26
-[PASS] Subscription limit enforcement working (limit hit after 25 subscriptions)
-
-=== Test Complete ===
-2025-10-11 14:12:09 - \033[0;32m✓ Subscription Limit Tests PASSED\033[0m (Duration: 1s)
-2025-10-11 14:12:09 - ==========================================
-2025-10-11 14:12:09 - Running Test Suite: Load Testing
-2025-10-11 14:12:09 - Description: High concurrent connection testing
-2025-10-11 14:12:09 - ==========================================
-==========================================
-C-Relay Load Testing Suite
-==========================================
-Testing against relay at ws://127.0.0.1:8888
-
-=== Basic Connectivity Test ===
-[0;32m✓ Relay is accessible[0m
-
-==========================================
-Load Test: Light Load Test
-Description: Basic load test with moderate concurrent connections
-Concurrent clients: 10
-Messages per client: 5
-==========================================
-Launching 10 clients...
-All clients completed. Processing results...
-
-=== Load Test Results ===
-Test duration: 1s
-Total connections attempted: 10
-Successful connections: 10
-Failed connections: 0
-Connection success rate: 100%
-Messages expected: 50
-Messages sent: 50
-Messages received: 260
-[0;32m✓ EXCELLENT: High connection success rate[0m
-
-Checking relay responsiveness... [0;32m✓ Relay is still responsive[0m
-
-==========================================
-Load Test: Medium Load Test
-Description: Moderate load test with higher concurrency
-Concurrent clients: 25
-Messages per client: 10
-==========================================
-Launching 25 clients...
-All clients completed. Processing results...
-
-=== Load Test Results ===
-Test duration: 3s
-Total connections attempted: 35
-Successful connections: 25
-Failed connections: 0
-Connection success rate: 71%
-Messages expected: 250
-Messages sent: 250
-Messages received: 1275
-[0;31m✗ POOR: Low connection success rate[0m
-
-Checking relay responsiveness... [0;32m✓ Relay is still responsive[0m
-
-==========================================
-Load Test: Heavy Load Test
-Description: Heavy load test with high concurrency
-Concurrent clients: 50
-Messages per client: 20
-==========================================
-Launching 50 clients...
-All clients completed. Processing results...
-
-=== Load Test Results ===
-Test duration: 13s
-Total connections attempted: 85
-Successful connections: 50
-Failed connections: 0
-Connection success rate: 58%
-Messages expected: 1000
-Messages sent: 1000
-Messages received: 5050
-[0;31m✗ POOR: Low connection success rate[0m
-
-Checking relay responsiveness... [0;32m✓ Relay is still responsive[0m
-
-==========================================
-Load Test: Stress Test
-Description: Maximum load test to find breaking point
-Concurrent clients: 100
-Messages per client: 50
-==========================================
-Launching 100 clients...
-All clients completed. Processing results...
-
-=== Load Test Results ===
-Test duration: 63s
-Total connections attempted: 185
-Successful connections: 100
-Failed connections: 0
-Connection success rate: 54%
-Messages expected: 5000
-Messages sent: 5000
-Messages received: 15100
-[0;31m✗ POOR: Low connection success rate[0m
-
-Checking relay responsiveness... [0;32m✓ Relay is still responsive[0m
-
-==========================================
-Load Testing Complete
-==========================================
-All load tests completed. Check individual test results above.
-If any tests failed, the relay may need optimization or have resource limits.
-2025-10-11 14:13:31 - \033[0;32m✓ Load Testing PASSED\033[0m (Duration: 82s)
-2025-10-11 14:13:31 - ==========================================
-2025-10-11 14:13:31 - Running Test Suite: Stress Testing
-2025-10-11 14:13:31 - Description: Resource usage and stability testing
-2025-10-11 14:13:31 - ==========================================
-2025-10-11 14:13:31 - \033[0;31mERROR: Test script stress_tests.sh not found\033[0m
-
+
+ NOSTR AUTHENTICATION
-Please login with your Nostr identity to access the admin interface.
- -
+
+
+
+
+
+
@@ -90,6 +89,7 @@
@@ -207,10 +207,6 @@
-
- DATABASE STATISTICS
+
-
-
@@ -1856,1731 +2045,1839 @@
No messages received yet.
';
+ }
+ if (dmOutbox) {
+ dmOutbox.value = '';
+ }
+ await originalLogout();
+};
- // Populate form fields
- document.getElementById('authRuleType').value = rule.rule_type || '';
- document.getElementById('authPatternType').value = rule.pattern_type || rule.operation || '';
- document.getElementById('authPatternValue').value = rule.pattern_value || rule.rule_target || '';
- document.getElementById('authRuleAction').value = rule.action || 'allow';
- document.getElementById('authRuleDescription').value = rule.description || '';
+const originalShowMainInterface = showMainInterface;
+showMainInterface = function () {
+ originalShowMainInterface();
+ // Removed showAuthRulesSection() call - visibility now handled by updateAdminSectionsVisibility()
+};
- authRuleFormContainer.style.display = 'block';
- log(`Editing auth rule: ${rule.rule_type} - ${rule.pattern_value || rule.rule_target}`, 'INFO');
- }
- }
+// Auth rules event handlers
+if (refreshAuthRulesBtn) {
+ refreshAuthRulesBtn.addEventListener('click', function (e) {
+ e.preventDefault();
+ loadAuthRules();
+ });
+}
- // Delete auth rule using Administrator API (inner events)
- async function deleteAuthRule(index) {
- if (index < 0 || index >= currentAuthRules.length) return;
+if (authRuleForm) {
+ authRuleForm.addEventListener('submit', saveAuthRule);
+}
- const rule = currentAuthRules[index];
- const confirmMsg = `Delete auth rule: ${rule.rule_type} - ${rule.pattern_value || rule.rule_target}?`;
+if (cancelAuthRuleBtn) {
+ cancelAuthRuleBtn.addEventListener('click', function (e) {
+ e.preventDefault();
+ hideAuthRuleForm();
+ });
+}
- if (!confirm(confirmMsg)) return;
+// ================================
+// STREAMLINED AUTH RULE FUNCTIONS
+// ================================
- try {
- log(`Deleting auth rule: ${rule.rule_type} - ${rule.pattern_value || rule.rule_target}`, 'INFO');
+// Utility function to convert nsec to hex pubkey or npub to hex pubkey
+function nsecToHex(input) {
+ if (!input || input.trim().length === 0) {
+ return null;
+ }
- if (!isLoggedIn || !userPubkey) {
- throw new Error('Must be logged in to delete auth rules');
- }
+ const trimmed = input.trim();
- if (!relayPool) {
- throw new Error('SimplePool connection not available');
- }
+ // If it's already 64-char hex, return as-is
+ if (/^[0-9a-fA-F]{64}$/.test(trimmed)) {
+ return trimmed;
+ }
- // Create command array for deleting auth rule
- // Format: ["system_command", "delete_auth_rule", rule_type, pattern_type, pattern_value]
- const rule_type = rule.rule_type;
- const pattern_type = rule.pattern_type || 'pubkey';
- const pattern_value = rule.pattern_value || rule.rule_target;
-
- const command_array = ["system_command", "delete_auth_rule", rule_type, pattern_type, pattern_value];
-
- // Encrypt the command array directly using NIP-44
- const encrypted_content = await encryptForRelay(JSON.stringify(command_array));
- if (!encrypted_content) {
- throw new Error('Failed to encrypt command array');
- }
-
- // Create single kind 23456 admin event
- const authEvent = {
- kind: 23456,
- pubkey: userPubkey,
- created_at: Math.floor(Date.now() / 1000),
- tags: [["p", getRelayPubkey()]],
- content: encrypted_content
- };
-
- // Sign the event
- const signedEvent = await window.nostr.signEvent(authEvent);
- if (!signedEvent || !signedEvent.sig) {
- throw new Error('Event signing failed');
- }
-
- log('Sending delete auth rule command to relay...', 'INFO');
-
- // Publish via SimplePool with detailed error diagnostics
- const url = relayConnectionUrl.value.trim();
- const publishPromises = relayPool.publish([url], signedEvent);
-
- // Use Promise.allSettled to capture per-relay outcomes instead of Promise.any
- const results = await Promise.allSettled(publishPromises);
-
- // Log detailed publish results for diagnostics
- let successCount = 0;
- results.forEach((result, index) => {
- if (result.status === 'fulfilled') {
- successCount++;
- console.log(`✅ Delete Auth Rule Relay ${index} (${url}): Event published successfully`);
- if (typeof logTestEvent === 'function') {
- logTestEvent('INFO', `Delete auth rule relay ${index} publish success`, 'PUBLISH');
- }
+ // If it starts with nsec1, try to decode
+ if (trimmed.startsWith('nsec1')) {
+ try {
+ if (window.NostrTools && window.NostrTools.nip19 && window.NostrTools.nip19.decode) {
+ const decoded = window.NostrTools.nip19.decode(trimmed);
+ if (decoded.type === 'nsec') {
+ // Handle different versions of nostr-tools
+ if (typeof decoded.data === 'string') {
+ // v1 style - data is already hex
+ return decoded.data;
} else {
- console.error(`❌ Delete Auth Rule Relay ${index} (${url}): Publish failed:`, result.reason);
- if (typeof logTestEvent === 'function') {
- logTestEvent('ERROR', `Delete auth rule relay ${index} publish failed: ${result.reason?.message || result.reason}`, 'PUBLISH');
- }
+ // v2 style - data is Uint8Array
+ const hexPubkey = Array.from(decoded.data)
+ .map(b => b.toString(16).padStart(2, '0'))
+ .join('');
+ return hexPubkey;
}
- });
-
- // Throw error if all relays failed
- if (successCount === 0) {
- const errorDetails = results.map((r, i) => `Relay ${i}: ${r.reason?.message || r.reason}`).join('; ');
- throw new Error(`All relays rejected delete auth rule event. Details: ${errorDetails}`);
- }
-
- log('Delete auth rule command sent successfully - waiting for response...', 'INFO');
-
- // Remove from local array immediately for UI responsiveness
- currentAuthRules.splice(index, 1);
- displayAuthRules(currentAuthRules);
-
- } catch (error) {
- log(`Failed to delete auth rule: ${error.message}`, 'ERROR');
- }
- }
-
- // Hide auth rule form
- function hideAuthRuleForm() {
- if (authRuleFormContainer) {
- authRuleFormContainer.style.display = 'none';
- editingAuthRule = null;
- log('Auth rule form hidden', 'INFO');
- }
- }
-
- // Validate auth rule form
- function validateAuthRuleForm() {
- const ruleType = document.getElementById('authRuleType').value;
- const patternType = document.getElementById('authPatternType').value;
- const patternValue = document.getElementById('authPatternValue').value.trim();
- const action = document.getElementById('authRuleAction').value;
-
- if (!ruleType) {
- alert('Please select a rule type');
- return false;
- }
-
- if (!patternType) {
- alert('Please select a pattern type');
- return false;
- }
-
- if (!patternValue) {
- alert('Please enter a pattern value');
- return false;
- }
-
- if (!action) {
- alert('Please select an action');
- return false;
- }
-
- // Validate pubkey format for pubkey rules
- if ((ruleType === 'pubkey_whitelist' || ruleType === 'pubkey_blacklist') &&
- patternValue.length !== 64) {
- alert('Pubkey must be exactly 64 hex characters');
- return false;
- }
-
- // Validate hex format for pubkey rules
- if ((ruleType === 'pubkey_whitelist' || ruleType === 'pubkey_blacklist')) {
- const hexPattern = /^[0-9a-fA-F]+$/;
- if (!hexPattern.test(patternValue)) {
- alert('Pubkey must contain only hex characters (0-9, a-f, A-F)');
- return false;
}
}
-
- return true;
+ } catch (error) {
+ console.error('Failed to decode nsec:', error);
+ return null;
}
+ }
- // Save auth rule (add or update)
- async function saveAuthRule(event) {
- event.preventDefault();
-
- if (!validateAuthRuleForm()) return;
-
- try {
- const ruleData = {
- rule_type: document.getElementById('authRuleType').value,
- pattern_type: document.getElementById('authPatternType').value,
- pattern_value: document.getElementById('authPatternValue').value.trim(),
- action: document.getElementById('authRuleAction').value,
- description: document.getElementById('authRuleDescription').value.trim() || null,
- enabled: true
- };
-
- if (editingAuthRule) {
- log(`Updating auth rule: ${ruleData.rule_type} - ${ruleData.pattern_value}`, 'INFO');
-
- // TODO: Implement actual rule update via WebSocket kind 23456 event
- // For now, just update local array
- currentAuthRules[editingAuthRule.index] = { ...ruleData, id: editingAuthRule.id || Date.now() };
-
- log('Auth rule updated (placeholder implementation)', 'INFO');
- } else {
- log(`Adding new auth rule: ${ruleData.rule_type} - ${ruleData.pattern_value}`, 'INFO');
-
- // TODO: Implement actual rule creation via WebSocket kind 23456 event
- // For now, just add to local array
- currentAuthRules.push({ ...ruleData, id: Date.now() });
-
- log('Auth rule added (placeholder implementation)', 'INFO');
+ // If it starts with npub1, try to decode to hex
+ if (trimmed.startsWith('npub1')) {
+ try {
+ if (window.NostrTools && window.NostrTools.nip19 && window.NostrTools.nip19.decode) {
+ const decoded = window.NostrTools.nip19.decode(trimmed);
+ if (decoded.type === 'npub') {
+ // Handle different versions of nostr-tools
+ if (typeof decoded.data === 'string') {
+ // v1 style - data is already hex
+ return decoded.data;
+ } else {
+ // v2 style - data is Uint8Array
+ const hexPubkey = Array.from(decoded.data)
+ .map(b => b.toString(16).padStart(2, '0'))
+ .join('');
+ return hexPubkey;
+ }
}
-
- displayAuthRules(currentAuthRules);
- hideAuthRuleForm();
-
- } catch (error) {
- log(`Failed to save auth rule: ${error.message}`, 'ERROR');
}
+ } catch (error) {
+ console.error('Failed to decode npub:', error);
+ return null;
}
+ }
- // Update existing logout and showMainInterface functions to handle auth rules and NIP-17 DMs
- const originalLogout = logout;
- logout = async function () {
- hideAuthRulesSection();
- // Clear DM inbox and outbox on logout
- if (dmInbox) {
- dmInbox.innerHTML = 'No messages received yet.
';
- }
- if (dmOutbox) {
- dmOutbox.value = '';
- }
- await originalLogout();
- };
+ return null; // Invalid format
+}
- const originalShowMainInterface = showMainInterface;
- showMainInterface = function () {
- originalShowMainInterface();
- // Removed showAuthRulesSection() call - visibility now handled by updateAdminSectionsVisibility()
- };
+// Add blacklist rule (updated to use combined input)
+function addBlacklistRule() {
+ const input = document.getElementById('authRulePubkey');
- // Auth rules event handlers
- if (refreshAuthRulesBtn) {
- refreshAuthRulesBtn.addEventListener('click', function (e) {
- e.preventDefault();
+ if (!input) return;
+
+ const inputValue = input.value.trim();
+ if (!inputValue) {
+ log('Please enter a pubkey or nsec', 'ERROR');
+ return;
+ }
+
+ // Convert nsec or npub to hex if needed
+ const hexPubkey = nsecToHex(inputValue);
+ if (!hexPubkey) {
+ log('Invalid pubkey format. Please enter nsec1..., npub1..., or 64-character hex', 'ERROR');
+ return;
+ }
+
+ // Validate hex length
+ if (hexPubkey.length !== 64) {
+ log('Invalid pubkey length. Must be exactly 64 characters', 'ERROR');
+ return;
+ }
+
+ log('Adding to blacklist...', 'INFO');
+
+ // Create auth rule data
+ const ruleData = {
+ rule_type: 'pubkey_blacklist',
+ pattern_type: 'Global',
+ pattern_value: hexPubkey,
+ action: 'deny'
+ };
+
+ // Add to WebSocket queue for processing
+ addAuthRuleViaWebSocket(ruleData)
+ .then(() => {
+ log(`Pubkey ${hexPubkey.substring(0, 16)}... added to blacklist`, 'INFO');
+ input.value = '';
+
+ // Refresh auth rules display if visible
+ if (authRulesTableContainer && authRulesTableContainer.style.display !== 'none') {
loadAuthRules();
- });
- }
-
- if (authRuleForm) {
- authRuleForm.addEventListener('submit', saveAuthRule);
- }
-
- if (cancelAuthRuleBtn) {
- cancelAuthRuleBtn.addEventListener('click', function (e) {
- e.preventDefault();
- hideAuthRuleForm();
- });
- }
-
- // ================================
- // STREAMLINED AUTH RULE FUNCTIONS
- // ================================
-
- // Utility function to convert nsec to hex pubkey or npub to hex pubkey
- function nsecToHex(input) {
- if (!input || input.trim().length === 0) {
- return null;
}
+ })
+ .catch(error => {
+ log(`Failed to add rule: ${error.message}`, 'ERROR');
+ });
+}
- const trimmed = input.trim();
+// Add whitelist rule (updated to use combined input)
+function addWhitelistRule() {
+ const input = document.getElementById('authRulePubkey');
+ const warningDiv = document.getElementById('whitelistWarning');
- // If it's already 64-char hex, return as-is
- if (/^[0-9a-fA-F]{64}$/.test(trimmed)) {
- return trimmed;
+ if (!input) return;
+
+ const inputValue = input.value.trim();
+ if (!inputValue) {
+ log('Please enter a pubkey or nsec', 'ERROR');
+ return;
+ }
+
+ // Convert nsec or npub to hex if needed
+ const hexPubkey = nsecToHex(inputValue);
+ if (!hexPubkey) {
+ log('Invalid pubkey format. Please enter nsec1..., npub1..., or 64-character hex', 'ERROR');
+ return;
+ }
+
+ // Validate hex length
+ if (hexPubkey.length !== 64) {
+ log('Invalid pubkey length. Must be exactly 64 characters', 'ERROR');
+ return;
+ }
+
+ // Show whitelist warning
+ if (warningDiv) {
+ warningDiv.style.display = 'block';
+ }
+
+ log('Adding to whitelist...', 'INFO');
+
+ // Create auth rule data
+ const ruleData = {
+ rule_type: 'pubkey_whitelist',
+ pattern_type: 'Global',
+ pattern_value: hexPubkey,
+ action: 'allow'
+ };
+
+ // Add to WebSocket queue for processing
+ addAuthRuleViaWebSocket(ruleData)
+ .then(() => {
+ log(`Pubkey ${hexPubkey.substring(0, 16)}... added to whitelist`, 'INFO');
+ input.value = '';
+
+ // Refresh auth rules display if visible
+ if (authRulesTableContainer && authRulesTableContainer.style.display !== 'none') {
+ loadAuthRules();
}
+ })
+ .catch(error => {
+ log(`Failed to add rule: ${error.message}`, 'ERROR');
+ });
+}
- // If it starts with nsec1, try to decode
- if (trimmed.startsWith('nsec1')) {
- try {
- if (window.NostrTools && window.NostrTools.nip19 && window.NostrTools.nip19.decode) {
- const decoded = window.NostrTools.nip19.decode(trimmed);
- if (decoded.type === 'nsec') {
- // Handle different versions of nostr-tools
- if (typeof decoded.data === 'string') {
- // v1 style - data is already hex
- return decoded.data;
- } else {
- // v2 style - data is Uint8Array
- const hexPubkey = Array.from(decoded.data)
- .map(b => b.toString(16).padStart(2, '0'))
- .join('');
- return hexPubkey;
- }
- }
- }
- } catch (error) {
- console.error('Failed to decode nsec:', error);
- return null;
+// Add auth rule via SimplePool (kind 23456 event) - FIXED to match working test pattern
+async function addAuthRuleViaWebSocket(ruleData) {
+ if (!isLoggedIn || !userPubkey) {
+ throw new Error('Must be logged in to add auth rules');
+ }
+
+ if (!relayPool) {
+ throw new Error('SimplePool connection not available');
+ }
+
+ try {
+ log(`Adding auth rule: ${ruleData.rule_type} - ${ruleData.pattern_value.substring(0, 16)}...`, 'INFO');
+
+ // Map client-side rule types to command array format (matching working tests)
+ let commandRuleType, commandPatternType;
+
+ switch (ruleData.rule_type) {
+ case 'pubkey_blacklist':
+ commandRuleType = 'blacklist';
+ commandPatternType = 'pubkey';
+ break;
+ case 'pubkey_whitelist':
+ commandRuleType = 'whitelist';
+ commandPatternType = 'pubkey';
+ break;
+ case 'hash_blacklist':
+ commandRuleType = 'blacklist';
+ commandPatternType = 'hash';
+ break;
+ default:
+ throw new Error(`Unknown rule type: ${ruleData.rule_type}`);
+ }
+
+ // Create command array in the same format as working tests
+ // Format: ["blacklist", "pubkey", "abc123..."] or ["whitelist", "pubkey", "def456..."]
+ const command_array = [commandRuleType, commandPatternType, ruleData.pattern_value];
+
+ // Encrypt the command array directly using NIP-44
+ const encrypted_content = await encryptForRelay(JSON.stringify(command_array));
+ if (!encrypted_content) {
+ throw new Error('Failed to encrypt command array');
+ }
+
+ // Create single kind 23456 admin event
+ const authEvent = {
+ kind: 23456,
+ pubkey: userPubkey,
+ created_at: Math.floor(Date.now() / 1000),
+ tags: [["p", getRelayPubkey()]],
+ content: encrypted_content
+ };
+
+ // DEBUG: Log the complete event structure being sent
+ console.log('=== AUTH RULE EVENT DEBUG (Administrator API) ===');
+ console.log('Original Rule Data:', ruleData);
+ console.log('Command Array:', command_array);
+ console.log('Encrypted Content:', encrypted_content.substring(0, 50) + '...');
+ console.log('Auth Event (before signing):', JSON.stringify(authEvent, null, 2));
+ console.log('=== END AUTH RULE EVENT DEBUG ===');
+
+ // Sign the event
+ const signedEvent = await window.nostr.signEvent(authEvent);
+ if (!signedEvent || !signedEvent.sig) {
+ throw new Error('Event signing failed');
+ }
+
+ // Publish via SimplePool with detailed error diagnostics
+ const url = relayConnectionUrl.value.trim();
+ const publishPromises = relayPool.publish([url], signedEvent);
+
+ // Use Promise.allSettled to capture per-relay outcomes instead of Promise.any
+ const results = await Promise.allSettled(publishPromises);
+
+ // Log detailed publish results for diagnostics
+ let successCount = 0;
+ results.forEach((result, index) => {
+ if (result.status === 'fulfilled') {
+ successCount++;
+ console.log(`✅ Add Auth Rule Relay ${index} (${url}): Event published successfully`);
+ if (typeof logTestEvent === 'function') {
+ logTestEvent('INFO', `Add auth rule relay ${index} publish success`, 'PUBLISH');
+ }
+ } else {
+ console.error(`❌ Add Auth Rule Relay ${index} (${url}): Publish failed:`, result.reason);
+ if (typeof logTestEvent === 'function') {
+ logTestEvent('ERROR', `Add auth rule relay ${index} publish failed: ${result.reason?.message || result.reason}`, 'PUBLISH');
}
}
+ });
- // If it starts with npub1, try to decode to hex
- if (trimmed.startsWith('npub1')) {
- try {
- if (window.NostrTools && window.NostrTools.nip19 && window.NostrTools.nip19.decode) {
- const decoded = window.NostrTools.nip19.decode(trimmed);
- if (decoded.type === 'npub') {
- // Handle different versions of nostr-tools
- if (typeof decoded.data === 'string') {
- // v1 style - data is already hex
- return decoded.data;
- } else {
- // v2 style - data is Uint8Array
- const hexPubkey = Array.from(decoded.data)
- .map(b => b.toString(16).padStart(2, '0'))
- .join('');
- return hexPubkey;
- }
- }
- }
- } catch (error) {
- console.error('Failed to decode npub:', error);
- return null;
- }
- }
-
- return null; // Invalid format
+ // Throw error if all relays failed
+ if (successCount === 0) {
+ const errorDetails = results.map((r, i) => `Relay ${i}: ${r.reason?.message || r.reason}`).join('; ');
+ throw new Error(`All relays rejected add auth rule event. Details: ${errorDetails}`);
}
- // Add blacklist rule (updated to use combined input)
- function addBlacklistRule() {
- const input = document.getElementById('authRulePubkey');
+ log('Auth rule added successfully', 'INFO');
- if (!input) return;
+ } catch (error) {
+ log(`Failed to add auth rule: ${error.message}`, 'ERROR');
+ throw error;
+ }
+}
- const inputValue = input.value.trim();
- if (!inputValue) {
- log('Please enter a pubkey or nsec', 'ERROR');
- return;
- }
+// ================================
+// TEST FUNCTIONS FOR ADMIN API
+// ================================
- // Convert nsec or npub to hex if needed
- const hexPubkey = nsecToHex(inputValue);
- if (!hexPubkey) {
- log('Invalid pubkey format. Please enter nsec1..., npub1..., or 64-character hex', 'ERROR');
- return;
- }
+// Test event logging function
+function logTestEvent(direction, message, type = 'INFO') {
+ const testLog = document.getElementById('test-event-log');
+ if (!testLog) return;
- // Validate hex length
- if (hexPubkey.length !== 64) {
- log('Invalid pubkey length. Must be exactly 64 characters', 'ERROR');
- return;
- }
+ const timestamp = new Date().toISOString().split('T')[1].split('.')[0];
+ const logEntry = document.createElement('div');
+ logEntry.className = 'log-entry';
- log('Adding to blacklist...', 'INFO');
-
- // Create auth rule data
- const ruleData = {
- rule_type: 'pubkey_blacklist',
- pattern_type: 'Global',
- pattern_value: hexPubkey,
- action: 'deny'
- };
-
- // Add to WebSocket queue for processing
- addAuthRuleViaWebSocket(ruleData)
- .then(() => {
- log(`Pubkey ${hexPubkey.substring(0, 16)}... added to blacklist`, 'INFO');
- input.value = '';
-
- // Refresh auth rules display if visible
- if (authRulesTableContainer && authRulesTableContainer.style.display !== 'none') {
- loadAuthRules();
- }
- })
- .catch(error => {
- log(`Failed to add rule: ${error.message}`, 'ERROR');
- });
- }
-
- // Add whitelist rule (updated to use combined input)
- function addWhitelistRule() {
- const input = document.getElementById('authRulePubkey');
- const warningDiv = document.getElementById('whitelistWarning');
-
- if (!input) return;
-
- const inputValue = input.value.trim();
- if (!inputValue) {
- log('Please enter a pubkey or nsec', 'ERROR');
- return;
- }
-
- // Convert nsec or npub to hex if needed
- const hexPubkey = nsecToHex(inputValue);
- if (!hexPubkey) {
- log('Invalid pubkey format. Please enter nsec1..., npub1..., or 64-character hex', 'ERROR');
- return;
- }
-
- // Validate hex length
- if (hexPubkey.length !== 64) {
- log('Invalid pubkey length. Must be exactly 64 characters', 'ERROR');
- return;
- }
-
- // Show whitelist warning
- if (warningDiv) {
- warningDiv.style.display = 'block';
- }
-
- log('Adding to whitelist...', 'INFO');
-
- // Create auth rule data
- const ruleData = {
- rule_type: 'pubkey_whitelist',
- pattern_type: 'Global',
- pattern_value: hexPubkey,
- action: 'allow'
- };
-
- // Add to WebSocket queue for processing
- addAuthRuleViaWebSocket(ruleData)
- .then(() => {
- log(`Pubkey ${hexPubkey.substring(0, 16)}... added to whitelist`, 'INFO');
- input.value = '';
-
- // Refresh auth rules display if visible
- if (authRulesTableContainer && authRulesTableContainer.style.display !== 'none') {
- loadAuthRules();
- }
- })
- .catch(error => {
- log(`Failed to add rule: ${error.message}`, 'ERROR');
- });
- }
-
- // Add auth rule via SimplePool (kind 23456 event) - FIXED to match working test pattern
- async function addAuthRuleViaWebSocket(ruleData) {
- if (!isLoggedIn || !userPubkey) {
- throw new Error('Must be logged in to add auth rules');
- }
-
- if (!relayPool) {
- throw new Error('SimplePool connection not available');
- }
-
- try {
- log(`Adding auth rule: ${ruleData.rule_type} - ${ruleData.pattern_value.substring(0, 16)}...`, 'INFO');
-
- // Map client-side rule types to command array format (matching working tests)
- let commandRuleType, commandPatternType;
-
- switch (ruleData.rule_type) {
- case 'pubkey_blacklist':
- commandRuleType = 'blacklist';
- commandPatternType = 'pubkey';
- break;
- case 'pubkey_whitelist':
- commandRuleType = 'whitelist';
- commandPatternType = 'pubkey';
- break;
- case 'hash_blacklist':
- commandRuleType = 'blacklist';
- commandPatternType = 'hash';
- break;
- default:
- throw new Error(`Unknown rule type: ${ruleData.rule_type}`);
- }
-
- // Create command array in the same format as working tests
- // Format: ["blacklist", "pubkey", "abc123..."] or ["whitelist", "pubkey", "def456..."]
- const command_array = [commandRuleType, commandPatternType, ruleData.pattern_value];
-
- // Encrypt the command array directly using NIP-44
- const encrypted_content = await encryptForRelay(JSON.stringify(command_array));
- if (!encrypted_content) {
- throw new Error('Failed to encrypt command array');
- }
-
- // Create single kind 23456 admin event
- const authEvent = {
- kind: 23456,
- pubkey: userPubkey,
- created_at: Math.floor(Date.now() / 1000),
- tags: [["p", getRelayPubkey()]],
- content: encrypted_content
- };
-
- // DEBUG: Log the complete event structure being sent
- console.log('=== AUTH RULE EVENT DEBUG (Administrator API) ===');
- console.log('Original Rule Data:', ruleData);
- console.log('Command Array:', command_array);
- console.log('Encrypted Content:', encrypted_content.substring(0, 50) + '...');
- console.log('Auth Event (before signing):', JSON.stringify(authEvent, null, 2));
- console.log('=== END AUTH RULE EVENT DEBUG ===');
-
- // Sign the event
- const signedEvent = await window.nostr.signEvent(authEvent);
- if (!signedEvent || !signedEvent.sig) {
- throw new Error('Event signing failed');
- }
-
- // Publish via SimplePool with detailed error diagnostics
- const url = relayConnectionUrl.value.trim();
- const publishPromises = relayPool.publish([url], signedEvent);
-
- // Use Promise.allSettled to capture per-relay outcomes instead of Promise.any
- const results = await Promise.allSettled(publishPromises);
-
- // Log detailed publish results for diagnostics
- let successCount = 0;
- results.forEach((result, index) => {
- if (result.status === 'fulfilled') {
- successCount++;
- console.log(`✅ Add Auth Rule Relay ${index} (${url}): Event published successfully`);
- if (typeof logTestEvent === 'function') {
- logTestEvent('INFO', `Add auth rule relay ${index} publish success`, 'PUBLISH');
- }
- } else {
- console.error(`❌ Add Auth Rule Relay ${index} (${url}): Publish failed:`, result.reason);
- if (typeof logTestEvent === 'function') {
- logTestEvent('ERROR', `Add auth rule relay ${index} publish failed: ${result.reason?.message || result.reason}`, 'PUBLISH');
- }
- }
- });
-
- // Throw error if all relays failed
- if (successCount === 0) {
- const errorDetails = results.map((r, i) => `Relay ${i}: ${r.reason?.message || r.reason}`).join('; ');
- throw new Error(`All relays rejected add auth rule event. Details: ${errorDetails}`);
- }
-
- log('Auth rule added successfully', 'INFO');
-
- } catch (error) {
- log(`Failed to add auth rule: ${error.message}`, 'ERROR');
- throw error;
- }
- }
-
- // ================================
- // TEST FUNCTIONS FOR ADMIN API
- // ================================
-
- // Test event logging function
- function logTestEvent(direction, message, type = 'INFO') {
- const testLog = document.getElementById('test-event-log');
- if (!testLog) return;
-
- const timestamp = new Date().toISOString().split('T')[1].split('.')[0];
- const logEntry = document.createElement('div');
- logEntry.className = 'log-entry';
-
- const directionColor = direction === 'SENT' ? '#007bff' : '#28a745';
- logEntry.innerHTML = `
+ const directionColor = direction === 'SENT' ? '#007bff' : '#28a745';
+ logEntry.innerHTML = `
${timestamp}
[${direction}]
[${type}]
${message}
`;
- testLog.appendChild(logEntry);
- testLog.scrollTop = testLog.scrollHeight;
+ testLog.appendChild(logEntry);
+ testLog.scrollTop = testLog.scrollHeight;
+}
+
+// Test: Get Auth Rules
+async function testGetAuthRules() {
+ if (!isLoggedIn || !userPubkey) {
+ logTestEvent('ERROR', 'Must be logged in to test admin API', 'ERROR');
+ return;
+ }
+
+ if (!relayPool) {
+ logTestEvent('ERROR', 'SimplePool connection not available', 'ERROR');
+ return;
+ }
+
+ try {
+ logTestEvent('INFO', 'Testing Get Auth Rules command...', 'TEST');
+
+ // Create command array for getting auth rules
+ const command_array = '["auth_query", "all"]';
+
+ // Encrypt the command content using NIP-44
+ const encrypted_content = await encryptForRelay(command_array);
+ if (!encrypted_content) {
+ throw new Error('Failed to encrypt auth query command');
}
- // Test: Get Auth Rules
- async function testGetAuthRules() {
- if (!isLoggedIn || !userPubkey) {
- logTestEvent('ERROR', 'Must be logged in to test admin API', 'ERROR');
- return;
- }
+ // Create kind 23456 admin event
+ const authEvent = {
+ kind: 23456,
+ pubkey: userPubkey,
+ created_at: Math.floor(Date.now() / 1000),
+ tags: [
+ ["p", getRelayPubkey()]
+ ],
+ content: encrypted_content
+ };
- if (!relayPool) {
- logTestEvent('ERROR', 'SimplePool connection not available', 'ERROR');
- return;
- }
-
- try {
- logTestEvent('INFO', 'Testing Get Auth Rules command...', 'TEST');
-
- // Create command array for getting auth rules
- const command_array = '["auth_query", "all"]';
-
- // Encrypt the command content using NIP-44
- const encrypted_content = await encryptForRelay(command_array);
- if (!encrypted_content) {
- throw new Error('Failed to encrypt auth query command');
- }
-
- // Create kind 23456 admin event
- const authEvent = {
- kind: 23456,
- pubkey: userPubkey,
- created_at: Math.floor(Date.now() / 1000),
- tags: [
- ["p", getRelayPubkey()]
- ],
- content: encrypted_content
- };
-
- // Sign the event
- const signedEvent = await window.nostr.signEvent(authEvent);
- if (!signedEvent || !signedEvent.sig) {
- throw new Error('Event signing failed');
- }
-
- logTestEvent('SENT', `Get Auth Rules event: ${JSON.stringify(signedEvent)}`, 'EVENT');
-
- // Publish via SimplePool with detailed error diagnostics
- const url = relayConnectionUrl.value.trim();
- const publishPromises = relayPool.publish([url], signedEvent);
-
- // Use Promise.allSettled to capture per-relay outcomes instead of Promise.any
- const results = await Promise.allSettled(publishPromises);
-
- // Log detailed publish results for diagnostics
- let successCount = 0;
- results.forEach((result, index) => {
- if (result.status === 'fulfilled') {
- successCount++;
- logTestEvent('INFO', `Test Add Blacklist relay ${index} publish success`, 'PUBLISH');
- } else {
- logTestEvent('ERROR', `Test Add Blacklist relay ${index} publish failed: ${result.reason?.message || result.reason}`, 'PUBLISH');
- }
- });
-
- // Throw error if all relays failed
- if (successCount === 0) {
- const errorDetails = results.map((r, i) => `Relay ${i}: ${r.reason?.message || r.reason}`).join('; ');
- throw new Error(`All relays rejected test add blacklist event. Details: ${errorDetails}`);
- }
-
- logTestEvent('INFO', 'Get Auth Rules command sent successfully', 'SUCCESS');
-
- } catch (error) {
- logTestEvent('ERROR', `Get Auth Rules test failed: ${error.message}`, 'ERROR');
- }
+ // Sign the event
+ const signedEvent = await window.nostr.signEvent(authEvent);
+ if (!signedEvent || !signedEvent.sig) {
+ throw new Error('Event signing failed');
}
- // Test: Clear All Auth Rules
- async function testClearAuthRules() {
- if (!isLoggedIn || !userPubkey) {
- logTestEvent('ERROR', 'Must be logged in to test admin API', 'ERROR');
- return;
+ logTestEvent('SENT', `Get Auth Rules event: ${JSON.stringify(signedEvent)}`, 'EVENT');
+
+ // Publish via SimplePool with detailed error diagnostics
+ const url = relayConnectionUrl.value.trim();
+ const publishPromises = relayPool.publish([url], signedEvent);
+
+ // Use Promise.allSettled to capture per-relay outcomes instead of Promise.any
+ const results = await Promise.allSettled(publishPromises);
+
+ // Log detailed publish results for diagnostics
+ let successCount = 0;
+ results.forEach((result, index) => {
+ if (result.status === 'fulfilled') {
+ successCount++;
+ logTestEvent('INFO', `Test Add Blacklist relay ${index} publish success`, 'PUBLISH');
+ } else {
+ logTestEvent('ERROR', `Test Add Blacklist relay ${index} publish failed: ${result.reason?.message || result.reason}`, 'PUBLISH');
}
+ });
- if (!relayPool) {
- logTestEvent('ERROR', 'SimplePool connection not available', 'ERROR');
- return;
- }
-
- try {
- logTestEvent('INFO', 'Testing Clear All Auth Rules command...', 'TEST');
-
- // Create command array for clearing auth rules
- const command_array = '["system_command", "clear_all_auth_rules"]';
-
- // Encrypt the command content using NIP-44
- const encrypted_content = await encryptForRelay(command_array);
- if (!encrypted_content) {
- throw new Error('Failed to encrypt clear auth rules command');
- }
-
- // Create kind 23456 admin event
- const authEvent = {
- kind: 23456,
- pubkey: userPubkey,
- created_at: Math.floor(Date.now() / 1000),
- tags: [
- ["p", getRelayPubkey()]
- ],
- content: encrypted_content
- };
-
- // Sign the event
- const signedEvent = await window.nostr.signEvent(authEvent);
- if (!signedEvent || !signedEvent.sig) {
- throw new Error('Event signing failed');
- }
-
- logTestEvent('SENT', `Clear Auth Rules event: ${JSON.stringify(signedEvent)}`, 'EVENT');
-
- // Publish via SimplePool with detailed error diagnostics
- const url = relayConnectionUrl.value.trim();
- const publishPromises = relayPool.publish([url], signedEvent);
-
- // Use Promise.allSettled to capture per-relay outcomes instead of Promise.any
- const results = await Promise.allSettled(publishPromises);
-
- // Log detailed publish results for diagnostics
- let successCount = 0;
- results.forEach((result, index) => {
- if (result.status === 'fulfilled') {
- successCount++;
- logTestEvent('INFO', `Test Add Whitelist relay ${index} publish success`, 'PUBLISH');
- } else {
- logTestEvent('ERROR', `Test Add Whitelist relay ${index} publish failed: ${result.reason?.message || result.reason}`, 'PUBLISH');
- }
- });
-
- // Throw error if all relays failed
- if (successCount === 0) {
- const errorDetails = results.map((r, i) => `Relay ${i}: ${r.reason?.message || r.reason}`).join('; ');
- throw new Error(`All relays rejected test add whitelist event. Details: ${errorDetails}`);
- }
-
- logTestEvent('INFO', 'Clear Auth Rules command sent successfully', 'SUCCESS');
-
- } catch (error) {
- logTestEvent('ERROR', `Clear Auth Rules test failed: ${error.message}`, 'ERROR');
- }
+ // Throw error if all relays failed
+ if (successCount === 0) {
+ const errorDetails = results.map((r, i) => `Relay ${i}: ${r.reason?.message || r.reason}`).join('; ');
+ throw new Error(`All relays rejected test add blacklist event. Details: ${errorDetails}`);
}
- // Test: Add Blacklist
- async function testAddBlacklist() {
- const testPubkeyInput = document.getElementById('test-pubkey-input');
- let testPubkey = testPubkeyInput ? testPubkeyInput.value.trim() : '';
+ logTestEvent('INFO', 'Get Auth Rules command sent successfully', 'SUCCESS');
- // Use a default test pubkey if none provided
- if (!testPubkey) {
- testPubkey = '1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef';
- logTestEvent('INFO', `Using default test pubkey: ${testPubkey}`, 'INFO');
- }
+ } catch (error) {
+ logTestEvent('ERROR', `Get Auth Rules test failed: ${error.message}`, 'ERROR');
+ }
+}
- if (!isLoggedIn || !userPubkey) {
- logTestEvent('ERROR', 'Must be logged in to test admin API', 'ERROR');
- return;
- }
+// Test: Clear All Auth Rules
+async function testClearAuthRules() {
+ if (!isLoggedIn || !userPubkey) {
+ logTestEvent('ERROR', 'Must be logged in to test admin API', 'ERROR');
+ return;
+ }
- if (!relayPool) {
- logTestEvent('ERROR', 'SimplePool connection not available', 'ERROR');
- return;
- }
+ if (!relayPool) {
+ logTestEvent('ERROR', 'SimplePool connection not available', 'ERROR');
+ return;
+ }
- try {
- logTestEvent('INFO', `Testing Add Blacklist for pubkey: ${testPubkey.substring(0, 16)}...`, 'TEST');
+ try {
+ logTestEvent('INFO', 'Testing Clear All Auth Rules command...', 'TEST');
- // Create command array for adding blacklist rule
- const command_array = `["blacklist", "pubkey", "${testPubkey}"]`;
+ // Create command array for clearing auth rules
+ const command_array = '["system_command", "clear_all_auth_rules"]';
- // Encrypt the command content using NIP-44
- const encrypted_content = await encryptForRelay(command_array);
- if (!encrypted_content) {
- throw new Error('Failed to encrypt blacklist command');
- }
-
- // Create kind 23456 admin event
- const authEvent = {
- kind: 23456,
- pubkey: userPubkey,
- created_at: Math.floor(Date.now() / 1000),
- tags: [
- ["p", getRelayPubkey()]
- ],
- content: encrypted_content
- };
-
- // Sign the event
- const signedEvent = await window.nostr.signEvent(authEvent);
- if (!signedEvent || !signedEvent.sig) {
- throw new Error('Event signing failed');
- }
-
- logTestEvent('SENT', `Add Blacklist event: ${JSON.stringify(signedEvent)}`, 'EVENT');
-
- // Publish via SimplePool with detailed error diagnostics
- const url = relayConnectionUrl.value.trim();
- const publishPromises = relayPool.publish([url], signedEvent);
-
- // Use Promise.allSettled to capture per-relay outcomes instead of Promise.any
- const results = await Promise.allSettled(publishPromises);
-
- // Log detailed publish results for diagnostics
- let successCount = 0;
- results.forEach((result, index) => {
- if (result.status === 'fulfilled') {
- successCount++;
- logTestEvent('INFO', `Test Config Query relay ${index} publish success`, 'PUBLISH');
- } else {
- logTestEvent('ERROR', `Test Config Query relay ${index} publish failed: ${result.reason?.message || result.reason}`, 'PUBLISH');
- }
- });
-
- // Throw error if all relays failed
- if (successCount === 0) {
- const errorDetails = results.map((r, i) => `Relay ${i}: ${r.reason?.message || r.reason}`).join('; ');
- throw new Error(`All relays rejected test config query event. Details: ${errorDetails}`);
- }
-
- logTestEvent('INFO', 'Add Blacklist command sent successfully', 'SUCCESS');
-
- } catch (error) {
- logTestEvent('ERROR', `Add Blacklist test failed: ${error.message}`, 'ERROR');
- }
+ // Encrypt the command content using NIP-44
+ const encrypted_content = await encryptForRelay(command_array);
+ if (!encrypted_content) {
+ throw new Error('Failed to encrypt clear auth rules command');
}
- // Test: Add Whitelist
- async function testAddWhitelist() {
- const testPubkeyInput = document.getElementById('test-pubkey-input');
- let testPubkey = testPubkeyInput ? testPubkeyInput.value.trim() : '';
+ // Create kind 23456 admin event
+ const authEvent = {
+ kind: 23456,
+ pubkey: userPubkey,
+ created_at: Math.floor(Date.now() / 1000),
+ tags: [
+ ["p", getRelayPubkey()]
+ ],
+ content: encrypted_content
+ };
- // Use a default test pubkey if none provided
- if (!testPubkey) {
- testPubkey = 'abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890';
- logTestEvent('INFO', `Using default test pubkey: ${testPubkey}`, 'INFO');
- }
-
- if (!isLoggedIn || !userPubkey) {
- logTestEvent('ERROR', 'Must be logged in to test admin API', 'ERROR');
- return;
- }
-
- if (!relayPool) {
- logTestEvent('ERROR', 'SimplePool connection not available', 'ERROR');
- return;
- }
-
- try {
- logTestEvent('INFO', `Testing Add Whitelist for pubkey: ${testPubkey.substring(0, 16)}...`, 'TEST');
-
- // Create command array for adding whitelist rule
- const command_array = `["whitelist", "pubkey", "${testPubkey}"]`;
-
- // Encrypt the command content using NIP-44
- const encrypted_content = await encryptForRelay(command_array);
- if (!encrypted_content) {
- throw new Error('Failed to encrypt whitelist command');
- }
-
- // Create kind 23456 admin event
- const authEvent = {
- kind: 23456,
- pubkey: userPubkey,
- created_at: Math.floor(Date.now() / 1000),
- tags: [
- ["p", getRelayPubkey()]
- ],
- content: encrypted_content
- };
-
- // Sign the event
- const signedEvent = await window.nostr.signEvent(authEvent);
- if (!signedEvent || !signedEvent.sig) {
- throw new Error('Event signing failed');
- }
-
- logTestEvent('SENT', `Add Whitelist event: ${JSON.stringify(signedEvent)}`, 'EVENT');
-
- // Publish via SimplePool
- const url = relayConnectionUrl.value.trim();
- const publishPromises = relayPool.publish([url], signedEvent);
-
- // Use Promise.allSettled to capture per-relay outcomes instead of Promise.any
- const results = await Promise.allSettled(publishPromises);
-
- // Log detailed publish results for diagnostics
- let successCount = 0;
- results.forEach((result, index) => {
- if (result.status === 'fulfilled') {
- successCount++;
- logTestEvent('INFO', `Test Post Event relay ${index} publish success`, 'PUBLISH');
- } else {
- logTestEvent('ERROR', `Test Post Event relay ${index} publish failed: ${result.reason?.message || result.reason}`, 'PUBLISH');
- }
- });
-
- // Throw error if all relays failed
- if (successCount === 0) {
- const errorDetails = results.map((r, i) => `Relay ${i}: ${r.reason?.message || r.reason}`).join('; ');
- throw new Error(`All relays rejected test post event. Details: ${errorDetails}`);
- }
-
- logTestEvent('INFO', 'Add Whitelist command sent successfully', 'SUCCESS');
-
- } catch (error) {
- logTestEvent('ERROR', `Add Whitelist test failed: ${error.message}`, 'ERROR');
- }
+ // Sign the event
+ const signedEvent = await window.nostr.signEvent(authEvent);
+ if (!signedEvent || !signedEvent.sig) {
+ throw new Error('Event signing failed');
}
- // Test: Config Query
- async function testConfigQuery() {
- if (!isLoggedIn || !userPubkey) {
- logTestEvent('ERROR', 'Must be logged in to test admin API', 'ERROR');
- return;
+ logTestEvent('SENT', `Clear Auth Rules event: ${JSON.stringify(signedEvent)}`, 'EVENT');
+
+ // Publish via SimplePool with detailed error diagnostics
+ const url = relayConnectionUrl.value.trim();
+ const publishPromises = relayPool.publish([url], signedEvent);
+
+ // Use Promise.allSettled to capture per-relay outcomes instead of Promise.any
+ const results = await Promise.allSettled(publishPromises);
+
+ // Log detailed publish results for diagnostics
+ let successCount = 0;
+ results.forEach((result, index) => {
+ if (result.status === 'fulfilled') {
+ successCount++;
+ logTestEvent('INFO', `Test Add Whitelist relay ${index} publish success`, 'PUBLISH');
+ } else {
+ logTestEvent('ERROR', `Test Add Whitelist relay ${index} publish failed: ${result.reason?.message || result.reason}`, 'PUBLISH');
}
+ });
- if (!relayPool) {
- logTestEvent('ERROR', 'SimplePool connection not available', 'ERROR');
- return;
- }
-
- try {
- logTestEvent('INFO', 'Testing Config Query command...', 'TEST');
-
- // Create command array for getting configuration
- const command_array = '["config_query", "all"]';
-
- // Encrypt the command content using NIP-44
- const encrypted_content = await encryptForRelay(command_array);
- if (!encrypted_content) {
- throw new Error('Failed to encrypt config query command');
- }
-
- // Create kind 23456 admin event
- const configEvent = {
- kind: 23456,
- pubkey: userPubkey,
- created_at: Math.floor(Date.now() / 1000),
- tags: [
- ["p", getRelayPubkey()]
- ],
- content: encrypted_content
- };
-
- // Sign the event
- const signedEvent = await window.nostr.signEvent(configEvent);
- if (!signedEvent || !signedEvent.sig) {
- throw new Error('Event signing failed');
- }
-
- logTestEvent('SENT', `Config Query event: ${JSON.stringify(signedEvent)}`, 'EVENT');
-
- // Publish via SimplePool with detailed error diagnostics
- const url = relayUrl.value.trim();
- const publishPromises = relayPool.publish([url], signedEvent);
-
- // Use Promise.allSettled to capture per-relay outcomes instead of Promise.any
- const results = await Promise.allSettled(publishPromises);
-
- // Log detailed publish results for diagnostics
- let successCount = 0;
- results.forEach((result, index) => {
- if (result.status === 'fulfilled') {
- successCount++;
- logTestEvent('INFO', `Test Config Query relay ${index} publish success`, 'PUBLISH');
- } else {
- logTestEvent('ERROR', `Test Config Query relay ${index} publish failed: ${result.reason?.message || result.reason}`, 'PUBLISH');
- }
- });
-
- // Throw error if all relays failed
- if (successCount === 0) {
- const errorDetails = results.map((r, i) => `Relay ${i}: ${r.reason?.message || r.reason}`).join('; ');
- throw new Error(`All relays rejected test config query event. Details: ${errorDetails}`);
- }
-
- logTestEvent('INFO', 'Config Query command sent successfully', 'SUCCESS');
-
- } catch (error) {
- logTestEvent('ERROR', `Config Query test failed: ${error.message}`, 'ERROR');
- }
+ // Throw error if all relays failed
+ if (successCount === 0) {
+ const errorDetails = results.map((r, i) => `Relay ${i}: ${r.reason?.message || r.reason}`).join('; ');
+ throw new Error(`All relays rejected test add whitelist event. Details: ${errorDetails}`);
}
- // Test: Post Basic Event
- async function testPostEvent() {
- if (!isLoggedIn || !userPubkey) {
- logTestEvent('ERROR', 'Must be logged in to test event posting', 'ERROR');
- return;
- }
+ logTestEvent('INFO', 'Clear Auth Rules command sent successfully', 'SUCCESS');
- if (!relayPool) {
- logTestEvent('ERROR', 'SimplePool connection not available', 'ERROR');
- return;
- }
+ } catch (error) {
+ logTestEvent('ERROR', `Clear Auth Rules test failed: ${error.message}`, 'ERROR');
+ }
+}
- try {
- logTestEvent('INFO', 'Testing basic event posting...', 'TEST');
+// Test: Add Blacklist
+async function testAddBlacklist() {
+ const testPubkeyInput = document.getElementById('test-pubkey-input');
+ let testPubkey = testPubkeyInput ? testPubkeyInput.value.trim() : '';
- // Create a simple kind 1 text note event
- const testEvent = {
- kind: 1,
- pubkey: userPubkey,
- created_at: Math.floor(Date.now() / 1000),
- tags: [
- ["t", "test"],
- ["client", "c-relay-admin-api"]
- ],
- content: `Test event from C-Relay Admin API at ${new Date().toISOString()}`
- };
+ // Use a default test pubkey if none provided
+ if (!testPubkey) {
+ testPubkey = '1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef';
+ logTestEvent('INFO', `Using default test pubkey: ${testPubkey}`, 'INFO');
+ }
- logTestEvent('SENT', `Test event (before signing): ${JSON.stringify(testEvent)}`, 'EVENT');
+ if (!isLoggedIn || !userPubkey) {
+ logTestEvent('ERROR', 'Must be logged in to test admin API', 'ERROR');
+ return;
+ }
- // Sign the event using NIP-07
- const signedEvent = await window.nostr.signEvent(testEvent);
- if (!signedEvent || !signedEvent.sig) {
- throw new Error('Event signing failed');
- }
+ if (!relayPool) {
+ logTestEvent('ERROR', 'SimplePool connection not available', 'ERROR');
+ return;
+ }
- logTestEvent('SENT', `Signed test event: ${JSON.stringify(signedEvent)}`, 'EVENT');
+ try {
+ logTestEvent('INFO', `Testing Add Blacklist for pubkey: ${testPubkey.substring(0, 16)}...`, 'TEST');
- // Publish via SimplePool to the same relay with detailed error diagnostics
- const url = relayConnectionUrl.value.trim();
- logTestEvent('INFO', `Publishing to relay: ${url}`, 'INFO');
+ // Create command array for adding blacklist rule
+ const command_array = `["blacklist", "pubkey", "${testPubkey}"]`;
- const publishPromises = relayPool.publish([url], signedEvent);
-
- // Use Promise.allSettled to capture per-relay outcomes instead of Promise.any
- const results = await Promise.allSettled(publishPromises);
-
- // Log detailed publish results for diagnostics
- let successCount = 0;
- results.forEach((result, index) => {
- if (result.status === 'fulfilled') {
- successCount++;
- logTestEvent('INFO', `Test Post Event relay ${index} publish success`, 'PUBLISH');
- } else {
- logTestEvent('ERROR', `Test Post Event relay ${index} publish failed: ${result.reason?.message || result.reason}`, 'PUBLISH');
- }
- });
-
- // Throw error if all relays failed
- if (successCount === 0) {
- const errorDetails = results.map((r, i) => `Relay ${i}: ${r.reason?.message || r.reason}`).join('; ');
- throw new Error(`All relays rejected test post event. Details: ${errorDetails}`);
- }
-
- logTestEvent('INFO', 'Test event published successfully!', 'SUCCESS');
- logTestEvent('INFO', 'Check if the event appears in the subscription above...', 'INFO');
-
- } catch (error) {
- logTestEvent('ERROR', `Post Event test failed: ${error.message}`, 'ERROR');
- console.error('Post Event test error:', error);
- }
+ // Encrypt the command content using NIP-44
+ const encrypted_content = await encryptForRelay(command_array);
+ if (!encrypted_content) {
+ throw new Error('Failed to encrypt blacklist command');
}
- // Helper function to encrypt content for relay using NIP-44
- async function encryptForRelay(content) {
- try {
- logTestEvent('INFO', `Encrypting content: ${content}`, 'DEBUG');
+ // Create kind 23456 admin event
+ const authEvent = {
+ kind: 23456,
+ pubkey: userPubkey,
+ created_at: Math.floor(Date.now() / 1000),
+ tags: [
+ ["p", getRelayPubkey()]
+ ],
+ content: encrypted_content
+ };
- // Get the relay public key for encryption
- const relayPubkey = getRelayPubkey();
-
- // Check if we have access to NIP-44 encryption via nostr-tools
- if (!window.NostrTools || !window.NostrTools.nip44) {
- throw new Error('NIP-44 encryption not available - nostr-tools library missing');
- }
-
- // Get user's private key for encryption
- // We need to use the NIP-07 extension to get the private key
- if (!window.nostr || !window.nostr.nip44) {
- throw new Error('NIP-44 encryption not available via NIP-07 extension');
- }
-
- // Use NIP-07 extension's NIP-44 encrypt method
- const encrypted_content = await window.nostr.nip44.encrypt(relayPubkey, content);
-
- if (!encrypted_content) {
- throw new Error('NIP-44 encryption returned empty result');
- }
-
- logTestEvent('INFO', `Successfully encrypted content using NIP-44`, 'DEBUG');
- logTestEvent('INFO', `Encrypted content: ${encrypted_content.substring(0, 50)}...`, 'DEBUG');
-
- return encrypted_content;
- } catch (error) {
- logTestEvent('ERROR', `NIP-44 encryption failed: ${error.message}`, 'ERROR');
-
- // Fallback: Try using nostr-tools directly if NIP-07 fails
- try {
- logTestEvent('INFO', 'Attempting fallback encryption with nostr-tools...', 'DEBUG');
-
- if (!window.NostrTools || !window.NostrTools.nip44) {
- throw new Error('nostr-tools NIP-44 not available');
- }
-
- // We need the user's private key, but we can't get it directly
- // This is a security limitation - we should use NIP-07
- throw new Error('Cannot access private key for direct encryption - use NIP-07 extension');
-
- } catch (fallbackError) {
- logTestEvent('ERROR', `Fallback encryption failed: ${fallbackError.message}`, 'ERROR');
- return null;
- }
- }
+ // Sign the event
+ const signedEvent = await window.nostr.signEvent(authEvent);
+ if (!signedEvent || !signedEvent.sig) {
+ throw new Error('Event signing failed');
}
- // Send NIP-17 Direct Message to relay using NIP-59 layering
- async function sendNIP17DM() {
- if (!isLoggedIn || !userPubkey) {
- log('Must be logged in to send DM', 'ERROR');
- return;
+ logTestEvent('SENT', `Add Blacklist event: ${JSON.stringify(signedEvent)}`, 'EVENT');
+
+ // Publish via SimplePool with detailed error diagnostics
+ const url = relayConnectionUrl.value.trim();
+ const publishPromises = relayPool.publish([url], signedEvent);
+
+ // Use Promise.allSettled to capture per-relay outcomes instead of Promise.any
+ const results = await Promise.allSettled(publishPromises);
+
+ // Log detailed publish results for diagnostics
+ let successCount = 0;
+ results.forEach((result, index) => {
+ if (result.status === 'fulfilled') {
+ successCount++;
+ logTestEvent('INFO', `Test Config Query relay ${index} publish success`, 'PUBLISH');
+ } else {
+ logTestEvent('ERROR', `Test Config Query relay ${index} publish failed: ${result.reason?.message || result.reason}`, 'PUBLISH');
}
+ });
- if (!isRelayConnected || !relayPubkey) {
- log('Must be connected to relay to send DM', 'ERROR');
- return;
- }
-
- const message = dmOutbox.value.trim();
- if (!message) {
- log('Please enter a message to send', 'ERROR');
- return;
- }
-
- // Capability checks
- if (!window.nostr || !window.nostr.nip44 || !window.nostr.signEvent) {
- log('NIP-17 DMs require a NIP-07 extension with NIP-44 support', 'ERROR');
- alert('NIP-17 DMs require a NIP-07 extension with NIP-44 support. Please install and configure a compatible extension.');
- return;
- }
-
- if (!window.NostrTools || !window.NostrTools.generateSecretKey || !window.NostrTools.getPublicKey || !window.NostrTools.finalizeEvent) {
- log('NostrTools library not available for ephemeral key operations', 'ERROR');
- alert('NostrTools library not available. Please ensure nostr.bundle.js is loaded.');
- return;
- }
-
- try {
- log(`Sending NIP-17 DM to relay: ${message.substring(0, 50)}...`, 'INFO');
-
- // Step 1: Build unsigned rumor (kind 14)
- const rumor = {
- kind: 14,
- pubkey: userPubkey,
- created_at: Math.floor(Date.now() / 1000), // Canonical time for rumor
- tags: [["p", relayPubkey]],
- content: message
- };
- // NOTE: Rumor remains unsigned per NIP-59
-
- log('Rumor built (unsigned), creating seal...', 'INFO');
-
- // Step 2: Create seal (kind 13)
- const seal = {
- kind: 13,
- pubkey: userPubkey,
- created_at: randomNow(), // Randomized to past for metadata protection
- tags: [], // Empty tags per NIP-59
- content: await window.nostr.nip44.encrypt(relayPubkey, JSON.stringify(rumor))
- };
-
- // Sign seal with long-term key
- const signedSeal = await window.nostr.signEvent(seal);
- if (!signedSeal || !signedSeal.sig) {
- throw new Error('Failed to sign seal event');
- }
-
- log('Seal created and signed, creating gift wrap...', 'INFO');
-
- // Step 3: Create gift wrap (kind 1059) with ephemeral key
- const ephemeralPriv = window.NostrTools.generateSecretKey();
- const ephemeralPub = window.NostrTools.getPublicKey(ephemeralPriv);
-
- const giftWrap = {
- kind: 1059,
- pubkey: ephemeralPub,
- created_at: randomNow(), // Randomized to past for metadata protection
- tags: [["p", relayPubkey]],
- content: await window.NostrTools.nip44.encrypt(
- JSON.stringify(signedSeal),
- window.NostrTools.nip44.getConversationKey(ephemeralPriv, relayPubkey)
- )
- };
-
- // Sign gift wrap with ephemeral key using finalizeEvent
- const signedGiftWrap = window.NostrTools.finalizeEvent(giftWrap, ephemeralPriv);
- if (!signedGiftWrap || !signedGiftWrap.sig) {
- throw new Error('Failed to sign gift wrap event');
- }
-
- log('NIP-17 DM event created and signed with ephemeral key, publishing...', 'INFO');
-
- // Publish via SimplePool
- const url = relayConnectionUrl.value.trim();
- const publishPromises = relayPool.publish([url], signedGiftWrap);
-
- // Use Promise.allSettled to capture per-relay outcomes
- const results = await Promise.allSettled(publishPromises);
-
- // Log detailed publish results
- let successCount = 0;
- results.forEach((result, index) => {
- if (result.status === 'fulfilled') {
- successCount++;
- log(`✅ NIP-17 DM published successfully to relay ${index}`, 'INFO');
- } else {
- log(`❌ NIP-17 DM failed on relay ${index}: ${result.reason?.message || result.reason}`, 'ERROR');
- }
- });
-
- if (successCount === 0) {
- const errorDetails = results.map((r, i) => `Relay ${i}: ${r.reason?.message || r.reason}`).join('; ');
- throw new Error(`All relays rejected NIP-17 DM event. Details: ${errorDetails}`);
- }
-
- // Clear the outbox and show success
- dmOutbox.value = '';
- log('NIP-17 DM sent successfully', 'INFO');
-
- // Add to inbox for display
- addMessageToInbox('sent', message, new Date().toLocaleString());
-
- } catch (error) {
- log(`Failed to send NIP-17 DM: ${error.message}`, 'ERROR');
- }
+ // Throw error if all relays failed
+ if (successCount === 0) {
+ const errorDetails = results.map((r, i) => `Relay ${i}: ${r.reason?.message || r.reason}`).join('; ');
+ throw new Error(`All relays rejected test config query event. Details: ${errorDetails}`);
}
- // Add message to inbox display
- function addMessageToInbox(direction, message, timestamp, pubkey = null) {
- if (!dmInbox) return;
+ logTestEvent('INFO', 'Add Blacklist command sent successfully', 'SUCCESS');
- const messageDiv = document.createElement('div');
- messageDiv.className = 'log-entry';
+ } catch (error) {
+ logTestEvent('ERROR', `Add Blacklist test failed: ${error.message}`, 'ERROR');
+ }
+}
- const directionColor = direction === 'sent' ? '#007bff' : '#28a745';
+// Test: Add Whitelist
+async function testAddWhitelist() {
+ const testPubkeyInput = document.getElementById('test-pubkey-input');
+ let testPubkey = testPubkeyInput ? testPubkeyInput.value.trim() : '';
- // Convert newlines to tags for proper HTML display - const formattedMessage = message.replace(/\n/g, '
'); + // Use a default test pubkey if none provided + if (!testPubkey) { + testPubkey = 'abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890'; + logTestEvent('INFO', `Using default test pubkey: ${testPubkey}`, 'INFO'); + } - // Add pubkey display for received messages - let pubkeyDisplay = ''; - if (pubkey && direction === 'received') { - try { - const npub = window.NostrTools.nip19.npubEncode(pubkey); - pubkeyDisplay = ` (${npub})`; - } catch (error) { - console.error('Failed to encode pubkey to npub:', error); - } + if (!isLoggedIn || !userPubkey) { + logTestEvent('ERROR', 'Must be logged in to test admin API', 'ERROR'); + return; + } + + if (!relayPool) { + logTestEvent('ERROR', 'SimplePool connection not available', 'ERROR'); + return; + } + + try { + logTestEvent('INFO', `Testing Add Whitelist for pubkey: ${testPubkey.substring(0, 16)}...`, 'TEST'); + + // Create command array for adding whitelist rule + const command_array = `["whitelist", "pubkey", "${testPubkey}"]`; + + // Encrypt the command content using NIP-44 + const encrypted_content = await encryptForRelay(command_array); + if (!encrypted_content) { + throw new Error('Failed to encrypt whitelist command'); + } + + // Create kind 23456 admin event + const authEvent = { + kind: 23456, + pubkey: userPubkey, + created_at: Math.floor(Date.now() / 1000), + tags: [ + ["p", getRelayPubkey()] + ], + content: encrypted_content + }; + + // Sign the event + const signedEvent = await window.nostr.signEvent(authEvent); + if (!signedEvent || !signedEvent.sig) { + throw new Error('Event signing failed'); + } + + logTestEvent('SENT', `Add Whitelist event: ${JSON.stringify(signedEvent)}`, 'EVENT'); + + // Publish via SimplePool + const url = relayConnectionUrl.value.trim(); + const publishPromises = relayPool.publish([url], signedEvent); + + // Use Promise.allSettled to capture per-relay outcomes instead of Promise.any + const results = await Promise.allSettled(publishPromises); + + // Log detailed publish results for diagnostics + let successCount = 0; + results.forEach((result, index) => { + if (result.status === 'fulfilled') { + successCount++; + logTestEvent('INFO', `Test Post Event relay ${index} publish success`, 'PUBLISH'); + } else { + logTestEvent('ERROR', `Test Post Event relay ${index} publish failed: ${result.reason?.message || result.reason}`, 'PUBLISH'); + } + }); + + // Throw error if all relays failed + if (successCount === 0) { + const errorDetails = results.map((r, i) => `Relay ${i}: ${r.reason?.message || r.reason}`).join('; '); + throw new Error(`All relays rejected test post event. Details: ${errorDetails}`); + } + + logTestEvent('INFO', 'Add Whitelist command sent successfully', 'SUCCESS'); + + } catch (error) { + logTestEvent('ERROR', `Add Whitelist test failed: ${error.message}`, 'ERROR'); + } +} + +// Test: Config Query +async function testConfigQuery() { + if (!isLoggedIn || !userPubkey) { + logTestEvent('ERROR', 'Must be logged in to test admin API', 'ERROR'); + return; + } + + if (!relayPool) { + logTestEvent('ERROR', 'SimplePool connection not available', 'ERROR'); + return; + } + + try { + logTestEvent('INFO', 'Testing Config Query command...', 'TEST'); + + // Create command array for getting configuration + const command_array = '["config_query", "all"]'; + + // Encrypt the command content using NIP-44 + const encrypted_content = await encryptForRelay(command_array); + if (!encrypted_content) { + throw new Error('Failed to encrypt config query command'); + } + + // Create kind 23456 admin event + const configEvent = { + kind: 23456, + pubkey: userPubkey, + created_at: Math.floor(Date.now() / 1000), + tags: [ + ["p", getRelayPubkey()] + ], + content: encrypted_content + }; + + // Sign the event + const signedEvent = await window.nostr.signEvent(configEvent); + if (!signedEvent || !signedEvent.sig) { + throw new Error('Event signing failed'); + } + + logTestEvent('SENT', `Config Query event: ${JSON.stringify(signedEvent)}`, 'EVENT'); + + // Publish via SimplePool with detailed error diagnostics + const url = relayUrl.value.trim(); + const publishPromises = relayPool.publish([url], signedEvent); + + // Use Promise.allSettled to capture per-relay outcomes instead of Promise.any + const results = await Promise.allSettled(publishPromises); + + // Log detailed publish results for diagnostics + let successCount = 0; + results.forEach((result, index) => { + if (result.status === 'fulfilled') { + successCount++; + logTestEvent('INFO', `Test Config Query relay ${index} publish success`, 'PUBLISH'); + } else { + logTestEvent('ERROR', `Test Config Query relay ${index} publish failed: ${result.reason?.message || result.reason}`, 'PUBLISH'); + } + }); + + // Throw error if all relays failed + if (successCount === 0) { + const errorDetails = results.map((r, i) => `Relay ${i}: ${r.reason?.message || r.reason}`).join('; '); + throw new Error(`All relays rejected test config query event. Details: ${errorDetails}`); + } + + logTestEvent('INFO', 'Config Query command sent successfully', 'SUCCESS'); + + } catch (error) { + logTestEvent('ERROR', `Config Query test failed: ${error.message}`, 'ERROR'); + } +} + +// Test: Post Basic Event +async function testPostEvent() { + if (!isLoggedIn || !userPubkey) { + logTestEvent('ERROR', 'Must be logged in to test event posting', 'ERROR'); + return; + } + + if (!relayPool) { + logTestEvent('ERROR', 'SimplePool connection not available', 'ERROR'); + return; + } + + try { + logTestEvent('INFO', 'Testing basic event posting...', 'TEST'); + + // Create a simple kind 1 text note event + const testEvent = { + kind: 1, + pubkey: userPubkey, + created_at: Math.floor(Date.now() / 1000), + tags: [ + ["t", "test"], + ["client", "c-relay-admin-api"] + ], + content: `Test event from C-Relay Admin API at ${new Date().toISOString()}` + }; + + logTestEvent('SENT', `Test event (before signing): ${JSON.stringify(testEvent)}`, 'EVENT'); + + // Sign the event using NIP-07 + const signedEvent = await window.nostr.signEvent(testEvent); + if (!signedEvent || !signedEvent.sig) { + throw new Error('Event signing failed'); + } + + logTestEvent('SENT', `Signed test event: ${JSON.stringify(signedEvent)}`, 'EVENT'); + + // Publish via SimplePool to the same relay with detailed error diagnostics + const url = relayConnectionUrl.value.trim(); + logTestEvent('INFO', `Publishing to relay: ${url}`, 'INFO'); + + const publishPromises = relayPool.publish([url], signedEvent); + + // Use Promise.allSettled to capture per-relay outcomes instead of Promise.any + const results = await Promise.allSettled(publishPromises); + + // Log detailed publish results for diagnostics + let successCount = 0; + results.forEach((result, index) => { + if (result.status === 'fulfilled') { + successCount++; + logTestEvent('INFO', `Test Post Event relay ${index} publish success`, 'PUBLISH'); + } else { + logTestEvent('ERROR', `Test Post Event relay ${index} publish failed: ${result.reason?.message || result.reason}`, 'PUBLISH'); + } + }); + + // Throw error if all relays failed + if (successCount === 0) { + const errorDetails = results.map((r, i) => `Relay ${i}: ${r.reason?.message || r.reason}`).join('; '); + throw new Error(`All relays rejected test post event. Details: ${errorDetails}`); + } + + logTestEvent('INFO', 'Test event published successfully!', 'SUCCESS'); + logTestEvent('INFO', 'Check if the event appears in the subscription above...', 'INFO'); + + } catch (error) { + logTestEvent('ERROR', `Post Event test failed: ${error.message}`, 'ERROR'); + console.error('Post Event test error:', error); + } +} + +// Helper function to encrypt content for relay using NIP-44 +async function encryptForRelay(content) { + try { + logTestEvent('INFO', `Encrypting content: ${content}`, 'DEBUG'); + + // Get the relay public key for encryption + const relayPubkey = getRelayPubkey(); + + // Check if we have access to NIP-44 encryption via nostr-tools + if (!window.NostrTools || !window.NostrTools.nip44) { + throw new Error('NIP-44 encryption not available - nostr-tools library missing'); + } + + // Get user's private key for encryption + // We need to use the NIP-07 extension to get the private key + if (!window.nostr || !window.nostr.nip44) { + throw new Error('NIP-44 encryption not available via NIP-07 extension'); + } + + // Use NIP-07 extension's NIP-44 encrypt method + const encrypted_content = await window.nostr.nip44.encrypt(relayPubkey, content); + + if (!encrypted_content) { + throw new Error('NIP-44 encryption returned empty result'); + } + + logTestEvent('INFO', `Successfully encrypted content using NIP-44`, 'DEBUG'); + logTestEvent('INFO', `Encrypted content: ${encrypted_content.substring(0, 50)}...`, 'DEBUG'); + + return encrypted_content; + } catch (error) { + logTestEvent('ERROR', `NIP-44 encryption failed: ${error.message}`, 'ERROR'); + + // Fallback: Try using nostr-tools directly if NIP-07 fails + try { + logTestEvent('INFO', 'Attempting fallback encryption with nostr-tools...', 'DEBUG'); + + if (!window.NostrTools || !window.NostrTools.nip44) { + throw new Error('nostr-tools NIP-44 not available'); } - messageDiv.innerHTML = ` + // We need the user's private key, but we can't get it directly + // This is a security limitation - we should use NIP-07 + throw new Error('Cannot access private key for direct encryption - use NIP-07 extension'); + + } catch (fallbackError) { + logTestEvent('ERROR', `Fallback encryption failed: ${fallbackError.message}`, 'ERROR'); + return null; + } + } +} + +// Send NIP-17 Direct Message to relay using NIP-59 layering +async function sendNIP17DM() { + if (!isLoggedIn || !userPubkey) { + log('Must be logged in to send DM', 'ERROR'); + return; + } + + if (!isRelayConnected || !relayPubkey) { + log('Must be connected to relay to send DM', 'ERROR'); + return; + } + + const message = dmOutbox.value.trim(); + if (!message) { + log('Please enter a message to send', 'ERROR'); + return; + } + + // Capability checks + if (!window.nostr || !window.nostr.nip44 || !window.nostr.signEvent) { + log('NIP-17 DMs require a NIP-07 extension with NIP-44 support', 'ERROR'); + alert('NIP-17 DMs require a NIP-07 extension with NIP-44 support. Please install and configure a compatible extension.'); + return; + } + + if (!window.NostrTools || !window.NostrTools.generateSecretKey || !window.NostrTools.getPublicKey || !window.NostrTools.finalizeEvent) { + log('NostrTools library not available for ephemeral key operations', 'ERROR'); + alert('NostrTools library not available. Please ensure nostr.bundle.js is loaded.'); + return; + } + + try { + log(`Sending NIP-17 DM to relay: ${message.substring(0, 50)}...`, 'INFO'); + + // Step 1: Build unsigned rumor (kind 14) + const rumor = { + kind: 14, + pubkey: userPubkey, + created_at: Math.floor(Date.now() / 1000), // Canonical time for rumor + tags: [["p", relayPubkey]], + content: message + }; + // NOTE: Rumor remains unsigned per NIP-59 + + log('Rumor built (unsigned), creating seal...', 'INFO'); + + // Step 2: Create seal (kind 13) + const seal = { + kind: 13, + pubkey: userPubkey, + created_at: randomNow(), // Randomized to past for metadata protection + tags: [], // Empty tags per NIP-59 + content: await window.nostr.nip44.encrypt(relayPubkey, JSON.stringify(rumor)) + }; + + // Sign seal with long-term key + const signedSeal = await window.nostr.signEvent(seal); + if (!signedSeal || !signedSeal.sig) { + throw new Error('Failed to sign seal event'); + } + + log('Seal created and signed, creating gift wrap...', 'INFO'); + + // Step 3: Create gift wrap (kind 1059) with ephemeral key + const ephemeralPriv = window.NostrTools.generateSecretKey(); + const ephemeralPub = window.NostrTools.getPublicKey(ephemeralPriv); + + const giftWrap = { + kind: 1059, + pubkey: ephemeralPub, + created_at: randomNow(), // Randomized to past for metadata protection + tags: [["p", relayPubkey]], + content: await window.NostrTools.nip44.encrypt( + JSON.stringify(signedSeal), + window.NostrTools.nip44.getConversationKey(ephemeralPriv, relayPubkey) + ) + }; + + // Sign gift wrap with ephemeral key using finalizeEvent + const signedGiftWrap = window.NostrTools.finalizeEvent(giftWrap, ephemeralPriv); + if (!signedGiftWrap || !signedGiftWrap.sig) { + throw new Error('Failed to sign gift wrap event'); + } + + log('NIP-17 DM event created and signed with ephemeral key, publishing...', 'INFO'); + + // Publish via SimplePool + const url = relayConnectionUrl.value.trim(); + const publishPromises = relayPool.publish([url], signedGiftWrap); + + // Use Promise.allSettled to capture per-relay outcomes + const results = await Promise.allSettled(publishPromises); + + // Log detailed publish results + let successCount = 0; + results.forEach((result, index) => { + if (result.status === 'fulfilled') { + successCount++; + log(`✅ NIP-17 DM published successfully to relay ${index}`, 'INFO'); + } else { + log(`❌ NIP-17 DM failed on relay ${index}: ${result.reason?.message || result.reason}`, 'ERROR'); + } + }); + + if (successCount === 0) { + const errorDetails = results.map((r, i) => `Relay ${i}: ${r.reason?.message || r.reason}`).join('; '); + throw new Error(`All relays rejected NIP-17 DM event. Details: ${errorDetails}`); + } + + // Clear the outbox and show success + dmOutbox.value = ''; + log('NIP-17 DM sent successfully', 'INFO'); + + // Add to inbox for display + addMessageToInbox('sent', message, new Date().toLocaleString()); + + } catch (error) { + log(`Failed to send NIP-17 DM: ${error.message}`, 'ERROR'); + } +} + +// Add message to inbox display +function addMessageToInbox(direction, message, timestamp, pubkey = null) { + if (!dmInbox) return; + + const messageDiv = document.createElement('div'); + messageDiv.className = 'log-entry'; + + const directionColor = direction === 'sent' ? '#007bff' : '#28a745'; + + // Convert newlines to
tags for proper HTML display + const formattedMessage = message.replace(/\n/g, '
'); + + // Add pubkey display for received messages + let pubkeyDisplay = ''; + if (pubkey && direction === 'received') { + try { + const npub = window.NostrTools.nip19.npubEncode(pubkey); + pubkeyDisplay = ` (${npub})`; + } catch (error) { + console.error('Failed to encode pubkey to npub:', error); + } + } + + messageDiv.innerHTML = ` ${timestamp} [${direction.toUpperCase()}] ${formattedMessage}${pubkeyDisplay} `; - // Remove the "No messages received yet" placeholder if it exists - const placeholder = dmInbox.querySelector('.log-entry'); - if (placeholder && placeholder.textContent === 'No messages received yet.') { - dmInbox.innerHTML = ''; - } + // Remove the "No messages received yet" placeholder if it exists + const placeholder = dmInbox.querySelector('.log-entry'); + if (placeholder && placeholder.textContent === 'No messages received yet.') { + dmInbox.innerHTML = ''; + } - // Add new message at the top - dmInbox.insertBefore(messageDiv, dmInbox.firstChild); + // Add new message at the top + dmInbox.insertBefore(messageDiv, dmInbox.firstChild); - // Limit to last 50 messages - while (dmInbox.children.length > 50) { - dmInbox.removeChild(dmInbox.lastChild); - } + // Limit to last 50 messages + while (dmInbox.children.length > 50) { + dmInbox.removeChild(dmInbox.lastChild); + } +} + +// Helper function to get relay pubkey +function getRelayPubkey() { + // Use the dynamically fetched relay pubkey if available + if (relayPubkey && isRelayConnected) { + return relayPubkey; + } + + // Fallback to hardcoded value for testing/development + log('Warning: Using hardcoded relay pubkey. Please connect to relay first.', 'WARNING'); + return '4f355bdcb7cc0af728ef3cceb9615d90684bb5b2ca5f859ab0f0b704075871aa'; +} + +// Enhanced SimplePool message handler to capture test responses +function enhancePoolForTesting() { + // SimplePool handles message parsing automatically, so we just need to + // ensure our event handlers log appropriately. This is already done + // in the subscription onevent callback. + console.log('SimplePool enhanced for testing - automatic message handling enabled'); +} + +// Generate random test pubkey function +function generateRandomTestKey() { + // Generate 32 random bytes (64 hex characters) for a valid pubkey + const randomBytes = new Uint8Array(32); + crypto.getRandomValues(randomBytes); + + // Convert to hex string + const hexPubkey = Array.from(randomBytes) + .map(b => b.toString(16).padStart(2, '0')) + .join(''); + + // Set the generated key in the input field + const testPubkeyInput = document.getElementById('test-pubkey-input'); + if (testPubkeyInput) { + testPubkeyInput.value = hexPubkey; + logTestEvent('INFO', `Generated random test pubkey: ${hexPubkey.substring(0, 16)}...`, 'KEYGEN'); + } + + return hexPubkey; +} + +// ================================ +// DATABASE STATISTICS FUNCTIONS +// ================================ + +// Send restart command to restart the relay using Administrator API +async function sendRestartCommand() { + if (!isLoggedIn || !userPubkey) { + log('Must be logged in to restart relay', 'ERROR'); + return; + } + + if (!relayPool) { + log('SimplePool connection not available', 'ERROR'); + return; + } + + try { + log('Sending restart command to relay...', 'INFO'); + + // Create command array for restart + const command_array = ["system_command", "restart"]; + + // Encrypt the command array directly using NIP-44 + const encrypted_content = await encryptForRelay(JSON.stringify(command_array)); + if (!encrypted_content) { + throw new Error('Failed to encrypt command array'); } - // Helper function to get relay pubkey - function getRelayPubkey() { - // Use the dynamically fetched relay pubkey if available - if (relayPubkey && isRelayConnected) { - return relayPubkey; - } + // Create single kind 23456 admin event + const restartEvent = { + kind: 23456, + pubkey: userPubkey, + created_at: Math.floor(Date.now() / 1000), + tags: [["p", getRelayPubkey()]], + content: encrypted_content + }; - // Fallback to hardcoded value for testing/development - log('Warning: Using hardcoded relay pubkey. Please connect to relay first.', 'WARNING'); - return '4f355bdcb7cc0af728ef3cceb9615d90684bb5b2ca5f859ab0f0b704075871aa'; + // Sign the event + const signedEvent = await window.nostr.signEvent(restartEvent); + if (!signedEvent || !signedEvent.sig) { + throw new Error('Event signing failed'); } - // Enhanced SimplePool message handler to capture test responses - function enhancePoolForTesting() { - // SimplePool handles message parsing automatically, so we just need to - // ensure our event handlers log appropriately. This is already done - // in the subscription onevent callback. - console.log('SimplePool enhanced for testing - automatic message handling enabled'); + // Publish via SimplePool + const url = relayConnectionUrl.value.trim(); + const publishPromises = relayPool.publish([url], signedEvent); + + // Use Promise.allSettled to capture per-relay outcomes + const results = await Promise.allSettled(publishPromises); + + // Check if any relay accepted the event + let successCount = 0; + results.forEach((result, index) => { + if (result.status === 'fulfilled') { + successCount++; + log(`Restart command published successfully to relay ${index}`, 'INFO'); + } else { + log(`Restart command failed on relay ${index}: ${result.reason?.message || result.reason}`, 'ERROR'); + } + }); + + if (successCount === 0) { + const errorDetails = results.map((r, i) => `Relay ${i}: ${r.reason?.message || r.reason}`).join('; '); + throw new Error(`All relays rejected restart command. Details: ${errorDetails}`); } - // Generate random test pubkey function - function generateRandomTestKey() { - // Generate 32 random bytes (64 hex characters) for a valid pubkey - const randomBytes = new Uint8Array(32); - crypto.getRandomValues(randomBytes); + log('Restart command sent successfully - relay should restart shortly...', 'INFO'); - // Convert to hex string - const hexPubkey = Array.from(randomBytes) - .map(b => b.toString(16).padStart(2, '0')) - .join(''); + // Update connection status to indicate restart is in progress + updateRelayConnectionStatus('connecting'); + relayConnectionStatus.textContent = 'RESTARTING...'; - // Set the generated key in the input field - const testPubkeyInput = document.getElementById('test-pubkey-input'); - if (testPubkeyInput) { - testPubkeyInput.value = hexPubkey; - logTestEvent('INFO', `Generated random test pubkey: ${hexPubkey.substring(0, 16)}...`, 'KEYGEN'); - } + // The relay will disconnect and need to be reconnected after restart + // This will be handled by the WebSocket disconnection event - return hexPubkey; + } catch (error) { + log(`Failed to send restart command: ${error.message}`, 'ERROR'); + updateRelayConnectionStatus('error'); + } +} + +// Send stats_query command to get database statistics using Administrator API (inner events) +async function sendStatsQuery() { + if (!isLoggedIn || !userPubkey) { + log('Must be logged in to query database statistics', 'ERROR'); + updateStatsStatus('error', 'Not logged in'); + return; + } + + if (!relayPool) { + log('SimplePool connection not available', 'ERROR'); + updateStatsStatus('error', 'No relay connection'); + return; + } + + try { + updateStatsStatus('loading', 'Querying database...'); + + // Create command array for stats query + const command_array = ["stats_query", "all"]; + + // Encrypt the command array directly using NIP-44 + const encrypted_content = await encryptForRelay(JSON.stringify(command_array)); + if (!encrypted_content) { + throw new Error('Failed to encrypt command array'); } - // ================================ - // DATABASE STATISTICS FUNCTIONS - // ================================ + // Create single kind 23456 admin event + const statsEvent = { + kind: 23456, + pubkey: userPubkey, + created_at: Math.floor(Date.now() / 1000), + tags: [["p", getRelayPubkey()]], + content: encrypted_content + }; - // Send restart command to restart the relay using Administrator API - async function sendRestartCommand() { - if (!isLoggedIn || !userPubkey) { - log('Must be logged in to restart relay', 'ERROR'); - return; - } - - if (!relayPool) { - log('SimplePool connection not available', 'ERROR'); - return; - } - - try { - log('Sending restart command to relay...', 'INFO'); - - // Create command array for restart - const command_array = ["system_command", "restart"]; - - // Encrypt the command array directly using NIP-44 - const encrypted_content = await encryptForRelay(JSON.stringify(command_array)); - if (!encrypted_content) { - throw new Error('Failed to encrypt command array'); - } - - // Create single kind 23456 admin event - const restartEvent = { - kind: 23456, - pubkey: userPubkey, - created_at: Math.floor(Date.now() / 1000), - tags: [["p", getRelayPubkey()]], - content: encrypted_content - }; - - // Sign the event - const signedEvent = await window.nostr.signEvent(restartEvent); - if (!signedEvent || !signedEvent.sig) { - throw new Error('Event signing failed'); - } - - // Publish via SimplePool - const url = relayConnectionUrl.value.trim(); - const publishPromises = relayPool.publish([url], signedEvent); - - // Use Promise.allSettled to capture per-relay outcomes - const results = await Promise.allSettled(publishPromises); - - // Check if any relay accepted the event - let successCount = 0; - results.forEach((result, index) => { - if (result.status === 'fulfilled') { - successCount++; - log(`Restart command published successfully to relay ${index}`, 'INFO'); - } else { - log(`Restart command failed on relay ${index}: ${result.reason?.message || result.reason}`, 'ERROR'); - } - }); - - if (successCount === 0) { - const errorDetails = results.map((r, i) => `Relay ${i}: ${r.reason?.message || r.reason}`).join('; '); - throw new Error(`All relays rejected restart command. Details: ${errorDetails}`); - } - - log('Restart command sent successfully - relay should restart shortly...', 'INFO'); - - // Update connection status to indicate restart is in progress - updateRelayConnectionStatus('connecting'); - relayConnectionStatus.textContent = 'RESTARTING...'; - - // The relay will disconnect and need to be reconnected after restart - // This will be handled by the WebSocket disconnection event - - } catch (error) { - log(`Failed to send restart command: ${error.message}`, 'ERROR'); - updateRelayConnectionStatus('error'); - } + // Sign the event + const signedEvent = await window.nostr.signEvent(statsEvent); + if (!signedEvent || !signedEvent.sig) { + throw new Error('Event signing failed'); } - // Send stats_query command to get database statistics using Administrator API (inner events) - async function sendStatsQuery() { - if (!isLoggedIn || !userPubkey) { - log('Must be logged in to query database statistics', 'ERROR'); - updateStatsStatus('error', 'Not logged in'); - return; + log('Sending stats query command...', 'INFO'); + + // Publish via SimplePool + const url = relayConnectionUrl.value.trim(); + const publishPromises = relayPool.publish([url], signedEvent); + + // Use Promise.allSettled to capture per-relay outcomes + const results = await Promise.allSettled(publishPromises); + + // Check if any relay accepted the event + let successCount = 0; + results.forEach((result, index) => { + if (result.status === 'fulfilled') { + successCount++; + log(`Stats query published successfully to relay ${index}`, 'INFO'); + } else { + log(`Stats query failed on relay ${index}: ${result.reason?.message || result.reason}`, 'ERROR'); } + }); - if (!relayPool) { - log('SimplePool connection not available', 'ERROR'); - updateStatsStatus('error', 'No relay connection'); - return; - } - - try { - updateStatsStatus('loading', 'Querying database...'); - - // Create command array for stats query - const command_array = ["stats_query", "all"]; - - // Encrypt the command array directly using NIP-44 - const encrypted_content = await encryptForRelay(JSON.stringify(command_array)); - if (!encrypted_content) { - throw new Error('Failed to encrypt command array'); - } - - // Create single kind 23456 admin event - const statsEvent = { - kind: 23456, - pubkey: userPubkey, - created_at: Math.floor(Date.now() / 1000), - tags: [["p", getRelayPubkey()]], - content: encrypted_content - }; - - // Sign the event - const signedEvent = await window.nostr.signEvent(statsEvent); - if (!signedEvent || !signedEvent.sig) { - throw new Error('Event signing failed'); - } - - log('Sending stats query command...', 'INFO'); - - // Publish via SimplePool - const url = relayConnectionUrl.value.trim(); - const publishPromises = relayPool.publish([url], signedEvent); - - // Use Promise.allSettled to capture per-relay outcomes - const results = await Promise.allSettled(publishPromises); - - // Check if any relay accepted the event - let successCount = 0; - results.forEach((result, index) => { - if (result.status === 'fulfilled') { - successCount++; - log(`Stats query published successfully to relay ${index}`, 'INFO'); - } else { - log(`Stats query failed on relay ${index}: ${result.reason?.message || result.reason}`, 'ERROR'); - } - }); - - if (successCount === 0) { - const errorDetails = results.map((r, i) => `Relay ${i}: ${r.reason?.message || r.reason}`).join('; '); - throw new Error(`All relays rejected stats query event. Details: ${errorDetails}`); - } - - log('Stats query command sent successfully - waiting for response...', 'INFO'); - updateStatsStatus('waiting', 'Waiting for response...'); - - } catch (error) { - log(`Failed to send stats query: ${error.message}`, 'ERROR'); - updateStatsStatus('error', error.message); - } + if (successCount === 0) { + const errorDetails = results.map((r, i) => `Relay ${i}: ${r.reason?.message || r.reason}`).join('; '); + throw new Error(`All relays rejected stats query event. Details: ${errorDetails}`); } - // Handle stats_query response and populate tables - function handleStatsQueryResponse(responseData) { - try { - log('Processing stats query response...', 'INFO'); - console.log('Stats response data:', responseData); + log('Stats query command sent successfully - waiting for response...', 'INFO'); + updateStatsStatus('waiting', 'Waiting for response...'); - if (responseData.query_type !== 'stats_query') { - log('Ignoring non-stats response', 'WARNING'); - return; - } + } catch (error) { + log(`Failed to send stats query: ${error.message}`, 'ERROR'); + updateStatsStatus('error', error.message); + } +} - // Populate overview table - populateStatsOverview(responseData); +// Handle stats_query response and populate tables +function handleStatsQueryResponse(responseData) { + try { + log('Processing stats query response...', 'INFO'); + console.log('Stats response data:', responseData); - // Populate event kinds table - populateStatsKinds(responseData); - - // Populate time-based statistics - populateStatsTime(responseData); - - // Populate top pubkeys table - populateStatsPubkeys(responseData); - - updateStatsStatus('loaded'); - log('Database statistics updated successfully', 'INFO'); - - } catch (error) { - log(`Error processing stats response: ${error.message}`, 'ERROR'); - updateStatsStatus('error', 'Failed to process response'); - } + if (responseData.query_type !== 'stats_query') { + log('Ignoring non-stats response', 'WARNING'); + return; } - // Populate database overview table - function populateStatsOverview(data) { - if (!data) return; + // Populate overview table + populateStatsOverview(responseData); - // Update individual cells - const dbSize = document.getElementById('db-size'); - const totalEvents = document.getElementById('total-events'); - const oldestEvent = document.getElementById('oldest-event'); - const newestEvent = document.getElementById('newest-event'); + // Populate event kinds table + populateStatsKinds(responseData); - if (dbSize) dbSize.textContent = data.database_size_bytes ? formatFileSize(data.database_size_bytes) : '-'; - if (totalEvents) totalEvents.textContent = data.total_events || '-'; - if (oldestEvent) oldestEvent.textContent = data.database_created_at ? formatTimestamp(data.database_created_at) : '-'; - if (newestEvent) newestEvent.textContent = data.latest_event_at ? formatTimestamp(data.latest_event_at) : '-'; - } + // Populate time-based statistics + populateStatsTime(responseData); - // Populate event kinds distribution table - function populateStatsKinds(data) { - const tableBody = document.getElementById('stats-kinds-table-body'); - if (!tableBody || !data.event_kinds) return; + // Populate top pubkeys table + populateStatsPubkeys(responseData); - tableBody.innerHTML = ''; + updateStatsStatus('loaded'); + log('Database statistics updated successfully', 'INFO'); - if (data.event_kinds.length === 0) { - const row = document.createElement('tr'); - row.innerHTML = '
SYSTEM: Test log cleared.
';
- }
+ if (countdownSeconds <= 0) {
+ // Time to refresh
+ if (isLoggedIn && isRelayConnected) {
+ log('Auto-refreshing database statistics...', 'INFO');
+ sendStatsQuery().then(() => {
+ // Flash button red on successful refresh
+ flashRefreshButton();
+ // Reset countdown
+ countdownSeconds = 10;
+ updateCountdownDisplay();
+ }).catch(error => {
+ log(`Auto-refresh failed: ${error.message}`, 'ERROR');
+ // Reset countdown even on failure
+ countdownSeconds = 10;
+ updateCountdownDisplay();
});
+ } else {
+ // Reset countdown if not logged in/connected
+ countdownSeconds = 10;
+ updateCountdownDisplay();
}
+ }
+ }, 1000); // Update every 1 second
- if (generateTestKeyBtn) {
- generateTestKeyBtn.addEventListener('click', generateRandomTestKey);
- }
+ log('Database statistics auto-refresh started (10 second intervals)', 'INFO');
+}
- // Show test input section when needed
- const testInputSection = document.getElementById('test-input-section');
- if (testInputSection) {
- testInputSection.style.display = 'block';
- }
+// Stop auto-refreshing database statistics
+function stopStatsAutoRefresh() {
+ if (statsAutoRefreshInterval) {
+ clearInterval(statsAutoRefreshInterval);
+ statsAutoRefreshInterval = null;
+ }
+ if (countdownInterval) {
+ clearInterval(countdownInterval);
+ countdownInterval = null;
+ }
+ // Reset countdown display
+ updateCountdownDisplay();
+ log('Database statistics auto-refresh stopped', 'INFO');
+}
- // Database statistics event handlers
- const refreshStatsBtn = document.getElementById('refresh-stats-btn');
- if (refreshStatsBtn) {
- refreshStatsBtn.addEventListener('click', sendStatsQuery);
- }
-
- // NIP-17 DM event handlers
- if (sendDmBtn) {
- sendDmBtn.addEventListener('click', sendNIP17DM);
+// Update countdown display in refresh button
+function updateCountdownDisplay() {
+ const refreshBtn = document.getElementById('refresh-stats-btn');
+ if (!refreshBtn) return;
+
+ if (countdownInterval && isLoggedIn && isRelayConnected) {
+ // Japanese Kanji numbers: 〇 一 二 三 四 五 六 七 八 九 十
+ const kanjiNumbers = ['〇', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十'];
+
+ // Show single character counting down from 十 (10) to 〇 (0)
+ if (countdownSeconds >= 0 && countdownSeconds <= 10) {
+ refreshBtn.textContent = kanjiNumbers[countdownSeconds];
+ } else {
+ refreshBtn.textContent = '';
+ }
+ } else {
+ // Show empty when not active
+ refreshBtn.textContent = '';
+ }
+}
+
+// Flash refresh button red on successful refresh
+function flashRefreshButton() {
+ const refreshBtn = document.getElementById('refresh-stats-btn');
+ if (!refreshBtn) return;
+
+ // Add red flash class
+ refreshBtn.classList.add('flash-red');
+
+ // Remove flash class after animation
+ setTimeout(() => {
+ refreshBtn.classList.remove('flash-red');
+ }, 500); // Match CSS animation duration
+}
+
+// Event handlers for test buttons
+document.addEventListener('DOMContentLoaded', () => {
+ // Test button event handlers
+ const testGetAuthRulesBtn = document.getElementById('test-get-auth-rules-btn');
+ const testClearAuthRulesBtn = document.getElementById('test-clear-auth-rules-btn');
+ const testAddBlacklistBtn = document.getElementById('test-add-blacklist-btn');
+ const testAddWhitelistBtn = document.getElementById('test-add-whitelist-btn');
+ const testConfigQueryBtn = document.getElementById('test-config-query-btn');
+ const testPostEventBtn = document.getElementById('test-post-event-btn');
+ const clearTestLogBtn = document.getElementById('clear-test-log-btn');
+ const generateTestKeyBtn = document.getElementById('generate-test-key-btn');
+
+ if (testGetAuthRulesBtn) {
+ testGetAuthRulesBtn.addEventListener('click', testGetAuthRules);
+ }
+
+ if (testClearAuthRulesBtn) {
+ testClearAuthRulesBtn.addEventListener('click', testClearAuthRules);
+ }
+
+ if (testAddBlacklistBtn) {
+ testAddBlacklistBtn.addEventListener('click', testAddBlacklist);
+ }
+
+ if (testAddWhitelistBtn) {
+ testAddWhitelistBtn.addEventListener('click', testAddWhitelist);
+ }
+
+ if (testConfigQueryBtn) {
+ testConfigQueryBtn.addEventListener('click', testConfigQuery);
+ }
+
+ if (testPostEventBtn) {
+ testPostEventBtn.addEventListener('click', testPostEvent);
+ }
+
+ if (clearTestLogBtn) {
+ clearTestLogBtn.addEventListener('click', () => {
+ const testLog = document.getElementById('test-event-log');
+ if (testLog) {
+ testLog.innerHTML = 'SYSTEM: Test log cleared.
';
}
});
+ }
- // Set default relay URL based on where the page is being served from
- function setDefaultRelayUrl() {
- const relayUrlInput = document.getElementById('relay-connection-url');
- if (!relayUrlInput) return;
+ if (generateTestKeyBtn) {
+ generateTestKeyBtn.addEventListener('click', generateRandomTestKey);
+ }
- // Get the current page's protocol and hostname
- const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:';
- const hostname = window.location.hostname;
- const port = window.location.port;
+ // Show test input section when needed
+ const testInputSection = document.getElementById('test-input-section');
+ if (testInputSection) {
+ testInputSection.style.display = 'block';
+ }
- // Construct the relay URL
- let relayUrl;
- if (hostname === 'localhost' || hostname === '127.0.0.1') {
- // For localhost, default to ws://localhost:8888
- relayUrl = 'ws://localhost:8888';
- } else {
- // For production, use the same hostname with WebSocket protocol
- // Remove port from URL since relay typically runs on standard ports (80/443)
- relayUrl = `${protocol}//${hostname}`;
- }
+ // Database statistics event handlers
+ const refreshStatsBtn = document.getElementById('refresh-stats-btn');
+ if (refreshStatsBtn) {
+ refreshStatsBtn.addEventListener('click', sendStatsQuery);
+ }
- relayUrlInput.value = relayUrl;
- log(`Default relay URL set to: ${relayUrl}`, 'INFO');
- }
+ // NIP-17 DM event handlers
+ if (sendDmBtn) {
+ sendDmBtn.addEventListener('click', sendNIP17DM);
+ }
+});
- // Initialize the app
- document.addEventListener('DOMContentLoaded', () => {
- console.log('C-Relay Admin API interface loaded');
+// Set default relay URL based on where the page is being served from
+function setDefaultRelayUrl() {
+ const relayUrlInput = document.getElementById('relay-connection-url');
+ if (!relayUrlInput) return;
- // Set default relay URL based on current page location
- setDefaultRelayUrl();
+ // Get the current page's protocol and hostname
+ const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:';
+ const hostname = window.location.hostname;
+ const port = window.location.port;
- // Initialize login/logout button state
- updateLoginLogoutButton();
+ // Construct the relay URL
+ let relayUrl;
+ if (hostname === 'localhost' || hostname === '127.0.0.1') {
+ // For localhost, default to ws://localhost:8888
+ relayUrl = 'ws://localhost:8888';
+ } else {
+ // For production, use the same hostname with WebSocket protocol
+ // Remove port from URL since relay typically runs on standard ports (80/443)
+ relayUrl = `${protocol}//${hostname}`;
+ }
- // Ensure admin sections are hidden by default on page load
- updateAdminSectionsVisibility();
+ relayUrlInput.value = relayUrl;
+ log(`Default relay URL set to: ${relayUrl}`, 'INFO');
+}
- setTimeout(() => {
- initializeApp();
- // Enhance SimplePool for testing after initialization
- setTimeout(enhancePoolForTesting, 2000);
- }, 100);
- });
\ No newline at end of file
+// Initialize the app
+document.addEventListener('DOMContentLoaded', () => {
+ console.log('C-Relay Admin API interface loaded');
+
+ // Set default relay URL based on current page location
+ setDefaultRelayUrl();
+
+ // Ensure admin sections are hidden by default on page load
+ updateAdminSectionsVisibility();
+
+ setTimeout(() => {
+ initializeApp();
+ // Enhance SimplePool for testing after initialization
+ setTimeout(enhancePoolForTesting, 2000);
+ }, 100);
+});
\ No newline at end of file
diff --git a/c_utils_lib b/c_utils_lib
index 3fd5d09..442facd 160000
--- a/c_utils_lib
+++ b/c_utils_lib
@@ -1 +1 @@
-Subproject commit 3fd5d0911a3da6d4821a9f71342ca45ee6959b25
+Subproject commit 442facd7e31991744fbdf54c63ad3a6c427324b6
diff --git a/docs/c_utils_lib_architecture.md b/docs/c_utils_lib_architecture.md
new file mode 100644
index 0000000..eb05808
--- /dev/null
+++ b/docs/c_utils_lib_architecture.md
@@ -0,0 +1,457 @@
+# c_utils_lib Architecture Plan
+
+## Overview
+
+`c_utils_lib` is a standalone C utility library designed to provide reusable, general-purpose functions for C projects. It serves as a learning repository and a practical toolkit for common C programming tasks.
+
+## Design Philosophy
+
+1. **Zero External Dependencies**: Only standard C library dependencies
+2. **Modular Design**: Each utility is independent and can be used separately
+3. **Learning-Oriented**: Well-documented code suitable for learning C
+4. **Production-Ready**: Battle-tested utilities from real projects
+5. **Cross-Platform**: Works on Linux, macOS, and other POSIX systems
+
+## Repository Structure
+
+```
+c_utils_lib/
+├── README.md # Main documentation
+├── LICENSE # MIT License
+├── VERSION # Current version (e.g., v0.1.0)
+├── build.sh # Build script
+├── Makefile # Build system
+├── .gitignore # Git ignore rules
+│
+├── include/ # Public headers
+│ ├── c_utils.h # Main header (includes all utilities)
+│ ├── debug.h # Debug/logging system
+│ ├── version.h # Version utilities
+│ ├── string_utils.h # String utilities (future)
+│ └── memory_utils.h # Memory utilities (future)
+│
+├── src/ # Implementation files
+│ ├── debug.c # Debug system implementation
+│ ├── version.c # Version utilities implementation
+│ ├── string_utils.c # String utilities (future)
+│ └── memory_utils.c # Memory utilities (future)
+│
+├── examples/ # Usage examples
+│ ├── debug_example.c # Debug system example
+│ ├── version_example.c # Version utilities example
+│ └── Makefile # Examples build system
+│
+├── tests/ # Unit tests
+│ ├── test_debug.c # Debug system tests
+│ ├── test_version.c # Version utilities tests
+│ ├── run_tests.sh # Test runner
+│ └── Makefile # Tests build system
+│
+└── docs/ # Additional documentation
+ ├── API.md # Complete API reference
+ ├── INTEGRATION.md # How to integrate into projects
+ ├── VERSIONING.md # Versioning system guide
+ └── CONTRIBUTING.md # Contribution guidelines
+```
+
+## Initial Utilities (v0.1.0)
+
+### 1. Debug System (`debug.h`, `debug.c`)
+
+**Purpose**: Unified logging and debugging system with configurable verbosity levels.
+
+**Features**:
+- 5 debug levels: NONE, ERROR, WARN, INFO, DEBUG, TRACE
+- Timestamp formatting
+- File/line information at TRACE level
+- Macro-based API for zero-cost when disabled
+- Thread-safe (future enhancement)
+
+**API**:
+```c
+// Initialization
+void debug_init(int level);
+
+// Logging macros
+DEBUG_ERROR(format, ...);
+DEBUG_WARN(format, ...);
+DEBUG_INFO(format, ...);
+DEBUG_LOG(format, ...);
+DEBUG_TRACE(format, ...);
+
+// Global debug level
+extern debug_level_t g_debug_level;
+```
+
+**Usage Example**:
+```c
+#include