UNPKG

@cartesi/logger

Version:
333 lines 86.5 kB
{ "contractName": "LoggerTestInstantiator", "sourceName": "contracts/LoggerTestInstantiator.sol", "abi": [ { "inputs": [ { "internalType": "address", "name": "_user", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_index", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "_user", "type": "address" } ], "name": "LoggerTestCreated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_index", "type": "uint256" }, { "indexed": false, "internalType": "uint8", "name": "_state", "type": "uint8" } ], "name": "LoggerTestFinished", "type": "event" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" }, { "internalType": "bytes32", "name": "_submittedHash", "type": "bytes32" } ], "name": "claimDownloading", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" } ], "name": "claimFinished", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" } ], "name": "claimSubmitting", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "currentIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" } ], "name": "getCurrentState", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" } ], "name": "getNonce", "outputs": [ { "internalType": "uint256", "name": "currentNonce", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "getState", "outputs": [ { "internalType": "address", "name": "_user", "type": "address" }, { "internalType": "bytes32", "name": "_hash", "type": "bytes32" }, { "internalType": "bytes32", "name": "_currentState", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "getSubInstances", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" }, { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" } ], "name": "isActive", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" }, { "internalType": "address", "name": "_user", "type": "address" } ], "name": "isConcerned", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" } ], "name": "stateIsDownloading", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" } ], "name": "stateIsFinished", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" } ], "name": "stateIsSubmitting", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" } ], "bytecode": "0x60806040526000805534801561001457600080fd5b50604051610e1f380380610e1f8339818101604052602081101561003757600080fd5b50516000808055808052600360209081527f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff80546001600160a01b0319166001600160a01b03851690811782557f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92f01805460ff191690556040805194855292840152815190927f77a232d0b541d1b39d33a99d472f21d566b9eca98e550634b0154ffda4f8592592908290030190a150506000805481526001602081905260408220805460ff1916821790558154019055610d09806101166000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80635748c1301161008c57806397e33a021161006657806397e33a02146102325780639e8201871461024f578063c526656c1461026c578063ef068ba414610331576100cf565b80635748c130146101a457806373df1612146101c157806382afd23b14610215576100cf565b806301ff62ab146100d45780630f3887b414610114578063155d31da1461013357806315d84dc21461015057806326987b601461016d5780633d46b81914610187575b600080fd5b610100600480360360408110156100ea57600080fd5b50803590602001356001600160a01b0316610354565b604080519115158252519081900360200190f35b6101316004803603602081101561012a57600080fd5b5035610375565b005b6101006004803603602081101561014957600080fd5b50356104b4565b6101006004803603602081101561016657600080fd5b503561052a565b610175610578565b60408051918252519081900360200190f35b6101756004803603602081101561019d57600080fd5b503561057e565b610175600480360360208110156101ba57600080fd5b5035610624565b6101ed600480360360408110156101d757600080fd5b50803590602001356001600160a01b031661079d565b604080516001600160a01b039094168452602084019290925282820152519081900360600190f35b6101006004803603602081101561022b57600080fd5b50356108fc565b6101316004803603602081101561024857600080fd5b5035610911565b6101006004803603602081101561026557600080fd5b5035610ac0565b6102986004803603604081101561028257600080fd5b50803590602001356001600160a01b0316610b0e565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156102dc5781810151838201526020016102c4565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561031b578181015183820152602001610303565b5050505090500194505050505060405180910390f35b6101316004803603604081101561034757600080fd5b5080359060200135610b29565b600091825260036020526040909120546001600160a01b0391821691161490565b8080600054116103ba576040805162461bcd60e51b81526020600482015260166024820152600080516020610cb4833981519152604482015290519081900360640190fd5b6000828152600360205260409020546001600160a01b0316338114610421576040805162461bcd60e51b815260206004820152601860248201527721b0b73737ba1031329031b0b63632b210313c903ab9b2b960411b604482015290519081900360640190fd5b600083815260036020819052604082206002015460ff169081111561044257fe5b14610494576040805162461bcd60e51b815260206004820152601860248201527f5468652073746174652073686f756c642062652049646c650000000000000000604482015290519081900360640190fd5b50506000908152600360205260409020600201805460ff19166001179055565b60008180600054116104fb576040805162461bcd60e51b81526020600482015260166024820152600080516020610cb4833981519152604482015290519081900360640190fd5b60025b60008481526003602081905260409091206002015460ff169081111561052057fe5b1491505b50919050565b6000818060005411610571576040805162461bcd60e51b81526020600482015260166024820152600080516020610cb4833981519152604482015290519081900360640190fd5b60016104fe565b60005481565b60008180600054116105c5576040805162461bcd60e51b81526020600482015260166024820152600080516020610cb4833981519152604482015290519081900360640190fd5b6105ce816108fc565b610610576040805162461bcd60e51b815260206004820152600e60248201526d496e64657820696e61637469766560901b604482015290519081900360640190fd5b505060009081526002602052604090205490565b600081806000541161066b576040805162461bcd60e51b81526020600482015260166024820152600080516020610cb4833981519152604482015290519081900360640190fd5b600083815260036020819052604082206002015460ff169081111561068c57fe5b14156106a1576349646c6560e01b9150610524565b600160008481526003602081905260409091206002015460ff16908111156106c557fe5b14156106e057695375626d697474696e6760b01b9150610524565b600260008481526003602081905260409091206002015460ff169081111561070457fe5b1415610720576a446f776e6c6f6164696e6760a81b9150610524565b60008381526003602081905260409091206002015460ff168181111561074257fe5b141561075b5767119a5b9a5cda195960c21b9150610524565b6040805162461bcd60e51b8152602060048201526012602482015271556e7265636f676e697a656420737461746560701b604482015290519081900360640190fd5b60008060006107aa610c95565b600086815260036020818152604092839020835160608101855281546001600160a01b031681526001820154928101929092526002810154919390929084019160ff16908111156107f757fe5b600381111561080257fe5b905250905060008060008881526003602081905260409091206002015460ff169081111561082c57fe5b141561083c57506349646c6560e01b5b600160008881526003602081905260409091206002015460ff169081111561086057fe5b14156108765750695375626d697474696e6760b01b5b600260008881526003602081905260409091206002015460ff169081111561089a57fe5b14156108b157506a446f776e6c6f6164696e6760a81b5b60008781526003602081905260409091206002015460ff16818111156108d357fe5b14156108e7575067119a5b9a5cda195960c21b5b81516020909201519197919650945092505050565b60009081526001602052604090205460ff1690565b808060005411610956576040805162461bcd60e51b81526020600482015260166024820152600080516020610cb4833981519152604482015290519081900360640190fd5b6000828152600360205260409020546001600160a01b03163381146109bd576040805162461bcd60e51b815260206004820152601860248201527721b0b73737ba1031329031b0b63632b210313c903ab9b2b960411b604482015290519081900360640190fd5b600260008481526003602081905260409091206002015460ff16908111156109e157fe5b14610a33576040805162461bcd60e51b815260206004820152601f60248201527f5468652073746174652073686f756c6420626520446f776e6c6f6164696e6700604482015290519081900360640190fd5b6000838152600360208190526040909120600201805460ff19169091179055610a5b83610c72565b6000838152600360208190526040909120600201547fbdd51eb9fb70bb6e48865170e5931f9a9ad837dd15a4749be5eb0de6e645856191859160ff1690811115610aa157fe5b6040805192835260ff90911660208301528051918290030190a1505050565b6000818060005411610b07576040805162461bcd60e51b81526020600482015260166024820152600080516020610cb4833981519152604482015290519081900360640190fd5b60036104fe565b50506040805160008082526020820190815281830190925291565b818060005411610b6e576040805162461bcd60e51b81526020600482015260166024820152600080516020610cb4833981519152604482015290519081900360640190fd5b6000838152600360205260409020546001600160a01b0316338114610bd5576040805162461bcd60e51b815260206004820152601860248201527721b0b73737ba1031329031b0b63632b210313c903ab9b2b960411b604482015290519081900360640190fd5b600160008581526003602081905260409091206002015460ff1690811115610bf957fe5b14610c4b576040805162461bcd60e51b815260206004820152601e60248201527f5468652073746174652073686f756c64206265205375626d697474696e670000604482015290519081900360640190fd5b50506000918252600360205260409091206002808201805460ff1916909117905560010155565b6000908152600160209081526040808320805460ff191690556002909152812055565b6040805160608101825260008082526020820181905290918201529056fe496e646578206e6f7420696e7374616e74696174656400000000000000000000a2646970667358221220486399402018ed9f563fd60544bdc15e9657d5e3687a67e44638d7e606f5233b64736f6c63430007040033", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c80635748c1301161008c57806397e33a021161006657806397e33a02146102325780639e8201871461024f578063c526656c1461026c578063ef068ba414610331576100cf565b80635748c130146101a457806373df1612146101c157806382afd23b14610215576100cf565b806301ff62ab146100d45780630f3887b414610114578063155d31da1461013357806315d84dc21461015057806326987b601461016d5780633d46b81914610187575b600080fd5b610100600480360360408110156100ea57600080fd5b50803590602001356001600160a01b0316610354565b604080519115158252519081900360200190f35b6101316004803603602081101561012a57600080fd5b5035610375565b005b6101006004803603602081101561014957600080fd5b50356104b4565b6101006004803603602081101561016657600080fd5b503561052a565b610175610578565b60408051918252519081900360200190f35b6101756004803603602081101561019d57600080fd5b503561057e565b610175600480360360208110156101ba57600080fd5b5035610624565b6101ed600480360360408110156101d757600080fd5b50803590602001356001600160a01b031661079d565b604080516001600160a01b039094168452602084019290925282820152519081900360600190f35b6101006004803603602081101561022b57600080fd5b50356108fc565b6101316004803603602081101561024857600080fd5b5035610911565b6101006004803603602081101561026557600080fd5b5035610ac0565b6102986004803603604081101561028257600080fd5b50803590602001356001600160a01b0316610b0e565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156102dc5781810151838201526020016102c4565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561031b578181015183820152602001610303565b5050505090500194505050505060405180910390f35b6101316004803603604081101561034757600080fd5b5080359060200135610b29565b600091825260036020526040909120546001600160a01b0391821691161490565b8080600054116103ba576040805162461bcd60e51b81526020600482015260166024820152600080516020610cb4833981519152604482015290519081900360640190fd5b6000828152600360205260409020546001600160a01b0316338114610421576040805162461bcd60e51b815260206004820152601860248201527721b0b73737ba1031329031b0b63632b210313c903ab9b2b960411b604482015290519081900360640190fd5b600083815260036020819052604082206002015460ff169081111561044257fe5b14610494576040805162461bcd60e51b815260206004820152601860248201527f5468652073746174652073686f756c642062652049646c650000000000000000604482015290519081900360640190fd5b50506000908152600360205260409020600201805460ff19166001179055565b60008180600054116104fb576040805162461bcd60e51b81526020600482015260166024820152600080516020610cb4833981519152604482015290519081900360640190fd5b60025b60008481526003602081905260409091206002015460ff169081111561052057fe5b1491505b50919050565b6000818060005411610571576040805162461bcd60e51b81526020600482015260166024820152600080516020610cb4833981519152604482015290519081900360640190fd5b60016104fe565b60005481565b60008180600054116105c5576040805162461bcd60e51b81526020600482015260166024820152600080516020610cb4833981519152604482015290519081900360640190fd5b6105ce816108fc565b610610576040805162461bcd60e51b815260206004820152600e60248201526d496e64657820696e61637469766560901b604482015290519081900360640190fd5b505060009081526002602052604090205490565b600081806000541161066b576040805162461bcd60e51b81526020600482015260166024820152600080516020610cb4833981519152604482015290519081900360640190fd5b600083815260036020819052604082206002015460ff169081111561068c57fe5b14156106a1576349646c6560e01b9150610524565b600160008481526003602081905260409091206002015460ff16908111156106c557fe5b14156106e057695375626d697474696e6760b01b9150610524565b600260008481526003602081905260409091206002015460ff169081111561070457fe5b1415610720576a446f776e6c6f6164696e6760a81b9150610524565b60008381526003602081905260409091206002015460ff168181111561074257fe5b141561075b5767119a5b9a5cda195960c21b9150610524565b6040805162461bcd60e51b8152602060048201526012602482015271556e7265636f676e697a656420737461746560701b604482015290519081900360640190fd5b60008060006107aa610c95565b600086815260036020818152604092839020835160608101855281546001600160a01b031681526001820154928101929092526002810154919390929084019160ff16908111156107f757fe5b600381111561080257fe5b905250905060008060008881526003602081905260409091206002015460ff169081111561082c57fe5b141561083c57506349646c6560e01b5b600160008881526003602081905260409091206002015460ff169081111561086057fe5b14156108765750695375626d697474696e6760b01b5b600260008881526003602081905260409091206002015460ff169081111561089a57fe5b14156108b157506a446f776e6c6f6164696e6760a81b5b60008781526003602081905260409091206002015460ff16818111156108d357fe5b14156108e7575067119a5b9a5cda195960c21b5b81516020909201519197919650945092505050565b60009081526001602052604090205460ff1690565b808060005411610956576040805162461bcd60e51b81526020600482015260166024820152600080516020610cb4833981519152604482015290519081900360640190fd5b6000828152600360205260409020546001600160a01b03163381146109bd576040805162461bcd60e51b815260206004820152601860248201527721b0b73737ba1031329031b0b63632b210313c903ab9b2b960411b604482015290519081900360640190fd5b600260008481526003602081905260409091206002015460ff16908111156109e157fe5b14610a33576040805162461bcd60e51b815260206004820152601f60248201527f5468652073746174652073686f756c6420626520446f776e6c6f6164696e6700604482015290519081900360640190fd5b6000838152600360208190526040909120600201805460ff19169091179055610a5b83610c72565b6000838152600360208190526040909120600201547fbdd51eb9fb70bb6e48865170e5931f9a9ad837dd15a4749be5eb0de6e645856191859160ff1690811115610aa157fe5b6040805192835260ff90911660208301528051918290030190a1505050565b6000818060005411610b07576040805162461bcd60e51b81526020600482015260166024820152600080516020610cb4833981519152604482015290519081900360640190fd5b60036104fe565b50506040805160008082526020820190815281830190925291565b818060005411610b6e576040805162461bcd60e51b81526020600482015260166024820152600080516020610cb4833981519152604482015290519081900360640190fd5b6000838152600360205260409020546001600160a01b0316338114610bd5576040805162461bcd60e51b815260206004820152601860248201527721b0b73737ba1031329031b0b63632b210313c903ab9b2b960411b604482015290519081900360640190fd5b600160008581526003602081905260409091206002015460ff1690811115610bf957fe5b14610c4b576040805162461bcd60e51b815260206004820152601e60248201527f5468652073746174652073686f756c64206265205375626d697474696e670000604482015290519081900360640190fd5b50506000918252600360205260409091206002808201805460ff1916909117905560010155565b6000908152600160209081526040808320805460ff191690556002909152812055565b6040805160608101825260008082526020820181905290918201529056fe496e646578206e6f7420696e7374616e74696174656400000000000000000000a2646970667358221220486399402018ed9f563fd60544bdc15e9657d5e3687a67e44638d7e606f5233b64736f6c63430007040033", "linkReferences": {}, "deployedLinkReferences": {}, "devdoc": { "kind": "dev", "methods": {}, "version": 1 }, "evm": { "bytecode": { "generatedSources": [], "linkReferences": {}, "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xE1F CODESIZE SUB DUP1 PUSH2 0xE1F DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x37 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x0 DUP1 DUP1 SSTORE DUP1 DUP1 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH32 0x3617319A054D772F909F7C479A2CEBE5066E836A939412E32403C99029B92EFF DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 DUP2 OR DUP3 SSTORE PUSH32 0x3617319A054D772F909F7C479A2CEBE5066E836A939412E32403C99029B92F01 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD SWAP5 DUP6 MSTORE SWAP3 DUP5 ADD MSTORE DUP2 MLOAD SWAP1 SWAP3 PUSH32 0x77A232D0B541D1B39D33A99D472F21D566B9ECA98E550634B0154FFDA4F85925 SWAP3 SWAP1 DUP3 SWAP1 SUB ADD SWAP1 LOG1 POP POP PUSH1 0x0 DUP1 SLOAD DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP3 OR SWAP1 SSTORE DUP2 SLOAD ADD SWAP1 SSTORE PUSH2 0xD09 DUP1 PUSH2 0x116 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5748C130 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x97E33A02 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x97E33A02 EQ PUSH2 0x232 JUMPI DUP1 PUSH4 0x9E820187 EQ PUSH2 0x24F JUMPI DUP1 PUSH4 0xC526656C EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0xEF068BA4 EQ PUSH2 0x331 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x5748C130 EQ PUSH2 0x1A4 JUMPI DUP1 PUSH4 0x73DF1612 EQ PUSH2 0x1C1 JUMPI DUP1 PUSH4 0x82AFD23B EQ PUSH2 0x215 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x1FF62AB EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0xF3887B4 EQ PUSH2 0x114 JUMPI DUP1 PUSH4 0x155D31DA EQ PUSH2 0x133 JUMPI DUP1 PUSH4 0x15D84DC2 EQ PUSH2 0x150 JUMPI DUP1 PUSH4 0x26987B60 EQ PUSH2 0x16D JUMPI DUP1 PUSH4 0x3D46B819 EQ PUSH2 0x187 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x100 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0xEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x354 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x131 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x12A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x375 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x100 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x149 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x4B4 JUMP JUMPDEST PUSH2 0x100 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x166 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x52A JUMP JUMPDEST PUSH2 0x175 PUSH2 0x578 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x175 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x19D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x57E JUMP JUMPDEST PUSH2 0x175 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x624 JUMP JUMPDEST PUSH2 0x1ED PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x1D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x79D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP5 AND DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 RETURN JUMPDEST PUSH2 0x100 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x22B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x8FC JUMP JUMPDEST PUSH2 0x131 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x248 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x911 JUMP JUMPDEST PUSH2 0x100 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x265 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0xAC0 JUMP JUMPDEST PUSH2 0x298 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x282 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xB0E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP6 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2DC JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2C4 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD DUP4 DUP2 SUB DUP3 MSTORE DUP5 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x31B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x303 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP5 POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x131 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x347 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0xB29 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND SWAP2 AND EQ SWAP1 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x0 SLOAD GT PUSH2 0x3BA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xCB4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER DUP2 EQ PUSH2 0x421 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x21B0B73737BA1031329031B0B63632B210313C903AB9B2B9 PUSH1 0x41 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x442 JUMPI INVALID JUMPDEST EQ PUSH2 0x494 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5468652073746174652073686F756C642062652049646C650000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 DUP1 PUSH1 0x0 SLOAD GT PUSH2 0x4FB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xCB4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x520 JUMPI INVALID JUMPDEST EQ SWAP2 POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP1 PUSH1 0x0 SLOAD GT PUSH2 0x571 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xCB4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH2 0x4FE JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP1 PUSH1 0x0 SLOAD GT PUSH2 0x5C5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xCB4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x5CE DUP2 PUSH2 0x8FC JUMP JUMPDEST PUSH2 0x610 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x496E64657820696E616374697665 PUSH1 0x90 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP1 PUSH1 0x0 SLOAD GT PUSH2 0x66B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xCB4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x68C JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x6A1 JUMPI PUSH4 0x49646C65 PUSH1 0xE0 SHL SWAP2 POP PUSH2 0x524 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x6C5 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x6E0 JUMPI PUSH10 0x5375626D697474696E67 PUSH1 0xB0 SHL SWAP2 POP PUSH2 0x524 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x704 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x720 JUMPI PUSH11 0x446F776E6C6F6164696E67 PUSH1 0xA8 SHL SWAP2 POP PUSH2 0x524 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0xFF AND DUP2 DUP2 GT ISZERO PUSH2 0x742 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x75B JUMPI PUSH8 0x119A5B9A5CDA1959 PUSH1 0xC2 SHL SWAP2 POP PUSH2 0x524 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x556E7265636F676E697A6564207374617465 PUSH1 0x70 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x7AA PUSH2 0xC95 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP3 DUP4 SWAP1 KECCAK256 DUP4 MLOAD PUSH1 0x60 DUP2 ADD DUP6 MSTORE DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x2 DUP2 ADD SLOAD SWAP2 SWAP4 SWAP1 SWAP3 SWAP1 DUP5 ADD SWAP2 PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x7F7 JUMPI INVALID JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x802 JUMPI INVALID JUMPDEST SWAP1 MSTORE POP SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x82C JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x83C JUMPI POP PUSH4 0x49646C65 PUSH1 0xE0 SHL JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x860 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x876 JUMPI POP PUSH10 0x5375626D697474696E67 PUSH1 0xB0 SHL JUMPDEST PUSH1 0x2 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x89A JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x8B1 JUMPI POP PUSH11 0x446F776E6C6F6164696E67 PUSH1 0xA8 SHL JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0xFF AND DUP2 DUP2 GT ISZERO PUSH2 0x8D3 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x8E7 JUMPI POP PUSH8 0x119A5B9A5CDA1959 PUSH1 0xC2 SHL JUMPDEST DUP2 MLOAD PUSH1 0x20 SWAP1 SWAP3 ADD MLOAD SWAP2 SWAP8 SWAP2 SWAP7 POP SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x0 SLOAD GT PUSH2 0x956 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xCB4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER DUP2 EQ PUSH2 0x9BD JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x21B0B73737BA1031329031B0B63632B210313C903AB9B2B9 PUSH1 0x41 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x9E1 JUMPI INVALID JUMPDEST EQ PUSH2 0xA33 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5468652073746174652073686F756C6420626520446F776E6C6F6164696E6700 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0xA5B DUP4 PUSH2 0xC72 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH32 0xBDD51EB9FB70BB6E48865170E5931F9A9AD837DD15A4749BE5EB0DE6E6458561 SWAP2 DUP6 SWAP2 PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0xAA1 JUMPI INVALID JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0xFF SWAP1 SWAP2 AND PUSH1 0x20 DUP4 ADD MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP1 PUSH1 0x0 SLOAD GT PUSH2 0xB07 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xCB4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x3 PUSH2 0x4FE JUMP JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 DUP2 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP2 JUMP JUMPDEST DUP2 DUP1 PUSH1 0x0 SLOAD GT PUSH2 0xB6E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xCB4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER DUP2 EQ PUSH2 0xBD5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x21B0B73737BA1031329031B0B63632B210313C903AB9B2B9 PUSH1 0x41 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0xBF9 JUMPI INVALID JUMPDEST EQ PUSH2 0xC4B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5468652073746174652073686F756C64206265205375626D697474696E670000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 DUP1 DUP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x1 ADD SSTORE JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH1 0x2 SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP1 SWAP2 DUP3 ADD MSTORE SWAP1 JUMP INVALID 0x49 PUSH15 0x646578206E6F7420696E7374616E74 PUSH10 0x61746564000000000000 STOP STOP STOP STOP LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x48 PUSH4 0x99402018 0xED SWAP16 JUMP EXTCODEHASH 0xD6 SDIV DIFFICULTY 0xBD 0xC1 0x5E SWAP7 JUMPI 0xD5 0xE3 PUSH9 0x7A67E44638D7E606F5 0x23 EXTCODESIZE PUSH5 0x736F6C6343 STOP SMOD DIV STOP CALLER ", "sourceMap": "1423:5642:6:-:0;;;759:1:2;729:31;;2741:371:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2741:371:6;2802:1;2787:16;;;2853:22;;;:8;2741:371;2853:22;;;;2885:28;;-1:-1:-1;;;;;;2885:28:6;-1:-1:-1;;;;;2885:28:6;;;;;;;2923;:41;;-1:-1:-1;;2923:41:6;;;2980:63;;;;;;;;;;;;2853:22;;2980:63;;;;;;;;;-1:-1:-1;;3054:20:6;3061:12;;3054:20;;3077:4;3054:20;;;;;;;:27;;-1:-1:-1;;3054:27:6;;;;;3091:14;;;;;1423:5642;;;;;;" }, "deployedBytecode": { "generatedSources": [], "immutableReferences": {}, "linkReferences": {}, "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5748C130 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x97E33A02 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x97E33A02 EQ PUSH2 0x232 JUMPI DUP1 PUSH4 0x9E820187 EQ PUSH2 0x24F JUMPI DUP1 PUSH4 0xC526656C EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0xEF068BA4 EQ PUSH2 0x331 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x5748C130 EQ PUSH2 0x1A4 JUMPI DUP1 PUSH4 0x73DF1612 EQ PUSH2 0x1C1 JUMPI DUP1 PUSH4 0x82AFD23B EQ PUSH2 0x215 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x1FF62AB EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0xF3887B4 EQ PUSH2 0x114 JUMPI DUP1 PUSH4 0x155D31DA EQ PUSH2 0x133 JUMPI DUP1 PUSH4 0x15D84DC2 EQ PUSH2 0x150 JUMPI DUP1 PUSH4 0x26987B60 EQ PUSH2 0x16D JUMPI DUP1 PUSH4 0x3D46B819 EQ PUSH2 0x187 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x100 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0xEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x354 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x131 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x12A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x375 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x100 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x149 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x4B4 JUMP JUMPDEST PUSH2 0x100 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x166 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x52A JUMP JUMPDEST PUSH2 0x175 PUSH2 0x578 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x175 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x19D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x57E JUMP JUMPDEST PUSH2 0x175 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x624 JUMP JUMPDEST PUSH2 0x1ED PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x1D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x79D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP5 AND DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 RETURN JUMPDEST PUSH2 0x100 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x22B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x8FC JUMP JUMPDEST PUSH2 0x131 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x248 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x911 JUMP JUMPDEST PUSH2 0x100 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x265 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0xAC0 JUMP JUMPDEST PUSH2 0x298 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x282 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xB0E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP4 DUP2 SUB DUP4 MSTORE DUP6 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2DC JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2C4 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD DUP4 DUP2 SUB DUP3 MSTORE DUP5 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x31B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x303 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP5 POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x131 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x347 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0xB29 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND SWAP2 AND EQ SWAP1 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x0 SLOAD GT PUSH2 0x3BA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xCB4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER DUP2 EQ PUSH2 0x421 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x21B0B73737BA1031329031B0B63632B210313C903AB9B2B9 PUSH1 0x41 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x442 JUMPI INVALID JUMPDEST EQ PUSH2 0x494 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5468652073746174652073686F756C642062652049646C650000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 DUP1 PUSH1 0x0 SLOAD GT PUSH2 0x4FB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xCB4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x2 JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x520 JUMPI INVALID JUMPDEST EQ SWAP2 POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP1 PUSH1 0x0 SLOAD GT PUSH2 0x571 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xCB4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH2 0x4FE JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP1 PUSH1 0x0 SLOAD GT PUSH2 0x5C5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xCB4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x5CE DUP2 PUSH2 0x8FC JUMP JUMPDEST PUSH2 0x610 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x496E64657820696E616374697665 PUSH1 0x90 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP1 PUSH1 0x0 SLOAD GT PUSH2 0x66B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xCB4 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x68C JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x6A1 JUMPI PUSH4 0x49646C65 PUSH1 0xE0 SHL SWAP2 POP PUSH2 0x524 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x6C5 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x6E0 JUMPI PUSH10 0x5375626D697474696E67 PUSH1 0xB0 SHL SWAP2 POP PUSH2 0x524 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x704 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x720 JUMPI PUSH11 0x446F776E6C6F6164696E67 PUSH1 0xA8 SHL SWAP2 POP PUSH2 0x524 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0xFF AND DUP2 DUP2 GT ISZERO PUSH2 0x742 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x75B JUMPI PUSH8 0x119A5B9A5CDA1959 PUSH1 0xC2 SHL SWAP2 POP PUSH2 0x524 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x556E7265636F676E697A6564207374617465 PUSH1 0x70 SHL PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x7AA PUSH2 0xC95 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP3 DUP4 SWAP1 KECCAK256 DUP4 MLOAD PUSH1 0x60 DUP2 ADD DUP6 MSTORE DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x2 DUP2 ADD SLOAD SWAP2 SWAP4 SWAP1 SWAP3 SWAP1 DUP5 ADD SWAP2 PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x7F7 JUMPI INVALID JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x802 JUMPI INVALID JUMPDEST SWAP1 MSTORE POP SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x82C JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x83C JUMPI POP PUSH4 0x49646C65 PUSH1 0xE0 SHL JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x860 JUMPI INVAL