[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Bought", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "CancelSale", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_id", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "_minter", "type": "address" } ], "name": "Claimed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "price", "type": "uint256" } ], "name": "ForSale", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_id", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "_minter", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_price", "type": "uint256" } ], "name": "Minted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "Bazaar", "outputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "enum ERC721.TokenState", "name": "state", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "ClaimedFreeViking", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "GB", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_CLAIMABLE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_MINT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MIN_GB_BALANCE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PROVENANCE_HASH", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "RewardsClaimedAt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "RunningMintFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "address[]", "name": "owners", "type": "address[]" }, { "internalType": "address[]", "name": "minters", "type": "address[]" } ], "name": "airdrop", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_id", "type": "uint256" } ], "name": "buy", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_id", "type": "uint256" } ], "name": "cancelTokenSale", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "token", "type": "uint256" } ], "name": "claimReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "claimRewards", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "claimViking", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "claimed", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "claimingStarted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "getMintFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "token", "type": "uint256" } ], "name": "getRewardBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_addr", "type": "address" } ], "name": "getRewardBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_addr", "type": "address" } ], "name": "getTokensByOwner", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getTotalMinted", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "goodBridging", "outputs": [ { "internalType": "contract GoodBridging", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "minting", "type": "uint256" } ], "name": "mintViking", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "minter", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "saleStarted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "baseURI", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_hash", "type": "string" } ], "name": "setProvenanceHash", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_id", "type": "uint256" }, { "internalType": "uint256", "name": "_price", "type": "uint256" } ], "name": "setTokenPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "toggleClaiming", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "toggleSale", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
600f80546001600160a01b0319167390842eb834cfd2a1db0b1512b254a18e4d396215179055600060108190556011805461ffff1916905560a06040819052608082905262000052916012919062000911565b5060006017553480156200006557600080fd5b50604080518082018252600d81526c43727970746f56696b696e677360981b60208083019182528351808501909452600684526556494b494e4760d01b908401528151919291620000b99160099162000911565b508051620000cf90600a90602084019062000911565b50620000e26380ac58cd60e01b62000187565b620000f4635b5e139f60e01b62000187565b6200010663780e9d6360e01b62000187565b50506001600d5562000118336200020c565b600f54601380546001600160a01b0319166001600160a01b03909216919091179055604080516060810190915260258082526200015f91906200426a60208301396200025e565b600280546001600160a01b031916339081179091556200018190600062000277565b62000aea565b6001600160e01b03198082161415620001e75760405162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e746572666163652069640000000060448201526064015b60405180910390fd5b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b600e80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80516200027390600c90602084019062000911565b5050565b620002738282604051806020016040528060008152506200029960201b60201c565b620002a5838362000311565b620002b460008484846200045d565b6200030c5760405162461bcd60e51b815260206004820152603260248201526000805160206200424a83398151915260448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401620001de565b505050565b6001600160a01b038216620003695760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401620001de565b6200037481620005c6565b15620003c35760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401620001de565b620003d160008383620005e9565b6001600160a01b038216600090815260036020908152604090912062000402918390620023d96200061e821b17901c565b5062000420818360046200063360201b620023e5179092919060201c565b5060405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60006200047e846001600160a01b03166200064b60201b620024031760201c565b15620005ba57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290620004b890339089908890889060040162000a07565b602060405180830381600087803b158015620004d357600080fd5b505af192505050801562000506575060408051601f3d908101601f19168201909252620005039181019062000a46565b60015b6200059f573d80801562000537576040519150601f19603f3d011682016040523d82523d6000602084013e6200053c565b606091505b508051620005975760405162461bcd60e51b815260206004820152603260248201526000805160206200424a83398151915260448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401620001de565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050620005be565b5060015b949350505050565b6000620005e38260046200065160201b620024091790919060201c565b92915050565b80620005f46200065f565b1115620006065762000606816200067d565b6200030c8383836200030c60201b62000b9e1760201c565b60006200062c8383620006e9565b9392505050565b6000620005be84846001600160a01b0385166200073b565b3b151590565b60006200062c838362000768565b60006200067860046200078760201b620024151760201c565b905090565b60006200068a8262000794565b601754600084815260166020526040902055905080156200027357620006b0826200081f565b6001600160a01b03166108fc829081150290604051600060405180830381858888f193505050501580156200030c573d6000803e3d6000fd5b60008181526001830160205260408120546200073257508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620005e3565b506000620005e3565b600082815260028401602090815260408220839055620005be9085908590620023d96200061e821b17901c565b60006200062c82846000016200085760201b620024201790919060201c565b6000620005e38262000870565b6000620007a06200088b565b821115620008015760405162461bcd60e51b815260206004820152602760248201527f43727970746f56696b696e67733a20546f6b656e206973206e6f74206d696e7460448201526632b2103cb2ba1760c91b6064820152608401620001de565b600082815260166020526040902054601754620005e3919062000a72565b6000620005e3826040518060600160405280602981526020016200428f602991396004620008a560201b62002438179092919060201c565b600081815260018301602052604081205415156200062c565b6000620005e382600001620008b460201b620024451760201c565b60006001620008996200065f565b62000678919062000a72565b6000620005be848484620008bf565b6000620005e3825490565b600082815260028401602052604081205480151580620008e65750620008e6858562000768565b8390620009085760405162461bcd60e51b8152600401620001de919062000a98565b50949350505050565b8280546200091f9062000aad565b90600052602060002090601f0160209004810192826200094357600085556200098e565b82601f106200095e57805160ff19168380011785556200098e565b828001600101855582156200098e579182015b828111156200098e57825182559160200191906001019062000971565b506200099c929150620009a0565b5090565b5b808211156200099c5760008155600101620009a1565b6000815180845260005b81811015620009df57602081850181015186830182015201620009c1565b81811115620009f2576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009062000a3c90830184620009b7565b9695505050505050565b60006020828403121562000a5957600080fd5b81516001600160e01b0319811681146200062c57600080fd5b60008282101562000a9357634e487b7160e01b600052601160045260246000fd5b500390565b6020815260006200062c6020830184620009b7565b600181811c9082168062000ac257607f821691505b6020821081141562000ae457634e487b7160e01b600052602260045260246000fd5b50919050565b6137508062000afa6000396000f3fe6080604052600436106102e45760003560e01c806370a0823111610190578063c87b56dd116100dc578063e834a83411610095578063f0292a031161006f578063f0292a0314610910578063f1454ee714610926578063f2fde38b14610939578063ff1b65561461095957600080fd5b8063e834a83414610891578063e985e9c5146108a7578063eb685c47146108f057600080fd5b8063c87b56dd146107dc578063cd519e9a146107fc578063d11aea7714610811578063d5a849e914610831578063d96a094a14610851578063e778628f1461086457600080fd5b806395d89b4111610149578063ac8d856c11610123578063ac8d856c14610746578063ae169a501461077c578063b88d4fde1461079c578063bc5940df146107bc57600080fd5b806395d89b41146106fc578063a22cb46514610711578063a2b049241461073157600080fd5b806370a0823114610632578063715018a6146106525780637bd7525d146106675780637d8966e4146106b45780638010fc45146106c95780638da5cb5b146106de57600080fd5b80632b96e5721161024f57806349f188b3116102085780635c474f9e116101e25780635c474f9e146105c45780636352211e146105de57806365f22342146105fe5780636c0360eb1461061d57600080fd5b806349f188b3146105545780634f6ccce71461058457806355f804b3146105a457600080fd5b80632b96e572146104995780632bda5ac3146104b25780632f745c59146104d2578063372500ab146104f257806340398d671461050757806342842e0e1461053457600080fd5b806310969523116102a157806310969523146103ee5780631768e6ea1461040e57806317d5797b1461042e57806318160ddd1461044457806323b872dd1461045957806329524ba81461047957600080fd5b806301ffc9a7146102e957806306fdde031461032f578063081812fc14610351578063095ea7b3146103895780630ca1c5c9146103ab5780630f82f7d5146103ce575b600080fd5b3480156102f557600080fd5b5061031a610304366004612f03565b6001600160e01b0319166301ffc9a760e01b1490565b60405190151581526020015b60405180910390f35b34801561033b57600080fd5b5061034461096e565b6040516103269190612f78565b34801561035d57600080fd5b5061037161036c366004612f8b565b610a00565b6040516001600160a01b039091168152602001610326565b34801561039557600080fd5b506103a96103a4366004612fbb565b610a8d565b005b3480156103b757600080fd5b506103c0610ba3565b604051908152602001610326565b3480156103da57600080fd5b506103c06103e9366004612f8b565b610bbe565b3480156103fa57600080fd5b506103a9610409366004613084565b610c49565b34801561041a57600080fd5b506103a9610429366004613163565b610c8a565b34801561043a57600080fd5b506103c060175481565b34801561045057600080fd5b506103c0610ef9565b34801561046557600080fd5b506103a96104743660046131d0565b610f05565b34801561048557600080fd5b506103c0610494366004612f8b565b610f36565b3480156104a557600080fd5b506103c064d18c2e280081565b3480156104be57600080fd5b506103a96104cd366004612f8b565b610fdc565b3480156104de57600080fd5b506103c06104ed366004612fbb565b611065565b3480156104fe57600080fd5b506103a961108e565b34801561051357600080fd5b5061052761052236600461320c565b6111bb565b6040516103269190613227565b34801561054057600080fd5b506103a961054f3660046131d0565b61127a565b34801561056057600080fd5b5061031a61056f36600461320c565b60146020526000908152604090205460ff1681565b34801561059057600080fd5b506103c061059f366004612f8b565b611295565b3480156105b057600080fd5b506103a96105bf366004613084565b6112a3565b3480156105d057600080fd5b5060115461031a9060ff1681565b3480156105ea57600080fd5b506103716105f9366004612f8b565b6112d9565b34801561060a57600080fd5b5060115461031a90610100900460ff1681565b34801561062957600080fd5b50610344611301565b34801561063e57600080fd5b506103c061064d36600461320c565b611310565b34801561065e57600080fd5b506103a961139c565b34801561067357600080fd5b506106a5610682366004612f8b565b600160208190526000918252604090912080549181015460029091015460ff1683565b60405161032693929190613281565b3480156106c057600080fd5b506103a96113d2565b3480156106d557600080fd5b506103a9611410565b3480156106ea57600080fd5b50600e546001600160a01b0316610371565b34801561070857600080fd5b50610344611457565b34801561071d57600080fd5b506103a961072c3660046132bb565b611466565b34801561073d57600080fd5b506103a961152b565b34801561075257600080fd5b50610371610761366004612f8b565b6015602052600090815260409020546001600160a01b031681565b34801561078857600080fd5b506103a9610797366004612f8b565b611929565b3480156107a857600080fd5b506103a96107b73660046132f7565b61198f565b3480156107c857600080fd5b50600f54610371906001600160a01b031681565b3480156107e857600080fd5b506103446107f7366004612f8b565b6119c7565b34801561080857600080fd5b506103c060fa81565b34801561081d57600080fd5b50601354610371906001600160a01b031681565b34801561083d57600080fd5b506103c061084c36600461320c565b611b39565b6103a961085f366004612f8b565b611c05565b34801561087057600080fd5b506103c061087f366004612f8b565b60166020526000908152604090205481565b34801561089d57600080fd5b506103c060105481565b3480156108b357600080fd5b5061031a6108c2366004613373565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205460ff1690565b3480156108fc57600080fd5b506103a961090b3660046133a6565b611e54565b34801561091c57600080fd5b506103c061271081565b6103a9610934366004612f8b565b611f17565b34801561094557600080fd5b506103a961095436600461320c565b6122b3565b34801561096557600080fd5b5061034461234b565b60606009805461097d906133c8565b80601f01602080910402602001604051908101604052809291908181526020018280546109a9906133c8565b80156109f65780601f106109cb576101008083540402835291602001916109f6565b820191906000526020600020905b8154815290600101906020018083116109d957829003601f168201915b5050505050905090565b6000610a0b8261244f565b610a715760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600760205260409020546001600160a01b031690565b6000610a98826112d9565b9050806001600160a01b0316836001600160a01b03161415610b065760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610a68565b336001600160a01b0382161480610b225750610b2281336108c2565b610b945760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610a68565b610b9e838361245c565b505050565b60006001610baf610ef9565b610bb99190613413565b905090565b6000610bc8610ba3565b821115610c275760405162461bcd60e51b815260206004820152602760248201527f43727970746f56696b696e67733a20546f6b656e206973206e6f74206d696e7460448201526632b2103cb2ba1760c91b6064820152608401610a68565b600082815260166020526040902054601754610c439190613413565b92915050565b600e546001600160a01b03163314610c735760405162461bcd60e51b8152600401610a689061342a565b8051610c86906012906020840190612e54565b5050565b600e546001600160a01b03163314610cb45760405162461bcd60e51b8152600401610a689061342a565b8051825114610d1c5760405162461bcd60e51b815260206004820152602e60248201527f43563a204f776e65727320616e64204d696e746572732068617665206469666660448201526d32b932b73a103632b733ba34399760911b6064820152608401610a68565b6000610d26610ba3565b9050610d3381600161345f565b8414610d815760405162461bcd60e51b815260206004820152601a60248201527f43563a20496e76616c69642049442c2074727920616761696e2e0000000000006044820152606401610a68565b6102ee811115610df95760405162461bcd60e51b815260206004820152603960248201527f43563a20436f756c64206e6f7420616964726f70206265636175736520746f6f60448201527f206d616e7920746f6b656e732077657265206d696e7465642e000000000000006064820152608401610a68565b6000610e0682600161345f565b905060005b8451811015610ef157610e37858281518110610e2957610e29613477565b6020026020010151836124ca565b838181518110610e4957610e49613477565b60200260200101516015600084815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600160146000868481518110610ea057610ea0613477565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055610edd60018361345f565b915080610ee98161348d565b915050610e0b565b505050505050565b6000610bb96004612415565b610f0f33826124e4565b610f2b5760405162461bcd60e51b8152600401610a68906134a8565b610b9e8383836125ca565b60006126fc8210610f505750674563918244f40000919050565b6123288210610f6857506730927f74c9de0000919050565b611b588210610f8057506729a2241af62c0000919050565b610fa08210610f9857506722b1c8c1227a0000919050565b610bb88210610fb05750671bc16d674ec80000919050565b6107d08210610fc857506714d1120d7b160000919050565b50670de0b6b3a7640000919050565b919050565b610fe5816112d9565b6001600160a01b0316336001600160a01b03161461103e5760405162461bcd60e51b81526020600482015260166024820152751251081393d50813d5d391510810964815d05313115560521b6044820152606401610a68565b6000908152600160208190526040822090810191909155600201805460ff19166004179055565b6001600160a01b0382166000908152600360205260408120611087908361275f565b9392505050565b6040516340398d6760e01b8152336004820152600090819030906340398d679060240160006040518083038186803b1580156110c957600080fd5b505afa1580156110dd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261110591908101906134f9565b905060005b81518110156111875761113582828151811061112857611128613477565b6020026020010151610bbe565b61113f908461345f565b92506017546016600084848151811061115a5761115a613477565b6020026020010151815260200190815260200160002081905550808061117f9061348d565b91505061110a565b508115610c8657604051339083156108fc029084906000818181858888f19350505050158015610b9e573d6000803e3d6000fd5b606060006111c883611310565b9050806111e95760408051600080825260208201909252905b509392505050565b60008167ffffffffffffffff81111561120457611204612fe5565b60405190808252806020026020018201604052801561122d578160200160208202803683370190505b50905060005b828110156111e1576112458582611065565b82828151811061125757611257613477565b60209081029190910101528061126c8161348d565b915050611233565b50919050565b610b9e8383836040518060200160405280600081525061198f565b6000806111e160048461276b565b600e546001600160a01b031633146112cd5760405162461bcd60e51b8152600401610a689061342a565b6112d681612787565b50565b6000610c43826040518060600160405280602981526020016136f26029913960049190612438565b6060600c805461097d906133c8565b60006001600160a01b03821661137b5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610a68565b6001600160a01b0382166000908152600360205260409020610c4390612445565b600e546001600160a01b031633146113c65760405162461bcd60e51b8152600401610a689061342a565b6113d0600061279a565b565b600e546001600160a01b031633146113fc5760405162461bcd60e51b8152600401610a689061342a565b6011805460ff19811660ff90911615179055565b600e546001600160a01b0316331461143a5760405162461bcd60e51b8152600401610a689061342a565b6011805461ff001981166101009182900460ff1615909102179055565b6060600a805461097d906133c8565b6001600160a01b0382163314156114bf5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610a68565b3360008181526008602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6002600d54141561157e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a68565b6002600d5560135464d18c2e2800906001600160a01b03166370a08231336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381600087803b1580156115dd57600080fd5b505af11580156115f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611615919061358a565b10156116555760405162461bcd60e51b815260206004820152600f60248201526e26aaa9aa102420ab22901c981823a160891b6044820152606401610a68565b601154610100900460ff166116a35760405162461bcd60e51b815260206004820152601460248201527310d3105253525391c81393d50814d5105495115160621b6044820152606401610a68565b6127106116ae610ba3565b106116ed5760405162461bcd60e51b815260206004820152600f60248201526e4e4f204d4f52452056494b494e475360881b6044820152606401610a68565b60fa601054106117545760405162461bcd60e51b815260206004820152602c60248201527f4e6f206d6f72652076696b696e677320617661696c61626c6520746f20636c6160448201526b34b6903337b910333932b29760a11b6064820152608401610a68565b61271061175f610ba3565b61176a90600161345f565b11156117c45760405162461bcd60e51b8152602060048201526024808201527f436c61696d20776f756c6420657863656564206d61782056696b696e6720636f6044820152633ab73a1760e11b6064820152608401610a68565b60fa60105460016117d5919061345f565b111561182f5760405162461bcd60e51b815260206004820152602360248201527f436c61696d20776f756c6420657863656564206d617820636c61696d20636f75604482015262373a1760e91b6064820152608401610a68565b3360009081526014602052604090205460ff16156118825760405162461bcd60e51b815260206004820152601060248201526f20a62922a0a22c9021a620a4a6a2a21760811b6044820152606401610a68565b600160106000828254611895919061345f565b9091555050336000908152601460205260408120805460ff191660011790556118bc610ef9565b90506118c833826124ca565b60008181526015602090815260409182902080546001600160a01b031916339081179091558251848152918201527f6aa3eac93d079e5e100b1029be716caa33586c96aa4baac390669fb5c2a21212910160405180910390a1506001600d55565b600061193482610bbe565b60175460008481526016602052604090205590508015610c8657611957826112d9565b6001600160a01b03166108fc829081150290604051600060405180830381858888f19350505050158015610b9e573d6000803e3d6000fd5b61199933836124e4565b6119b55760405162461bcd60e51b8152600401610a68906134a8565b6119c1848484846127ec565b50505050565b60606119d28261244f565b611a365760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610a68565b6000828152600b602052604081208054611a4f906133c8565b80601f0160208091040260200160405190810160405280929190818152602001828054611a7b906133c8565b8015611ac85780601f10611a9d57610100808354040283529160200191611ac8565b820191906000526020600020905b815481529060010190602001808311611aab57829003601f168201915b505050505090506000611ad9611301565b9050805160001415611aec575092915050565b815115611b1e578082604051602001611b069291906135a3565b60405160208183030381529060405292505050919050565b80611b288561281f565b604051602001611b069291906135a3565b6040516340398d6760e01b81526001600160a01b03821660048201526000908190819030906340398d679060240160006040518083038186803b158015611b7f57600080fd5b505afa158015611b93573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611bbb91908101906134f9565b905060005b8151811015611bfc57611bde82828151811061112857611128613477565b611be8908461345f565b925080611bf48161348d565b915050611bc0565b50909392505050565b6000611c10826112d9565b600083815260016020819052604090912001549091508190341015611c695760405162461bcd60e51b815260206004820152600f60248201526e09c9ea8408a9c9eaa8e904082ac82b608b1b6044820152606401610a68565b600160008481526001602052604090206002015460ff166004811115611c9157611c9161326b565b14611ccd5760405162461bcd60e51b815260206004820152600c60248201526b4e4f5420464f522053414c4560a01b6044820152606401610a68565b60008381526001602052611ce03461291d565b905060006005611cf18360036135d2565b611cfb9190613607565b905060006005611d0c8460026135d2565b611d169190613607565b90506000611d248434613413565b6040519091506001600160a01b0386169082156108fc029083906000818181858888f19350505050158015611d5d573d6000803e3d6000fd5b506002546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611d98573d6000803e3d6000fd5b506000878152601560205260408082205490516001600160a01b039091169185156108fc02918691818181858888f19350505050158015611ddd573d6000803e3d6000fd5b5050505050611df5611dee846112d9565b33856125ca565b6000838152600160209081526040918290206002908101805460ff19169091179055815185815234918101919091527f3ccb2ab6980b218b1dd4974b07365cd90a191e170c611da46262fecc208bd661910160405180910390a1505050565b611e5d826112d9565b6001600160a01b0316336001600160a01b031614611eb65760405162461bcd60e51b81526020600482015260166024820152751251081393d50813d5d391510810964815d05313115560521b6044820152606401610a68565b600082815260016020818152604092839020808301859055600201805460ff191690921790915581518481529081018390527f454a59b1e51b1685e697faeca2a404382f4dcb9970aece78299147857e150393910160405180910390a15050565b60115460ff16611f5c5760405162461bcd60e51b815260206004820152601060248201526f14d05311481393d50814d5105495115160821b6044820152606401610a68565b612710611f67610ba3565b10611fa55760405162461bcd60e51b815260206004820152600e60248201526d14d0531148121054c8115391115160921b6044820152606401610a68565b600081118015611fb65750600a8111155b611ff85760405162461bcd60e51b815260206004820152601360248201527212539590531251081352539508105353d55395606a1b6044820152606401610a68565b61271061200d82612007610ba3565b90612938565b111561205b5760405162461bcd60e51b815260206004820152601d60248201527f4d494e5420574f554c442045584345454420544f4b454e204c494d49540000006044820152606401610a68565b60408051600a80825261016082019092526000916020820161014080368337019050509050600061208a610ba3565b90506000805b848110156120fc576120a5610494828561345f565b8482815181106120b7576120b7613477565b6020026020010181815250508381815181106120d5576120d5613477565b6020026020010151826120e8919061345f565b9150806120f48161348d565b915050612090565b50803410156121445760405162461bcd60e51b81526020600482015260146024820152731393d508115393d551d20810559056081410525160621b6044820152606401610a68565b61214f60018361345f565b915060005b848110156122ac5761216f3361216a838661345f565b6124ca565b336015600061217e848761345f565b815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060006121d48583815181106121c7576121c7613477565b6020026020010151612944565b601754909150601660006121e8858861345f565b8152602081019190915260400160002055612201610ba3565b61220b9082613607565b6017600082825461221c919061345f565b909155507fc9d0543a84d3510329c0783b91576878ceb484e8699944cb5610c3436b3b8e39905061224d838661345f565b3387858151811061226057612260613477565b6020026020010151604051612291939291909283526001600160a01b03919091166020830152604082015260600190565b60405180910390a150806122a48161348d565b915050612154565b5050505050565b600e546001600160a01b031633146122dd5760405162461bcd60e51b8152600401610a689061342a565b6001600160a01b0381166123425760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a68565b6112d68161279a565b60128054612358906133c8565b80601f0160208091040260200160405190810160405280929190818152602001828054612384906133c8565b80156123d15780601f106123a6576101008083540402835291602001916123d1565b820191906000526020600020905b8154815290600101906020018083116123b457829003601f168201915b505050505081565b6000611087838361299d565b60006123fb84846001600160a01b0385166129ec565b949350505050565b3b151590565b60006110878383612a09565b6000610c4382612a15565b60008181526001830160205260408120541515611087565b60006123fb848484612a20565b6000610c43825490565b6000610c43600483612409565b600081815260076020526040902080546001600160a01b0319166001600160a01b0384169081179091558190612491826112d9565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b610c86828260405180602001604052806000815250612a6c565b60006124ef8261244f565b6125505760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610a68565b600061255b836112d9565b9050806001600160a01b0316846001600160a01b031614806125965750836001600160a01b031661258b84610a00565b6001600160a01b0316145b806123fb57506001600160a01b0380821660009081526008602090815260408083209388168352929052205460ff166123fb565b826001600160a01b03166125dd826112d9565b6001600160a01b0316146126455760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610a68565b6001600160a01b0382166126a75760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610a68565b6126b2838383612a9f565b6126bd60008261245c565b6001600160a01b03831660009081526003602052604090206126df9082612ab7565b506001600160a01b038216600090815260036020526040902061270290826123d9565b5061270f600482846123e5565b506127198161103e565b80826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60006110878383612ac3565b600080808061277a8686612aed565b9097909650945050505050565b8051610c8690600c906020840190612e54565b600e80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6127f78484846125ca565b61280384848484612b18565b6119c15760405162461bcd60e51b8152600401610a689061361b565b6060816128435750506040805180820190915260018152600360fc1b602082015290565b8160005b811561286d57806128578161348d565b91506128669050600a83613607565b9150612847565b60008167ffffffffffffffff81111561288857612888612fe5565b6040519080825280601f01601f1916602001820160405280156128b2576020820181803683370190505b5090505b84156123fb576128c7600183613413565b91506128d4600a8661366d565b6128df90603061345f565b60f81b8183815181106128f4576128f4613477565b60200101906001600160f81b031916908160001a905350612916600a86613607565b94506128b6565b60008061292b836005612c25565b9050611087816064612c31565b6000611087828461345f565b600080612952603284613607565b6002549091506001600160a01b03166108fc61296e8386613413565b6040518115909202916000818181858888f19350505050158015612996573d6000803e3d6000fd5b5092915050565b60008181526001830160205260408120546129e457508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610c43565b506000610c43565b600082815260028401602052604081208290556123fb84846123d9565b60006110878383612420565b6000610c4382612445565b600082815260028401602052604081205480151580612a445750612a448585612a09565b8390612a635760405162461bcd60e51b8152600401610a689190612f78565b50949350505050565b612a768383612c3d565b612a836000848484612b18565b610b9e5760405162461bcd60e51b8152600401610a689061361b565b80612aa8610ef9565b1115610b9e57610b9e81611929565b60006110878383612d61565b6000826000018281548110612ada57612ada613477565b9060005260206000200154905092915050565b60008080612afb858561275f565b600081815260029690960160205260409095205494959350505050565b60006001600160a01b0384163b15612c1a57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290612b5c903390899088908890600401613681565b602060405180830381600087803b158015612b7657600080fd5b505af1925050508015612ba6575060408051601f3d908101601f19168201909252612ba3918101906136be565b60015b612c00573d808015612bd4576040519150601f19603f3d011682016040523d82523d6000602084013e612bd9565b606091505b508051612bf85760405162461bcd60e51b8152600401610a689061361b565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506123fb565b506001949350505050565b600061108782846135d2565b60006110878284613607565b6001600160a01b038216612c935760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610a68565b612c9c8161244f565b15612ce95760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610a68565b612cf560008383612a9f565b6001600160a01b0382166000908152600360205260409020612d1790826123d9565b50612d24600482846123e5565b5060405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60008181526001830160205260408120548015612e4a576000612d85600183613413565b8554909150600090612d9990600190613413565b9050818114612dfe576000866000018281548110612db957612db9613477565b9060005260206000200154905080876000018481548110612ddc57612ddc613477565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612e0f57612e0f6136db565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610c43565b6000915050610c43565b828054612e60906133c8565b90600052602060002090601f016020900481019282612e825760008555612ec8565b82601f10612e9b57805160ff1916838001178555612ec8565b82800160010185558215612ec8579182015b82811115612ec8578251825591602001919060010190612ead565b50612ed4929150612ed8565b5090565b5b80821115612ed45760008155600101612ed9565b6001600160e01b0319811681146112d657600080fd5b600060208284031215612f1557600080fd5b813561108781612eed565b60005b83811015612f3b578181015183820152602001612f23565b838111156119c15750506000910152565b60008151808452612f64816020860160208601612f20565b601f01601f19169290920160200192915050565b6020815260006110876020830184612f4c565b600060208284031215612f9d57600080fd5b5035919050565b80356001600160a01b0381168114610fd757600080fd5b60008060408385031215612fce57600080fd5b612fd783612fa4565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561302457613024612fe5565b604052919050565b600067ffffffffffffffff83111561304657613046612fe5565b613059601f8401601f1916602001612ffb565b905082815283838301111561306d57600080fd5b828260208301376000602084830101529392505050565b60006020828403121561309657600080fd5b813567ffffffffffffffff8111156130ad57600080fd5b8201601f810184136130be57600080fd5b6123fb8482356020840161302c565b600067ffffffffffffffff8211156130e7576130e7612fe5565b5060051b60200190565b600082601f83011261310257600080fd5b81356020613117613112836130cd565b612ffb565b82815260059290921b8401810191818101908684111561313657600080fd5b8286015b848110156131585761314b81612fa4565b835291830191830161313a565b509695505050505050565b60008060006060848603121561317857600080fd5b83359250602084013567ffffffffffffffff8082111561319757600080fd5b6131a3878388016130f1565b935060408601359150808211156131b957600080fd5b506131c6868287016130f1565b9150509250925092565b6000806000606084860312156131e557600080fd5b6131ee84612fa4565b92506131fc60208501612fa4565b9150604084013590509250925092565b60006020828403121561321e57600080fd5b61108782612fa4565b6020808252825182820181905260009190848201906040850190845b8181101561325f57835183529284019291840191600101613243565b50909695505050505050565b634e487b7160e01b600052602160045260246000fd5b8381526020810183905260608101600583106132ad57634e487b7160e01b600052602160045260246000fd5b826040830152949350505050565b600080604083850312156132ce57600080fd5b6132d783612fa4565b9150602083013580151581146132ec57600080fd5b809150509250929050565b6000806000806080858703121561330d57600080fd5b61331685612fa4565b935061332460208601612fa4565b925060408501359150606085013567ffffffffffffffff81111561334757600080fd5b8501601f8101871361335857600080fd5b6133678782356020840161302c565b91505092959194509250565b6000806040838503121561338657600080fd5b61338f83612fa4565b915061339d60208401612fa4565b90509250929050565b600080604083850312156133b957600080fd5b50508035926020909101359150565b600181811c908216806133dc57607f821691505b6020821081141561127457634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082821015613425576134256133fd565b500390565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115613472576134726133fd565b500190565b634e487b7160e01b600052603260045260246000fd5b60006000198214156134a1576134a16133fd565b5060010190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b6000602080838503121561350c57600080fd5b825167ffffffffffffffff81111561352357600080fd5b8301601f8101851361353457600080fd5b8051613542613112826130cd565b81815260059190911b8201830190838101908783111561356157600080fd5b928401925b8284101561357f57835182529284019290840190613566565b979650505050505050565b60006020828403121561359c57600080fd5b5051919050565b600083516135b5818460208801612f20565b8351908301906135c9818360208801612f20565b01949350505050565b60008160001904831182151516156135ec576135ec6133fd565b500290565b634e487b7160e01b600052601260045260246000fd5b600082613616576136166135f1565b500490565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60008261367c5761367c6135f1565b500690565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906136b490830184612f4c565b9695505050505050565b6000602082840312156136d057600080fd5b815161108781612eed565b634e487b7160e01b600052603160045260246000fdfe4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656ea2646970667358221220a38f09b2669160f0d0a2a7732ca7f7e28a762284a959ce30e3792cd3f82a9c4164736f6c634300080900334552433732313a207472616e7366657220746f206e6f6e20455243373231526568747470733a2f2f63727970746f76696b696e67732e6172742f6170692f76696b696e672f4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e