Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 3,414 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Poke | 21480575 | 4 hrs ago | IN | 0 ETH | 0.0012346 | ||||
Poke | 21473403 | 28 hrs ago | IN | 0 ETH | 0.00157325 | ||||
Poke | 21466249 | 2 days ago | IN | 0 ETH | 0.00247103 | ||||
Poke | 21459093 | 3 days ago | IN | 0 ETH | 0.00112394 | ||||
Poke | 21451932 | 4 days ago | IN | 0 ETH | 0.00110867 | ||||
Poke | 21444766 | 5 days ago | IN | 0 ETH | 0.00483655 | ||||
Poke | 21437593 | 6 days ago | IN | 0 ETH | 0.00379999 | ||||
Poke | 21430432 | 7 days ago | IN | 0 ETH | 0.00396369 | ||||
Poke | 21423264 | 8 days ago | IN | 0 ETH | 0.00604388 | ||||
Poke | 21416079 | 9 days ago | IN | 0 ETH | 0.00285552 | ||||
Poke | 21408904 | 10 days ago | IN | 0 ETH | 0.0014227 | ||||
Poke | 21401727 | 11 days ago | IN | 0 ETH | 0.00138938 | ||||
Poke | 21394558 | 12 days ago | IN | 0 ETH | 0.0028906 | ||||
Poke | 21387383 | 13 days ago | IN | 0 ETH | 0.00411253 | ||||
Poke | 21380212 | 14 days ago | IN | 0 ETH | 0.00472783 | ||||
Poke | 21373039 | 15 days ago | IN | 0 ETH | 0.0082559 | ||||
Poke | 21358690 | 17 days ago | IN | 0 ETH | 0.0018635 | ||||
Poke | 21351519 | 18 days ago | IN | 0 ETH | 0.00183974 | ||||
Poke | 21344352 | 19 days ago | IN | 0 ETH | 0.00694965 | ||||
Poke | 21337182 | 20 days ago | IN | 0 ETH | 0.00448828 | ||||
Poke | 21330010 | 21 days ago | IN | 0 ETH | 0.0058454 | ||||
Poke | 21322845 | 22 days ago | IN | 0 ETH | 0.00770307 | ||||
Poke | 21315680 | 23 days ago | IN | 0 ETH | 0.00440015 | ||||
Poke | 21308509 | 24 days ago | IN | 0 ETH | 0.00298332 | ||||
Poke | 21301331 | 25 days ago | IN | 0 ETH | 0.00150226 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
MedianGNOUSD
Compiler Version
v0.5.12+commit.7709ece9
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-11-16 */ /// median.sol // Copyright (C) 2017-2020 Maker Ecosystem Growth Holdings, INC. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see <https://www.gnu.org/licenses/>. pragma solidity >=0.5.10; contract LibNote { event LogNote( bytes4 indexed sig, address indexed usr, bytes32 indexed arg1, bytes32 indexed arg2, bytes data ) anonymous; modifier note { _; assembly { // log an 'anonymous' event with a constant 6 words of calldata // and four indexed topics: selector, caller, arg1 and arg2 let mark := msize() // end of memory ensures zero mstore(0x40, add(mark, 288)) // update free memory pointer mstore(mark, 0x20) // bytes type data offset mstore(add(mark, 0x20), 224) // bytes size (padded) calldatacopy(add(mark, 0x40), 0, 224) // bytes payload log4(mark, 288, // calldata shl(224, shr(224, calldataload(0))), // msg.sig caller(), // msg.sender calldataload(4), // arg1 calldataload(36) // arg2 ) } } } contract Median is LibNote { // --- Auth --- mapping (address => uint) public wards; function rely(address usr) external note auth { wards[usr] = 1; } function deny(address usr) external note auth { wards[usr] = 0; } modifier auth { require(wards[msg.sender] == 1, "Median/not-authorized"); _; } uint128 val; uint32 public age; bytes32 public constant wat = "ethusd"; // You want to change this every deploy uint256 public bar = 1; // Authorized oracles, set by an auth mapping (address => uint256) public orcl; // Whitelisted contracts, set by an auth mapping (address => uint256) public bud; // Mapping for at most 256 oracles mapping (uint8 => address) public slot; modifier toll { require(bud[msg.sender] == 1, "Median/contract-not-whitelisted"); _;} event LogMedianPrice(uint256 val, uint256 age); //Set type of Oracle constructor() public { wards[msg.sender] = 1; } function read() external view toll returns (uint256) { require(val > 0, "Median/invalid-price-feed"); return val; } function peek() external view toll returns (uint256,bool) { return (val, val > 0); } function recover(uint256 val_, uint256 age_, uint8 v, bytes32 r, bytes32 s) internal pure returns (address) { return ecrecover( keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", keccak256(abi.encodePacked(val_, age_, wat)))), v, r, s ); } function poke( uint256[] calldata val_, uint256[] calldata age_, uint8[] calldata v, bytes32[] calldata r, bytes32[] calldata s) external { require(val_.length == bar, "Median/bar-too-low"); uint256 bloom = 0; uint256 last = 0; uint256 zzz = age; for (uint i = 0; i < val_.length; i++) { // Validate the values were signed by an authorized oracle address signer = recover(val_[i], age_[i], v[i], r[i], s[i]); // Check that signer is an oracle require(orcl[signer] == 1, "Median/invalid-oracle"); // Price feed age greater than last medianizer age require(age_[i] > zzz, "Median/stale-message"); // Check for ordered values require(val_[i] >= last, "Median/messages-not-in-order"); last = val_[i]; // Bloom filter for signer uniqueness uint8 sl = uint8(uint256(signer) >> 152); require((bloom >> sl) % 2 == 0, "Median/oracle-already-signed"); bloom += uint256(2) ** sl; } val = uint128(val_[val_.length >> 1]); age = uint32(block.timestamp); emit LogMedianPrice(val, age); } function lift(address[] calldata a) external note auth { for (uint i = 0; i < a.length; i++) { require(a[i] != address(0), "Median/no-oracle-0"); uint8 s = uint8(uint256(a[i]) >> 152); require(slot[s] == address(0), "Median/signer-already-exists"); orcl[a[i]] = 1; slot[s] = a[i]; } } function drop(address[] calldata a) external note auth { for (uint i = 0; i < a.length; i++) { orcl[a[i]] = 0; slot[uint8(uint256(a[i]) >> 152)] = address(0); } } function setBar(uint256 bar_) external note auth { require(bar_ > 0, "Median/quorum-is-zero"); require(bar_ % 2 != 0, "Median/quorum-not-odd-number"); bar = bar_; } function kiss(address a) external note auth { require(a != address(0), "Median/no-contract-0"); bud[a] = 1; } function diss(address a) external note auth { bud[a] = 0; } function kiss(address[] calldata a) external note auth { for(uint i = 0; i < a.length; i++) { require(a[i] != address(0), "Median/no-contract-0"); bud[a[i]] = 1; } } function diss(address[] calldata a) external note auth { for(uint i = 0; i < a.length; i++) { bud[a[i]] = 0; } } } contract MedianGNOUSD is Median { bytes32 public constant wat = "GNOUSD"; function recover(uint256 val_, uint256 age_, uint8 v, bytes32 r, bytes32 s) internal pure returns (address) { return ecrecover( keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", keccak256(abi.encodePacked(val_, age_, wat)))), v, r, s ); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"val","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"age","type":"uint256"}],"name":"LogMedianPrice","type":"event"},{"anonymous":true,"inputs":[{"indexed":true,"internalType":"bytes4","name":"sig","type":"bytes4"},{"indexed":true,"internalType":"address","name":"usr","type":"address"},{"indexed":true,"internalType":"bytes32","name":"arg1","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"arg2","type":"bytes32"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"LogNote","type":"event"},{"constant":true,"inputs":[],"name":"age","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bar","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bud","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"deny","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"a","type":"address[]"}],"name":"diss","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"diss","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"a","type":"address[]"}],"name":"drop","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"a","type":"address[]"}],"name":"kiss","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"kiss","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"a","type":"address[]"}],"name":"lift","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"orcl","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"peek","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256[]","name":"val_","type":"uint256[]"},{"internalType":"uint256[]","name":"age_","type":"uint256[]"},{"internalType":"uint8[]","name":"v","type":"uint8[]"},{"internalType":"bytes32[]","name":"r","type":"bytes32[]"},{"internalType":"bytes32[]","name":"s","type":"bytes32[]"}],"name":"poke","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"read","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"rely","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"bar_","type":"uint256"}],"name":"setBar","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint8","name":"","type":"uint8"}],"name":"slot","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"wards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"wat","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}]
Contract Creation Code
6080604052600160025560016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122b58061005c6000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806365c4ce7a116100ad578063943181061161007157806394318106146106c45780639c52a7f11461073d578063bf353dbb14610781578063f29c29c4146107d9578063febb0f7e1461081d57610121565b806365c4ce7a1461038557806365fae35e146103c957806389bbb8b21461040d5780638d0e5a9a146105da5780638ef5eaf01461064b57610121565b806346d4577d116100f457806346d4577d1461024f5780634ca29923146102c85780634fce7a2a146102e657806357de26a41461033e57806359e02dd71461035c57610121565b8063020b2e32146101265780631b25b65f1461017e578063262a9dff146101f7578063352d3fba14610221575b600080fd5b6101686004803603602081101561013c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061083b565b6040518082815260200191505060405180910390f35b6101f56004803603602081101561019457600080fd5b81019080803590602001906401000000008111156101b157600080fd5b8201836020820111156101c357600080fd5b803590602001918460208302840111640100000000831117156101e557600080fd5b9091929391929390505050610853565b005b6101ff610a95565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b61024d6004803603602081101561023757600080fd5b8101908080359060200190929190505050610aab565b005b6102c66004803603602081101561026557600080fd5b810190808035906020019064010000000081111561028257600080fd5b82018360208201111561029457600080fd5b803590602001918460208302840111640100000000831117156102b657600080fd5b9091929391929390505050610c93565b005b6102d0610e0a565b6040518082815260200191505060405180910390f35b610328600480360360208110156102fc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e2e565b6040518082815260200191505060405180910390f35b610346610e46565b6040518082815260200191505060405180910390f35b610364610fd9565b60405180838152602001821515151581526020019250505060405180910390f35b6103c76004803603602081101561039b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611101565b005b61040b600480360360208110156103df57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611230565b005b6105d8600480360360a081101561042357600080fd5b810190808035906020019064010000000081111561044057600080fd5b82018360208201111561045257600080fd5b8035906020019184602083028401116401000000008311171561047457600080fd5b90919293919293908035906020019064010000000081111561049557600080fd5b8201836020820111156104a757600080fd5b803590602001918460208302840111640100000000831117156104c957600080fd5b9091929391929390803590602001906401000000008111156104ea57600080fd5b8201836020820111156104fc57600080fd5b8035906020019184602083028401116401000000008311171561051e57600080fd5b90919293919293908035906020019064010000000081111561053f57600080fd5b82018360208201111561055157600080fd5b8035906020019184602083028401116401000000008311171561057357600080fd5b90919293919293908035906020019064010000000081111561059457600080fd5b8201836020820111156105a657600080fd5b803590602001918460208302840111640100000000831117156105c857600080fd5b909192939192939050505061135e565b005b610609600480360360208110156105f057600080fd5b81019080803560ff169060200190929190505050611820565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106c26004803603602081101561066157600080fd5b810190808035906020019064010000000081111561067e57600080fd5b82018360208201111561069057600080fd5b803590602001918460208302840111640100000000831117156106b257600080fd5b9091929391929390505050611853565b005b61073b600480360360208110156106da57600080fd5b81019080803590602001906401000000008111156106f757600080fd5b82018360208201111561070957600080fd5b8035906020019184602083028401116401000000008311171561072b57600080fd5b9091929391929390505050611a65565b005b61077f6004803603602081101561075357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e4a565b005b6107c36004803603602081101561079757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f78565b6040518082815260200191505060405180910390f35b61081b600480360360208110156107ef57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f90565b005b610825612162565b6040518082815260200191505060405180910390f35b60036020528060005260406000206000915090505481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60008090505b82829050811015610a5d57600073ffffffffffffffffffffffffffffffffffffffff1683838381811061093c57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156109e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4d656469616e2f6e6f2d636f6e74726163742d3000000000000000000000000081525060200191505060405180910390fd5b6001600460008585858181106109f557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808060010191505061090d565b505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b600160109054906101000a900463ffffffff1681565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b5f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60008111610bd5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f71756f72756d2d69732d7a65726f000000000000000000000081525060200191505060405180910390fd5b600060028281610be157fe5b061415610c56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d656469616e2f71756f72756d2d6e6f742d6f64642d6e756d6265720000000081525060200191505060405180910390fd5b806002819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d47576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60008090505b82829050811015610dd257600060046000858585818110610d6a57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080600101915050610d4d565b505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b7f474e4f555344000000000000000000000000000000000000000000000000000081565b60046020528060005260406000206000915090505481565b60006001600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610efd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4d656469616e2f636f6e74726163742d6e6f742d77686974656c69737465640081525060200191505060405180910390fd5b6000600160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1611610fa3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4d656469616e2f696e76616c69642d70726963652d666565640000000000000081525060200191505060405180910390fd5b600160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16905090565b6000806001600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611091576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4d656469616e2f636f6e74726163742d6e6f742d77686974656c69737465640081525060200191505060405180910390fd5b600160009054906101000a90046fffffffffffffffffffffffffffffffff166000600160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1611816fffffffffffffffffffffffffffffffff169150915091509091565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146111b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146112e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b6002548a8a9050146113d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4d656469616e2f6261722d746f6f2d6c6f77000000000000000000000000000081525060200191505060405180910390fd5b600080905060008090506000600160109054906101000a900463ffffffff1663ffffffff16905060008090505b8d8d905081101561171657600061147c8f8f8481811061142157fe5b905060200201358e8e8581811061143457fe5b905060200201358d8d8681811061144757fe5b9050602002013560ff168c8c8781811061145d57fe5b905060200201358b8b8881811061147057fe5b90506020020135612168565b90506001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611533576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f696e76616c69642d6f7261636c65000000000000000000000081525060200191505060405180910390fd5b828d8d8481811061154057fe5b90506020020135116115ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4d656469616e2f7374616c652d6d65737361676500000000000000000000000081525060200191505060405180910390fd5b838f8f848181106115c757fe5b905060200201351015611642576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d656469616e2f6d657373616765732d6e6f742d696e2d6f726465720000000081525060200191505060405180910390fd5b8e8e8381811061164e57fe5b905060200201359350600060988273ffffffffffffffffffffffffffffffffffffffff16901c9050600060028260ff1688901c8161168857fe5b06146116fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d656469616e2f6f7261636c652d616c72656164792d7369676e65640000000081525060200191505060405180910390fd5b8060ff1660020a8601955050508080600101915050611405565b508c8c60018f8f9050901c81811061172a57fe5b90506020020135600160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555042600160106101000a81548163ffffffff021916908363ffffffff1602179055507fb78ebc573f1f889ca9e1e0fb62c843c836f3d3a2e1f43ef62940e9b894f4ea4c600160009054906101000a90046fffffffffffffffffffffffffffffffff16600160109054906101000a900463ffffffff1660405180836fffffffffffffffffffffffffffffffff1681526020018263ffffffff1681526020019250505060405180910390a150505050505050505050505050565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60008090505b82829050811015611a2d5760006003600085858581811061192a57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060056000609886868681811061199957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901c60ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808060010191505061190d565b505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611b19576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60008090505b82829050811015611e1257600073ffffffffffffffffffffffffffffffffffffffff16838383818110611b4e57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611bf5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4d656469616e2f6e6f2d6f7261636c652d30000000000000000000000000000081525060200191505060405180910390fd5b60006098848484818110611c0557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901c9050600073ffffffffffffffffffffffffffffffffffffffff16600560008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d17576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d656469616e2f7369676e65722d616c72656164792d6578697374730000000081525060200191505060405180910390fd5b600160036000868686818110611d2957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550838383818110611d9057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16600560008360ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508080600101915050611b1f565b505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611efe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60006020528060005260406000206000915090505481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414612044576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156120e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4d656469616e2f6e6f2d636f6e74726163742d3000000000000000000000000081525060200191505060405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60025481565b6000600186867f474e4f55534400000000000000000000000000000000000000000000000000006040516020018084815260200183815260200182815260200193505050506040516020818303038152906040528051906020012060405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012085858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561226b573d6000803e3d6000fd5b5050506020604051035190509594505050505056fea265627a7a72315820b238f3fb4184588cd3de71d8608306950cf29b524e5e2a1a94cb7ce147b7f8f064736f6c634300050c0032
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101215760003560e01c806365c4ce7a116100ad578063943181061161007157806394318106146106c45780639c52a7f11461073d578063bf353dbb14610781578063f29c29c4146107d9578063febb0f7e1461081d57610121565b806365c4ce7a1461038557806365fae35e146103c957806389bbb8b21461040d5780638d0e5a9a146105da5780638ef5eaf01461064b57610121565b806346d4577d116100f457806346d4577d1461024f5780634ca29923146102c85780634fce7a2a146102e657806357de26a41461033e57806359e02dd71461035c57610121565b8063020b2e32146101265780631b25b65f1461017e578063262a9dff146101f7578063352d3fba14610221575b600080fd5b6101686004803603602081101561013c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061083b565b6040518082815260200191505060405180910390f35b6101f56004803603602081101561019457600080fd5b81019080803590602001906401000000008111156101b157600080fd5b8201836020820111156101c357600080fd5b803590602001918460208302840111640100000000831117156101e557600080fd5b9091929391929390505050610853565b005b6101ff610a95565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b61024d6004803603602081101561023757600080fd5b8101908080359060200190929190505050610aab565b005b6102c66004803603602081101561026557600080fd5b810190808035906020019064010000000081111561028257600080fd5b82018360208201111561029457600080fd5b803590602001918460208302840111640100000000831117156102b657600080fd5b9091929391929390505050610c93565b005b6102d0610e0a565b6040518082815260200191505060405180910390f35b610328600480360360208110156102fc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e2e565b6040518082815260200191505060405180910390f35b610346610e46565b6040518082815260200191505060405180910390f35b610364610fd9565b60405180838152602001821515151581526020019250505060405180910390f35b6103c76004803603602081101561039b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611101565b005b61040b600480360360208110156103df57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611230565b005b6105d8600480360360a081101561042357600080fd5b810190808035906020019064010000000081111561044057600080fd5b82018360208201111561045257600080fd5b8035906020019184602083028401116401000000008311171561047457600080fd5b90919293919293908035906020019064010000000081111561049557600080fd5b8201836020820111156104a757600080fd5b803590602001918460208302840111640100000000831117156104c957600080fd5b9091929391929390803590602001906401000000008111156104ea57600080fd5b8201836020820111156104fc57600080fd5b8035906020019184602083028401116401000000008311171561051e57600080fd5b90919293919293908035906020019064010000000081111561053f57600080fd5b82018360208201111561055157600080fd5b8035906020019184602083028401116401000000008311171561057357600080fd5b90919293919293908035906020019064010000000081111561059457600080fd5b8201836020820111156105a657600080fd5b803590602001918460208302840111640100000000831117156105c857600080fd5b909192939192939050505061135e565b005b610609600480360360208110156105f057600080fd5b81019080803560ff169060200190929190505050611820565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106c26004803603602081101561066157600080fd5b810190808035906020019064010000000081111561067e57600080fd5b82018360208201111561069057600080fd5b803590602001918460208302840111640100000000831117156106b257600080fd5b9091929391929390505050611853565b005b61073b600480360360208110156106da57600080fd5b81019080803590602001906401000000008111156106f757600080fd5b82018360208201111561070957600080fd5b8035906020019184602083028401116401000000008311171561072b57600080fd5b9091929391929390505050611a65565b005b61077f6004803603602081101561075357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e4a565b005b6107c36004803603602081101561079757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f78565b6040518082815260200191505060405180910390f35b61081b600480360360208110156107ef57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f90565b005b610825612162565b6040518082815260200191505060405180910390f35b60036020528060005260406000206000915090505481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60008090505b82829050811015610a5d57600073ffffffffffffffffffffffffffffffffffffffff1683838381811061093c57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156109e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4d656469616e2f6e6f2d636f6e74726163742d3000000000000000000000000081525060200191505060405180910390fd5b6001600460008585858181106109f557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808060010191505061090d565b505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b600160109054906101000a900463ffffffff1681565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b5f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60008111610bd5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f71756f72756d2d69732d7a65726f000000000000000000000081525060200191505060405180910390fd5b600060028281610be157fe5b061415610c56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d656469616e2f71756f72756d2d6e6f742d6f64642d6e756d6265720000000081525060200191505060405180910390fd5b806002819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d47576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60008090505b82829050811015610dd257600060046000858585818110610d6a57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080600101915050610d4d565b505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b7f474e4f555344000000000000000000000000000000000000000000000000000081565b60046020528060005260406000206000915090505481565b60006001600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610efd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4d656469616e2f636f6e74726163742d6e6f742d77686974656c69737465640081525060200191505060405180910390fd5b6000600160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1611610fa3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4d656469616e2f696e76616c69642d70726963652d666565640000000000000081525060200191505060405180910390fd5b600160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16905090565b6000806001600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611091576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4d656469616e2f636f6e74726163742d6e6f742d77686974656c69737465640081525060200191505060405180910390fd5b600160009054906101000a90046fffffffffffffffffffffffffffffffff166000600160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1611816fffffffffffffffffffffffffffffffff169150915091509091565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146111b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146112e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b6002548a8a9050146113d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4d656469616e2f6261722d746f6f2d6c6f77000000000000000000000000000081525060200191505060405180910390fd5b600080905060008090506000600160109054906101000a900463ffffffff1663ffffffff16905060008090505b8d8d905081101561171657600061147c8f8f8481811061142157fe5b905060200201358e8e8581811061143457fe5b905060200201358d8d8681811061144757fe5b9050602002013560ff168c8c8781811061145d57fe5b905060200201358b8b8881811061147057fe5b90506020020135612168565b90506001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611533576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f696e76616c69642d6f7261636c65000000000000000000000081525060200191505060405180910390fd5b828d8d8481811061154057fe5b90506020020135116115ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4d656469616e2f7374616c652d6d65737361676500000000000000000000000081525060200191505060405180910390fd5b838f8f848181106115c757fe5b905060200201351015611642576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d656469616e2f6d657373616765732d6e6f742d696e2d6f726465720000000081525060200191505060405180910390fd5b8e8e8381811061164e57fe5b905060200201359350600060988273ffffffffffffffffffffffffffffffffffffffff16901c9050600060028260ff1688901c8161168857fe5b06146116fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d656469616e2f6f7261636c652d616c72656164792d7369676e65640000000081525060200191505060405180910390fd5b8060ff1660020a8601955050508080600101915050611405565b508c8c60018f8f9050901c81811061172a57fe5b90506020020135600160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555042600160106101000a81548163ffffffff021916908363ffffffff1602179055507fb78ebc573f1f889ca9e1e0fb62c843c836f3d3a2e1f43ef62940e9b894f4ea4c600160009054906101000a90046fffffffffffffffffffffffffffffffff16600160109054906101000a900463ffffffff1660405180836fffffffffffffffffffffffffffffffff1681526020018263ffffffff1681526020019250505060405180910390a150505050505050505050505050565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60008090505b82829050811015611a2d5760006003600085858581811061192a57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060056000609886868681811061199957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901c60ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808060010191505061190d565b505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611b19576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60008090505b82829050811015611e1257600073ffffffffffffffffffffffffffffffffffffffff16838383818110611b4e57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611bf5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4d656469616e2f6e6f2d6f7261636c652d30000000000000000000000000000081525060200191505060405180910390fd5b60006098848484818110611c0557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901c9050600073ffffffffffffffffffffffffffffffffffffffff16600560008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d17576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d656469616e2f7369676e65722d616c72656164792d6578697374730000000081525060200191505060405180910390fd5b600160036000868686818110611d2957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550838383818110611d9057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16600560008360ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508080600101915050611b1f565b505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a4505050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611efe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60006020528060005260406000206000915090505481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414612044576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d656469616e2f6e6f742d617574686f72697a6564000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156120e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4d656469616e2f6e6f2d636f6e74726163742d3000000000000000000000000081525060200191505060405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505961012081016040526020815260e0602082015260e0600060408301376024356004353360003560e01c60e01b61012085a45050565b60025481565b6000600186867f474e4f55534400000000000000000000000000000000000000000000000000006040516020018084815260200183815260200182815260200193505050506040516020818303038152906040528051906020012060405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012085858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561226b573d6000803e3d6000fd5b5050506020604051035190509594505050505056fea265627a7a72315820b238f3fb4184588cd3de71d8608306950cf29b524e5e2a1a94cb7ce147b7f8f064736f6c634300050c0032
Deployed Bytecode Sourcemap
6258:389:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6258:389:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2559:40;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2559:40:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5881:214;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5881:214:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;5881:214:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5881:214:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;5881:214:0;;;;;;;;;;;;:::i;:::-;;2375:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5456:196;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5456:196:0;;;;;;;;;;;;;;;;;:::i;:::-;;6103:148;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6103:148:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;6103:148:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6103:148:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;6103:148:0;;;;;;;;;;;;:::i;:::-;;6297:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2654:39;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2654:39:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3032:138;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3178:98;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5800:73;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5800:73:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;2099:65;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2099:65:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;3592:1259;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;3592:1259:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3592:1259:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3592:1259:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;3592:1259:0;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3592:1259:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3592:1259:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;3592:1259:0;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3592:1259:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3592:1259:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;3592:1259:0;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3592:1259:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3592:1259:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;3592:1259:0;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3592:1259:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3592:1259:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;3592:1259:0;;;;;;;;;;;;:::i;:::-;;2742:38;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2742:38:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5239:209;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5239:209:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;5239:209:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5239:209:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;5239:209:0;;;;;;;;;;;;:::i;:::-;;4859:372;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4859:372:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;4859:372:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4859:372:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;4859:372:0;;;;;;;;;;;;:::i;:::-;;2170:65;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2170:65:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;2054:38;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2054:38:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5660:132;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5660:132:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;2485:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2559:40;;;;;;;;;;;;;;;;;:::o;5881:214::-;2295:1;2274:5;:17;2280:10;2274:17;;;;;;;;;;;;;;;;:22;2266:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5951:6;5960:1;5951:10;;5947:141;5967:1;;:8;;5963:1;:12;5947:141;;;6021:1;6005:18;;:1;;6007;6005:4;;;;;;;;;;;;;;;:18;;;;5997:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6075:1;6063:3;:9;6067:1;;6069;6067:4;;;;;;;;;;;;;;;6063:9;;;;;;;;;;;;;;;:13;;;;5977:3;;;;;;;5947:141;;;;1246:7;1344:3;1338:4;1334:14;1328:4;1321:28;1419:4;1413;1406:18;1511:3;1504:4;1498;1494:15;1487:28;1598:3;1595:1;1588:4;1582;1578:15;1565:37;1922:2;1909:16;1859:1;1846:15;1775:8;1740:1;1727:15;1722:3;1718:25;1713:3;1709:35;1648:3;1642:4;1637:335;1069:914;;;:::o;2375:18::-;;;;;;;;;;;;;:::o;5456:196::-;2295:1;2274:5;:17;2280:10;2274:17;;;;;;;;;;;;;;;;:22;2266:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5531:1;5524:4;:8;5516:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5589:1;5584;5577:4;:8;;;;;;:13;;5569:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5640:4;5634:3;:10;;;;1246:7;1344:3;1338:4;1334:14;1328:4;1321:28;1419:4;1413;1406:18;1511:3;1504:4;1498;1494:15;1487:28;1598:3;1595:1;1588:4;1582;1578:15;1565:37;1922:2;1909:16;1859:1;1846:15;1775:8;1740:1;1727:15;1722:3;1718:25;1713:3;1709:35;1648:3;1642:4;1637:335;1069:914;;:::o;6103:148::-;2295:1;2274:5;:17;2280:10;2274:17;;;;;;;;;;;;;;;;:22;2266:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6173:6;6182:1;6173:10;;6169:75;6189:1;;:8;;6185:1;:12;6169:75;;;6231:1;6219:3;:9;6223:1;;6225;6223:4;;;;;;;;;;;;;;;6219:9;;;;;;;;;;;;;;;:13;;;;6199:3;;;;;;;6169:75;;;;1246:7;1344:3;1338:4;1334:14;1328:4;1321:28;1419:4;1413;1406:18;1511:3;1504:4;1498;1494:15;1487:28;1598:3;1595:1;1588:4;1582;1578:15;1565:37;1922:2;1909:16;1859:1;1846:15;1775:8;1740:1;1727:15;1722:3;1718:25;1713:3;1709:35;1648:3;1642:4;1637:335;1069:914;;;:::o;6297:38::-;;;:::o;2654:39::-;;;;;;;;;;;;;;;;;:::o;3032:138::-;3076:7;2832:1;2813:3;:15;2817:10;2813:15;;;;;;;;;;;;;;;;:20;2805:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3110:1;3104:3;;;;;;;;;;;:7;;;3096:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3159:3;;;;;;;;;;;3152:10;;;;3032:138;:::o;3178:98::-;3222:7;3230:4;2832:1;2813:3;:15;2817:10;2813:15;;;;;;;;;;;;;;;;:20;2805:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3255:3;;;;;;;;;;;3266:1;3260:3;;;;;;;;;;;:7;;;3247:21;;;;;;;;;3178:98;;:::o;5800:73::-;2295:1;2274:5;:17;2280:10;2274:17;;;;;;;;;;;;;;;;:22;2266:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5864:1;5855:3;:6;5859:1;5855:6;;;;;;;;;;;;;;;:10;;;;1246:7;1344:3;1338:4;1334:14;1328:4;1321:28;1419:4;1413;1406:18;1511:3;1504:4;1498;1494:15;1487:28;1598:3;1595:1;1588:4;1582;1578:15;1565:37;1922:2;1909:16;1859:1;1846:15;1775:8;1740:1;1727:15;1722:3;1718:25;1713:3;1709:35;1648:3;1642:4;1637:335;1069:914;;:::o;2099:65::-;2295:1;2274:5;:17;2280:10;2274:17;;;;;;;;;;;;;;;;:22;2266:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2160:1;2147:5;:10;2153:3;2147:10;;;;;;;;;;;;;;;:14;;;;1246:7;1344:3;1338:4;1334:14;1328:4;1321:28;1419:4;1413;1406:18;1511:3;1504:4;1498;1494:15;1487:28;1598:3;1595:1;1588:4;1582;1578:15;1565:37;1922:2;1909:16;1859:1;1846:15;1775:8;1740:1;1727:15;1722:3;1718:25;1713:3;1709:35;1648:3;1642:4;1637:335;1069:914;;:::o;3592:1259::-;3787:3;;3772:4;;:11;;:18;3764:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3826:13;3842:1;3826:17;;3854:12;3869:1;3854:16;;3881:11;3895:3;;;;;;;;;;;3881:17;;;;3916:6;3925:1;3916:10;;3911:801;3932:4;;:11;;3928:1;:15;3911:801;;;4037:14;4054:43;4062:4;;4067:1;4062:7;;;;;;;;;;;;;4071:4;;4076:1;4071:7;;;;;;;;;;;;;4080:1;;4082;4080:4;;;;;;;;;;;;;;;4086:1;;4088;4086:4;;;;;;;;;;;;;4092:1;;4094;4092:4;;;;;;;;;;;;;4054:7;:43::i;:::-;4037:60;;4183:1;4167:4;:12;4172:6;4167:12;;;;;;;;;;;;;;;;:17;4159:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4307:3;4297:4;;4302:1;4297:7;;;;;;;;;;;;;:13;4289:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4410:4;4399;;4404:1;4399:7;;;;;;;;;;;;;:15;;4391:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4469:4;;4474:1;4469:7;;;;;;;;;;;;;4462:14;;4542:8;4578:3;4567:6;4559:15;;:22;;4542:40;;4626:1;4621;4615:2;4606:11;;:5;:11;;4605:17;;;;;;:22;4597:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4698:2;4684:16;;4692:1;4684:16;4675:25;;;;3911:801;;3945:3;;;;;;;3911:801;;;;4738:4;;4758:1;4743:4;;:11;;:16;;4738:22;;;;;;;;;;;;;4724:3;;:37;;;;;;;;;;;;;;;;;;4785:15;4772:3;;:29;;;;;;;;;;;;;;;;;;4819:24;4834:3;;;;;;;;;;;4839;;;;;;;;;;;4819:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;3592:1259;;;;;;;;;;;;;:::o;2742:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;5239:209::-;2295:1;2274:5;:17;2280:10;2274:17;;;;;;;;;;;;;;;;:22;2266:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5309:6;5318:1;5309:10;;5304:137;5325:1;;:8;;5321:1;:12;5304:137;;;5368:1;5355:4;:10;5360:1;;5362;5360:4;;;;;;;;;;;;;;;5355:10;;;;;;;;;;;;;;;:14;;;;5428:1;5384:4;:33;5412:3;5403:1;;5405;5403:4;;;;;;;;;;;;;;;5395:13;;:20;;5384:33;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;5335:3;;;;;;;5304:137;;;;1246:7;1344:3;1338:4;1334:14;1328:4;1321:28;1419:4;1413;1406:18;1511:3;1504:4;1498;1494:15;1487:28;1598:3;1595:1;1588:4;1582;1578:15;1565:37;1922:2;1909:16;1859:1;1846:15;1775:8;1740:1;1727:15;1722:3;1718:25;1713:3;1709:35;1648:3;1642:4;1637:335;1069:914;;;:::o;4859:372::-;2295:1;2274:5;:17;2280:10;2274:17;;;;;;;;;;;;;;;;:22;2266:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4930:6;4939:1;4930:10;;4925:299;4946:1;;:8;;4942:1;:12;4925:299;;;5000:1;4984:18;;:1;;4986;4984:4;;;;;;;;;;;;;;;:18;;;;4976:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5040:7;5073:3;5064:1;;5066;5064:4;;;;;;;;;;;;;;;5056:13;;:20;;5040:37;;5119:1;5100:21;;:4;:7;5105:1;5100:7;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;5092:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5182:1;5169:4;:10;5174:1;;5176;5174:4;;;;;;;;;;;;;;;5169:10;;;;;;;;;;;;;;;:14;;;;5208:1;;5210;5208:4;;;;;;;;;;;;;;;5198;:7;5203:1;5198:7;;;;;;;;;;;;;;;;:14;;;;;;;;;;;;;;;;;;4925:299;4956:3;;;;;;;4925:299;;;;1246:7;1344:3;1338:4;1334:14;1328:4;1321:28;1419:4;1413;1406:18;1511:3;1504:4;1498;1494:15;1487:28;1598:3;1595:1;1588:4;1582;1578:15;1565:37;1922:2;1909:16;1859:1;1846:15;1775:8;1740:1;1727:15;1722:3;1718:25;1713:3;1709:35;1648:3;1642:4;1637:335;1069:914;;;:::o;2170:65::-;2295:1;2274:5;:17;2280:10;2274:17;;;;;;;;;;;;;;;;:22;2266:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2231:1;2218:5;:10;2224:3;2218:10;;;;;;;;;;;;;;;:14;;;;1246:7;1344:3;1338:4;1334:14;1328:4;1321:28;1419:4;1413;1406:18;1511:3;1504:4;1498;1494:15;1487:28;1598:3;1595:1;1588:4;1582;1578:15;1565:37;1922:2;1909:16;1859:1;1846:15;1775:8;1740:1;1727:15;1722:3;1718:25;1713:3;1709:35;1648:3;1642:4;1637:335;1069:914;;:::o;2054:38::-;;;;;;;;;;;;;;;;;:::o;5660:132::-;2295:1;2274:5;:17;2280:10;2274:17;;;;;;;;;;;;;;;;:22;2266:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5736:1;5723:15;;:1;:15;;;;5715:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5783:1;5774:3;:6;5778:1;5774:6;;;;;;;;;;;;;;;:10;;;;1246:7;1344:3;1338:4;1334:14;1328:4;1321:28;1419:4;1413;1406:18;1511:3;1504:4;1498;1494:15;1487:28;1598:3;1595:1;1588:4;1582;1578:15;1565:37;1922:2;1909:16;1859:1;1846:15;1775:8;1740:1;1727:15;1722:3;1718:25;1713:3;1709:35;1648:3;1642:4;1637:335;1069:914;;:::o;2485:22::-;;;;:::o;6344:300::-;6443:7;6470:166;6584:4;6590;6596:3;6567:33;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;6567:33:0;;;6557:44;;;;;;6504:98;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;6504:98:0;;;6494:109;;;;;;6618:1;6621;6624;6470:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6470:166:0;;;;;;;;6463:173;;6344:300;;;;;;;:::o
Swarm Source
bzzr://b238f3fb4184588cd3de71d8608306950cf29b524e5e2a1a94cb7ce147b7f8f0
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.