Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000 $MYST
Holders
387
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.000000000000000001 $MYSTValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
MYST
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-12-19 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.26; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract MYST is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public _isExcludedFromFee; mapping(address => bool) public automatedMarketMakerPairs; uint8 private constant _decimals = 18; uint256 private constant _tTotal = 100000000 * 10**_decimals; string private constant _name = unicode"MYST"; string private constant _symbol = unicode"$MYST"; uint256 public _taxSwapThreshold= 100000 * 10**_decimals; uint256 public maxMystPerWallet = 2000000 * 10 ** decimals(); uint256 public _mystBuyTax = 5; uint256 public _mystSellTax = 5; uint256 public _mystTransferTax = 5; address payable public _mystTaxWallet = payable(0xBf5e6D128e92bE2Cb3a2a7f5Ee527d6f5b62F779); IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private inSwap = false; bool private swapEnabled = true; bool public tradeEnabled = false; modifier lockTheSwap { inSwap = true; _; inSwap = false; } event TaxWalletPaymentRevert(address indexed taxWallet, uint256 amount); constructor () { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // mainnet router address // IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1); // test router address // Create a uniswap pair for this new token uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); // set the rest of the contract variables uniswapV2Router = _uniswapV2Router; _balances[_msgSender()] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_mystTaxWallet] = true; automatedMarketMakerPairs[uniswapV2Pair] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); uint256 taxAmount=0; if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { require(tradeEnabled, "Trading not enabled"); if(!automatedMarketMakerPairs[to]){ require(balanceOf(to) + amount <= maxMystPerWallet, "Higher than the limit Of MYST Per Wallet."); } if(_mystTransferTax > 0) { if(!automatedMarketMakerPairs[to] && !automatedMarketMakerPairs[from]) { taxAmount = amount.mul(_mystTransferTax).div(100); } } if(_mystBuyTax > 0) { if (automatedMarketMakerPairs[from] == true) { taxAmount = amount.mul(_mystBuyTax).div(100); } } if(_mystSellTax > 0) { if(automatedMarketMakerPairs[to] == true){ taxAmount = amount.mul(_mystSellTax).div(100); } } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && automatedMarketMakerPairs[to] == true && swapEnabled && contractTokenBalance>_taxSwapThreshold) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } if(taxAmount>0){ _balances[address(this)]=_balances[address(this)].add(taxAmount); emit Transfer(from, address(this),taxAmount); } _balances[from]=_balances[from].sub(amount); _balances[to]=_balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); } function min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { if(tokenAmount==0){return;} address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { (bool callSuccess, ) = payable(_mystTaxWallet).call{value: amount}(""); if (!callSuccess) { // Log the failure but do not revert the transaction emit TaxWalletPaymentRevert(_mystTaxWallet, amount); } } receive() external payable {} function RecoverLostEth() public onlyOwner { require(address(this).balance > 0, "No stuck Eth"); uint256 ethBalance = address(this).balance; (bool callSuccess, ) = payable(msg.sender).call{value: ethBalance}( "" ); require(callSuccess, "Call failed"); } function updateMystWalletLimit(uint256 _maxLimit) public onlyOwner{ require(_maxLimit > totalSupply().div(200),"Limit too less"); maxMystPerWallet = _maxLimit; } function whiteListFromFee(address account) public onlyOwner { _isExcludedFromFee[account] = true; } function includeInFee(address account) public onlyOwner { _isExcludedFromFee[account] = false; } function updateTaxes(uint256 buyFee, uint256 sellFee) public onlyOwner { _mystBuyTax = buyFee; _mystSellTax = sellFee; } function updateTransferTax(uint256 _transferTax) public onlyOwner { _mystTransferTax = _transferTax; } function changeTaxSwapLimit(uint256 _taxLimit) public onlyOwner{ require(_taxLimit > 0, "Tax limit too low"); _taxSwapThreshold = _taxLimit; } function setAutomatedMarketMakerPair(address _pair) public onlyOwner{ automatedMarketMakerPairs[_pair] = true; } function removeAutomatedMarketMakerPair(address _pair) public onlyOwner{ automatedMarketMakerPairs[_pair] = false; } function launchMyst() public onlyOwner { require(tradeEnabled != true, "Trade already enabled"); tradeEnabled = true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","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":"taxWallet","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TaxWalletPaymentRevert","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"RecoverLostEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mystBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mystSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mystTaxWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mystTransferTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_taxLimit","type":"uint256"}],"name":"changeTaxSwapLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchMyst","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxMystPerWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"removeAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradeEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxLimit","type":"uint256"}],"name":"updateMystWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyFee","type":"uint256"},{"internalType":"uint256","name":"sellFee","type":"uint256"}],"name":"updateTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_transferTax","type":"uint256"}],"name":"updateTransferTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"whiteListFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526012600a610012919061081c565b620186a06100209190610866565b6005556100316105b460201b60201c565b600a61003d919061081c565b621e848061004b9190610866565b60065560056007556005600855600560095573bf5e6d128e92be2cb3a2a7f5ee527d6f5b62f779600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600c60146101000a81548160ff0219169083151502179055506001600c60156101000a81548160ff0219169083151502179055505f600c60166101000a81548160ff02191690831515021790555034801561010b575f80fd5b5061012861011d6105bc60201b60201c565b6105c360201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610189573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101ad9190610905565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610212573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102369190610905565b6040518363ffffffff1660e01b815260040161025392919061093f565b6020604051808303815f875af115801561026f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102939190610905565b600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a610320919061081c565b6305f5e10061032f9190610866565b60015f6103406105bc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61039061068460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061052e6105bc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a61058a919061081c565b6305f5e1006105999190610866565b6040516105a69190610975565b60405180910390a35061098e565b5f6012905090565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561072d57808604811115610709576107086106ab565b5b60018516156107185780820291505b8081029050610726856106d8565b94506106ed565b94509492505050565b5f826107455760019050610800565b81610752575f9050610800565b81600181146107685760028114610772576107a1565b6001915050610800565b60ff841115610784576107836106ab565b5b8360020a91508482111561079b5761079a6106ab565b5b50610800565b5060208310610133831016604e8410600b84101617156107d65782820a9050838111156107d1576107d06106ab565b5b610800565b6107e384848460016106e4565b925090508184048111156107fa576107f96106ab565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f61082682610807565b915061083183610810565b925061085e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610736565b905092915050565b5f61087082610807565b915061087b83610807565b925082820261088981610807565b915082820484148315176108a05761089f6106ab565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6108d4826108ab565b9050919050565b6108e4816108ca565b81146108ee575f80fd5b50565b5f815190506108ff816108db565b92915050565b5f6020828403121561091a576109196108a7565b5b5f610927848285016108f1565b91505092915050565b610939816108ca565b82525050565b5f6040820190506109525f830185610930565b61095f6020830184610930565b9392505050565b61096f81610807565b82525050565b5f6020820190506109885f830184610966565b92915050565b612fea8061099b5f395ff3fe6080604052600436106101db575f3560e01c80637eae8e9111610101578063d8a59f6f11610094578063ea2f0b3711610063578063ea2f0b3714610688578063efefd8ae146106b0578063f2fde38b146106da578063fb236edb14610702576101e2565b8063d8a59f6f146105e4578063dd62ed3e146105fa578063df70743514610636578063e77f35c414610660576101e2565b8063b62496f5116100d0578063b62496f51461052c578063bf474bed14610568578063c4f87f9514610592578063d621e813146105ba576101e2565b80637eae8e91146104725780638da5cb5b1461049c57806395d89b41146104c6578063a9059cbb146104f0576101e2565b8063349c1f091161017957806370a082311161014857806370a08231146103ce578063715018a61461040a578063748a2b0d14610420578063768dc71014610436576101e2565b8063349c1f091461032c57806346c8df23146103545780635053b1481461037c578063508f6dfb146103a6576101e2565b80631006ee0c116101b55780631006ee0c1461027457806318160ddd1461029c57806323b872dd146102c6578063313ce56714610302576101e2565b806306fdde03146101e657806308c85da014610210578063095ea7b314610238576101e2565b366101e257005b5f80fd5b3480156101f1575f80fd5b506101fa61072c565b6040516102079190612006565b60405180910390f35b34801561021b575f80fd5b506102366004803603810190610231919061205d565b610769565b005b348015610243575f80fd5b5061025e600480360381019061025991906120e2565b6107bd565b60405161026b919061213a565b60405180910390f35b34801561027f575f80fd5b5061029a60048036038101906102959190612153565b6107da565b005b3480156102a7575f80fd5b506102b06107f4565b6040516102bd91906121a0565b60405180910390f35b3480156102d1575f80fd5b506102ec60048036038101906102e791906121b9565b610817565b6040516102f9919061213a565b60405180910390f35b34801561030d575f80fd5b506103166108eb565b6040516103239190612224565b60405180910390f35b348015610337575f80fd5b50610352600480360381019061034d919061223d565b6108f3565b005b34801561035f575f80fd5b5061037a6004803603810190610375919061223d565b610953565b005b348015610387575f80fd5b506103906109b2565b60405161039d91906121a0565b60405180910390f35b3480156103b1575f80fd5b506103cc60048036038101906103c7919061223d565b6109b8565b005b3480156103d9575f80fd5b506103f460048036038101906103ef919061223d565b610a18565b60405161040191906121a0565b60405180910390f35b348015610415575f80fd5b5061041e610a5e565b005b34801561042b575f80fd5b50610434610a71565b005b348015610441575f80fd5b5061045c6004803603810190610457919061223d565b610aec565b604051610469919061213a565b60405180910390f35b34801561047d575f80fd5b50610486610b09565b60405161049391906121a0565b60405180910390f35b3480156104a7575f80fd5b506104b0610b0f565b6040516104bd9190612277565b60405180910390f35b3480156104d1575f80fd5b506104da610b36565b6040516104e79190612006565b60405180910390f35b3480156104fb575f80fd5b50610516600480360381019061051191906120e2565b610b73565b604051610523919061213a565b60405180910390f35b348015610537575f80fd5b50610552600480360381019061054d919061223d565b610b90565b60405161055f919061213a565b60405180910390f35b348015610573575f80fd5b5061057c610bad565b60405161058991906121a0565b60405180910390f35b34801561059d575f80fd5b506105b860048036038101906105b3919061205d565b610bb3565b005b3480156105c5575f80fd5b506105ce610c21565b6040516105db919061213a565b60405180910390f35b3480156105ef575f80fd5b506105f8610c34565b005b348015610605575f80fd5b50610620600480360381019061061b9190612290565b610d2e565b60405161062d91906121a0565b60405180910390f35b348015610641575f80fd5b5061064a610db0565b60405161065791906121a0565b60405180910390f35b34801561066b575f80fd5b506106866004803603810190610681919061205d565b610db6565b005b348015610693575f80fd5b506106ae60048036038101906106a9919061223d565b610dc8565b005b3480156106bb575f80fd5b506106c4610e27565b6040516106d191906122ee565b60405180910390f35b3480156106e5575f80fd5b5061070060048036038101906106fb919061223d565b610e4c565b005b34801561070d575f80fd5b50610716610ece565b60405161072391906121a0565b60405180910390f35b60606040518060400160405280600481526020017f4d59535400000000000000000000000000000000000000000000000000000000815250905090565b610771610ed4565b5f81116107b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107aa90612351565b60405180910390fd5b8060058190555050565b5f6107d06107c9610f52565b8484610f59565b6001905092915050565b6107e2610ed4565b81600781905550806008819055505050565b5f6012600a61080391906124cb565b6305f5e1006108129190612515565b905090565b5f61082384848461111c565b6108e08461082f610f52565b6108db85604051806060016040528060288152602001612f8d6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610892610f52565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546119369092919063ffffffff16565b610f59565b600190509392505050565b5f6012905090565b6108fb610ed4565b600160045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b61095b610ed4565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60095481565b6109c0610ed4565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a66610ed4565b610a6f5f611998565b565b610a79610ed4565b60011515600c60169054906101000a900460ff16151503610acf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac6906125a0565b60405180910390fd5b6001600c60166101000a81548160ff021916908315150217905550565b6003602052805f5260405f205f915054906101000a900460ff1681565b60065481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f244d595354000000000000000000000000000000000000000000000000000000815250905090565b5f610b86610b7f610f52565b848461111c565b6001905092915050565b6004602052805f5260405f205f915054906101000a900460ff1681565b60055481565b610bbb610ed4565b610bd660c8610bc86107f4565b611a5990919063ffffffff16565b8111610c17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0e90612608565b60405180910390fd5b8060068190555050565b600c60169054906101000a900460ff1681565b610c3c610ed4565b5f4711610c7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7590612670565b60405180910390fd5b5f4790505f3373ffffffffffffffffffffffffffffffffffffffff1682604051610ca7906126bb565b5f6040518083038185875af1925050503d805f8114610ce1576040519150601f19603f3d011682016040523d82523d5f602084013e610ce6565b606091505b5050905080610d2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2190612719565b60405180910390fd5b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60075481565b610dbe610ed4565b8060098190555050565b610dd0610ed4565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610e54610ed4565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ec2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb9906127a7565b60405180910390fd5b610ecb81611998565b50565b60085481565b610edc610f52565b73ffffffffffffffffffffffffffffffffffffffff16610efa610b0f565b73ffffffffffffffffffffffffffffffffffffffff1614610f50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f479061280f565b60405180910390fd5b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbe9061289d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611035576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102c9061292b565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161110f91906121a0565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361118a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611181906129b9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ef90612a47565b60405180910390fd5b5f811161123a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123190612ad5565b60405180910390fd5b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156112d9575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561168657600c60169054906101000a900460ff1661132d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132490612b3d565b60405180910390fd5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166113d4576006548261138885610a18565b6113929190612b5b565b11156113d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ca90612bfe565b60405180910390fd5b5b5f60095411156114ad5760045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561147c575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156114ac576114a9606461149b60095485611aa290919063ffffffff16565b611a5990919063ffffffff16565b90505b5b5f6007541115611538576001151560045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615150361153757611534606461152660075485611aa290919063ffffffff16565b611a5990919063ffffffff16565b90505b5b5f60085411156115c3576001151560045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161515036115c2576115bf60646115b160085485611aa290919063ffffffff16565b611a5990919063ffffffff16565b90505b5b5f6115cd30610a18565b9050600c60149054906101000a900460ff1615801561163957506001151560045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161515145b80156116515750600c60159054906101000a900460ff165b801561165e575060055481115b156116845761166c81611b19565b5f4790505f8111156116825761168147611d8d565b5b505b505b5f811115611785576116de8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e8f90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161177c91906121a0565b60405180910390a35b6117d58260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611eec90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061187861182c8284611eec90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e8f90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61191b8486611eec90919063ffffffff16565b60405161192891906121a0565b60405180910390a350505050565b5f83831115829061197d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119749190612006565b60405180910390fd5b505f838561198b9190612c1c565b9050809150509392505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f611a9a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f35565b905092915050565b5f808303611ab2575f9050611b13565b5f8284611abf9190612515565b9050828482611ace9190612c7c565b14611b0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0590612d1c565b60405180910390fd5b809150505b92915050565b6001600c60146101000a81548160ff0219169083151502179055505f810315611d70575f600267ffffffffffffffff811115611b5857611b57612d3a565b5b604051908082528060200260200182016040528015611b865781602001602082028036833780820191505090505b50905030815f81518110611b9d57611b9c612d67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c41573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c659190612da8565b81600181518110611c7957611c78612d67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611cdf30600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f59565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611d41959493929190612ecc565b5f604051808303815f87803b158015611d58575f80fd5b505af1158015611d6a573d5f803e3d5ffd5b50505050505b5f600c60146101000a81548160ff02191690831515021790555050565b5f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611dd3906126bb565b5f6040518083038185875af1925050503d805f8114611e0d576040519150601f19603f3d011682016040523d82523d5f602084013e611e12565b606091505b5050905080611e8b57600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f0759dac7fa668d044a7de2b7fd31ccc6f577fdf83cd0441d6ebaba277754db5783604051611e8291906121a0565b60405180910390a25b5050565b5f808284611e9d9190612b5b565b905083811015611ee2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed990612f6e565b60405180910390fd5b8091505092915050565b5f611f2d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611936565b905092915050565b5f8083118290611f7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f729190612006565b60405180910390fd5b505f8385611f899190612c7c565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611fd882611f96565b611fe28185611fa0565b9350611ff2818560208601611fb0565b611ffb81611fbe565b840191505092915050565b5f6020820190508181035f83015261201e8184611fce565b905092915050565b5f80fd5b5f819050919050565b61203c8161202a565b8114612046575f80fd5b50565b5f8135905061205781612033565b92915050565b5f6020828403121561207257612071612026565b5b5f61207f84828501612049565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120b182612088565b9050919050565b6120c1816120a7565b81146120cb575f80fd5b50565b5f813590506120dc816120b8565b92915050565b5f80604083850312156120f8576120f7612026565b5b5f612105858286016120ce565b925050602061211685828601612049565b9150509250929050565b5f8115159050919050565b61213481612120565b82525050565b5f60208201905061214d5f83018461212b565b92915050565b5f806040838503121561216957612168612026565b5b5f61217685828601612049565b925050602061218785828601612049565b9150509250929050565b61219a8161202a565b82525050565b5f6020820190506121b35f830184612191565b92915050565b5f805f606084860312156121d0576121cf612026565b5b5f6121dd868287016120ce565b93505060206121ee868287016120ce565b92505060406121ff86828701612049565b9150509250925092565b5f60ff82169050919050565b61221e81612209565b82525050565b5f6020820190506122375f830184612215565b92915050565b5f6020828403121561225257612251612026565b5b5f61225f848285016120ce565b91505092915050565b612271816120a7565b82525050565b5f60208201905061228a5f830184612268565b92915050565b5f80604083850312156122a6576122a5612026565b5b5f6122b3858286016120ce565b92505060206122c4858286016120ce565b9150509250929050565b5f6122d882612088565b9050919050565b6122e8816122ce565b82525050565b5f6020820190506123015f8301846122df565b92915050565b7f546178206c696d697420746f6f206c6f770000000000000000000000000000005f82015250565b5f61233b601183611fa0565b915061234682612307565b602082019050919050565b5f6020820190508181035f8301526123688161232f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156123f1578086048111156123cd576123cc61236f565b5b60018516156123dc5780820291505b80810290506123ea8561239c565b94506123b1565b94509492505050565b5f8261240957600190506124c4565b81612416575f90506124c4565b816001811461242c576002811461243657612465565b60019150506124c4565b60ff8411156124485761244761236f565b5b8360020a91508482111561245f5761245e61236f565b5b506124c4565b5060208310610133831016604e8410600b841016171561249a5782820a9050838111156124955761249461236f565b5b6124c4565b6124a784848460016123a8565b925090508184048111156124be576124bd61236f565b5b81810290505b9392505050565b5f6124d58261202a565b91506124e083612209565b925061250d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846123fa565b905092915050565b5f61251f8261202a565b915061252a8361202a565b92508282026125388161202a565b9150828204841483151761254f5761254e61236f565b5b5092915050565b7f547261646520616c726561647920656e61626c656400000000000000000000005f82015250565b5f61258a601583611fa0565b915061259582612556565b602082019050919050565b5f6020820190508181035f8301526125b78161257e565b9050919050565b7f4c696d697420746f6f206c6573730000000000000000000000000000000000005f82015250565b5f6125f2600e83611fa0565b91506125fd826125be565b602082019050919050565b5f6020820190508181035f83015261261f816125e6565b9050919050565b7f4e6f20737475636b2045746800000000000000000000000000000000000000005f82015250565b5f61265a600c83611fa0565b915061266582612626565b602082019050919050565b5f6020820190508181035f8301526126878161264e565b9050919050565b5f81905092915050565b50565b5f6126a65f8361268e565b91506126b182612698565b5f82019050919050565b5f6126c58261269b565b9150819050919050565b7f43616c6c206661696c65640000000000000000000000000000000000000000005f82015250565b5f612703600b83611fa0565b915061270e826126cf565b602082019050919050565b5f6020820190508181035f830152612730816126f7565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612791602683611fa0565b915061279c82612737565b604082019050919050565b5f6020820190508181035f8301526127be81612785565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6127f9602083611fa0565b9150612804826127c5565b602082019050919050565b5f6020820190508181035f830152612826816127ed565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612887602483611fa0565b91506128928261282d565b604082019050919050565b5f6020820190508181035f8301526128b48161287b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612915602283611fa0565b9150612920826128bb565b604082019050919050565b5f6020820190508181035f83015261294281612909565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6129a3602583611fa0565b91506129ae82612949565b604082019050919050565b5f6020820190508181035f8301526129d081612997565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612a31602383611fa0565b9150612a3c826129d7565b604082019050919050565b5f6020820190508181035f830152612a5e81612a25565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612abf602983611fa0565b9150612aca82612a65565b604082019050919050565b5f6020820190508181035f830152612aec81612ab3565b9050919050565b7f54726164696e67206e6f7420656e61626c6564000000000000000000000000005f82015250565b5f612b27601383611fa0565b9150612b3282612af3565b602082019050919050565b5f6020820190508181035f830152612b5481612b1b565b9050919050565b5f612b658261202a565b9150612b708361202a565b9250828201905080821115612b8857612b8761236f565b5b92915050565b7f486967686572207468616e20746865206c696d6974204f66204d5953542050655f8201527f722057616c6c65742e0000000000000000000000000000000000000000000000602082015250565b5f612be8602983611fa0565b9150612bf382612b8e565b604082019050919050565b5f6020820190508181035f830152612c1581612bdc565b9050919050565b5f612c268261202a565b9150612c318361202a565b9250828203905081811115612c4957612c4861236f565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612c868261202a565b9150612c918361202a565b925082612ca157612ca0612c4f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d06602183611fa0565b9150612d1182612cac565b604082019050919050565b5f6020820190508181035f830152612d3381612cfa565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612da2816120b8565b92915050565b5f60208284031215612dbd57612dbc612026565b5b5f612dca84828501612d94565b91505092915050565b5f819050919050565b5f819050919050565b5f612dff612dfa612df584612dd3565b612ddc565b61202a565b9050919050565b612e0f81612de5565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612e47816120a7565b82525050565b5f612e588383612e3e565b60208301905092915050565b5f602082019050919050565b5f612e7a82612e15565b612e848185612e1f565b9350612e8f83612e2f565b805f5b83811015612ebf578151612ea68882612e4d565b9750612eb183612e64565b925050600181019050612e92565b5085935050505092915050565b5f60a082019050612edf5f830188612191565b612eec6020830187612e06565b8181036040830152612efe8186612e70565b9050612f0d6060830185612268565b612f1a6080830184612191565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612f58601b83611fa0565b9150612f6382612f24565b602082019050919050565b5f6020820190508181035f830152612f8581612f4c565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ba452d430c2a2ccf08f9d43fd3608225c95fe34665c6ce75a3c13a07601b5c3564736f6c634300081a0033
Deployed Bytecode
0x6080604052600436106101db575f3560e01c80637eae8e9111610101578063d8a59f6f11610094578063ea2f0b3711610063578063ea2f0b3714610688578063efefd8ae146106b0578063f2fde38b146106da578063fb236edb14610702576101e2565b8063d8a59f6f146105e4578063dd62ed3e146105fa578063df70743514610636578063e77f35c414610660576101e2565b8063b62496f5116100d0578063b62496f51461052c578063bf474bed14610568578063c4f87f9514610592578063d621e813146105ba576101e2565b80637eae8e91146104725780638da5cb5b1461049c57806395d89b41146104c6578063a9059cbb146104f0576101e2565b8063349c1f091161017957806370a082311161014857806370a08231146103ce578063715018a61461040a578063748a2b0d14610420578063768dc71014610436576101e2565b8063349c1f091461032c57806346c8df23146103545780635053b1481461037c578063508f6dfb146103a6576101e2565b80631006ee0c116101b55780631006ee0c1461027457806318160ddd1461029c57806323b872dd146102c6578063313ce56714610302576101e2565b806306fdde03146101e657806308c85da014610210578063095ea7b314610238576101e2565b366101e257005b5f80fd5b3480156101f1575f80fd5b506101fa61072c565b6040516102079190612006565b60405180910390f35b34801561021b575f80fd5b506102366004803603810190610231919061205d565b610769565b005b348015610243575f80fd5b5061025e600480360381019061025991906120e2565b6107bd565b60405161026b919061213a565b60405180910390f35b34801561027f575f80fd5b5061029a60048036038101906102959190612153565b6107da565b005b3480156102a7575f80fd5b506102b06107f4565b6040516102bd91906121a0565b60405180910390f35b3480156102d1575f80fd5b506102ec60048036038101906102e791906121b9565b610817565b6040516102f9919061213a565b60405180910390f35b34801561030d575f80fd5b506103166108eb565b6040516103239190612224565b60405180910390f35b348015610337575f80fd5b50610352600480360381019061034d919061223d565b6108f3565b005b34801561035f575f80fd5b5061037a6004803603810190610375919061223d565b610953565b005b348015610387575f80fd5b506103906109b2565b60405161039d91906121a0565b60405180910390f35b3480156103b1575f80fd5b506103cc60048036038101906103c7919061223d565b6109b8565b005b3480156103d9575f80fd5b506103f460048036038101906103ef919061223d565b610a18565b60405161040191906121a0565b60405180910390f35b348015610415575f80fd5b5061041e610a5e565b005b34801561042b575f80fd5b50610434610a71565b005b348015610441575f80fd5b5061045c6004803603810190610457919061223d565b610aec565b604051610469919061213a565b60405180910390f35b34801561047d575f80fd5b50610486610b09565b60405161049391906121a0565b60405180910390f35b3480156104a7575f80fd5b506104b0610b0f565b6040516104bd9190612277565b60405180910390f35b3480156104d1575f80fd5b506104da610b36565b6040516104e79190612006565b60405180910390f35b3480156104fb575f80fd5b50610516600480360381019061051191906120e2565b610b73565b604051610523919061213a565b60405180910390f35b348015610537575f80fd5b50610552600480360381019061054d919061223d565b610b90565b60405161055f919061213a565b60405180910390f35b348015610573575f80fd5b5061057c610bad565b60405161058991906121a0565b60405180910390f35b34801561059d575f80fd5b506105b860048036038101906105b3919061205d565b610bb3565b005b3480156105c5575f80fd5b506105ce610c21565b6040516105db919061213a565b60405180910390f35b3480156105ef575f80fd5b506105f8610c34565b005b348015610605575f80fd5b50610620600480360381019061061b9190612290565b610d2e565b60405161062d91906121a0565b60405180910390f35b348015610641575f80fd5b5061064a610db0565b60405161065791906121a0565b60405180910390f35b34801561066b575f80fd5b506106866004803603810190610681919061205d565b610db6565b005b348015610693575f80fd5b506106ae60048036038101906106a9919061223d565b610dc8565b005b3480156106bb575f80fd5b506106c4610e27565b6040516106d191906122ee565b60405180910390f35b3480156106e5575f80fd5b5061070060048036038101906106fb919061223d565b610e4c565b005b34801561070d575f80fd5b50610716610ece565b60405161072391906121a0565b60405180910390f35b60606040518060400160405280600481526020017f4d59535400000000000000000000000000000000000000000000000000000000815250905090565b610771610ed4565b5f81116107b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107aa90612351565b60405180910390fd5b8060058190555050565b5f6107d06107c9610f52565b8484610f59565b6001905092915050565b6107e2610ed4565b81600781905550806008819055505050565b5f6012600a61080391906124cb565b6305f5e1006108129190612515565b905090565b5f61082384848461111c565b6108e08461082f610f52565b6108db85604051806060016040528060288152602001612f8d6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610892610f52565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546119369092919063ffffffff16565b610f59565b600190509392505050565b5f6012905090565b6108fb610ed4565b600160045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b61095b610ed4565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60095481565b6109c0610ed4565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a66610ed4565b610a6f5f611998565b565b610a79610ed4565b60011515600c60169054906101000a900460ff16151503610acf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac6906125a0565b60405180910390fd5b6001600c60166101000a81548160ff021916908315150217905550565b6003602052805f5260405f205f915054906101000a900460ff1681565b60065481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f244d595354000000000000000000000000000000000000000000000000000000815250905090565b5f610b86610b7f610f52565b848461111c565b6001905092915050565b6004602052805f5260405f205f915054906101000a900460ff1681565b60055481565b610bbb610ed4565b610bd660c8610bc86107f4565b611a5990919063ffffffff16565b8111610c17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0e90612608565b60405180910390fd5b8060068190555050565b600c60169054906101000a900460ff1681565b610c3c610ed4565b5f4711610c7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7590612670565b60405180910390fd5b5f4790505f3373ffffffffffffffffffffffffffffffffffffffff1682604051610ca7906126bb565b5f6040518083038185875af1925050503d805f8114610ce1576040519150601f19603f3d011682016040523d82523d5f602084013e610ce6565b606091505b5050905080610d2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2190612719565b60405180910390fd5b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60075481565b610dbe610ed4565b8060098190555050565b610dd0610ed4565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610e54610ed4565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ec2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb9906127a7565b60405180910390fd5b610ecb81611998565b50565b60085481565b610edc610f52565b73ffffffffffffffffffffffffffffffffffffffff16610efa610b0f565b73ffffffffffffffffffffffffffffffffffffffff1614610f50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f479061280f565b60405180910390fd5b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbe9061289d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611035576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102c9061292b565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161110f91906121a0565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361118a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611181906129b9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ef90612a47565b60405180910390fd5b5f811161123a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123190612ad5565b60405180910390fd5b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156112d9575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561168657600c60169054906101000a900460ff1661132d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132490612b3d565b60405180910390fd5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166113d4576006548261138885610a18565b6113929190612b5b565b11156113d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ca90612bfe565b60405180910390fd5b5b5f60095411156114ad5760045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561147c575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156114ac576114a9606461149b60095485611aa290919063ffffffff16565b611a5990919063ffffffff16565b90505b5b5f6007541115611538576001151560045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615150361153757611534606461152660075485611aa290919063ffffffff16565b611a5990919063ffffffff16565b90505b5b5f60085411156115c3576001151560045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161515036115c2576115bf60646115b160085485611aa290919063ffffffff16565b611a5990919063ffffffff16565b90505b5b5f6115cd30610a18565b9050600c60149054906101000a900460ff1615801561163957506001151560045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161515145b80156116515750600c60159054906101000a900460ff165b801561165e575060055481115b156116845761166c81611b19565b5f4790505f8111156116825761168147611d8d565b5b505b505b5f811115611785576116de8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e8f90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161177c91906121a0565b60405180910390a35b6117d58260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611eec90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061187861182c8284611eec90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e8f90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61191b8486611eec90919063ffffffff16565b60405161192891906121a0565b60405180910390a350505050565b5f83831115829061197d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119749190612006565b60405180910390fd5b505f838561198b9190612c1c565b9050809150509392505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f611a9a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f35565b905092915050565b5f808303611ab2575f9050611b13565b5f8284611abf9190612515565b9050828482611ace9190612c7c565b14611b0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0590612d1c565b60405180910390fd5b809150505b92915050565b6001600c60146101000a81548160ff0219169083151502179055505f810315611d70575f600267ffffffffffffffff811115611b5857611b57612d3a565b5b604051908082528060200260200182016040528015611b865781602001602082028036833780820191505090505b50905030815f81518110611b9d57611b9c612d67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c41573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c659190612da8565b81600181518110611c7957611c78612d67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611cdf30600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f59565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611d41959493929190612ecc565b5f604051808303815f87803b158015611d58575f80fd5b505af1158015611d6a573d5f803e3d5ffd5b50505050505b5f600c60146101000a81548160ff02191690831515021790555050565b5f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611dd3906126bb565b5f6040518083038185875af1925050503d805f8114611e0d576040519150601f19603f3d011682016040523d82523d5f602084013e611e12565b606091505b5050905080611e8b57600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f0759dac7fa668d044a7de2b7fd31ccc6f577fdf83cd0441d6ebaba277754db5783604051611e8291906121a0565b60405180910390a25b5050565b5f808284611e9d9190612b5b565b905083811015611ee2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed990612f6e565b60405180910390fd5b8091505092915050565b5f611f2d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611936565b905092915050565b5f8083118290611f7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f729190612006565b60405180910390fd5b505f8385611f899190612c7c565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611fd882611f96565b611fe28185611fa0565b9350611ff2818560208601611fb0565b611ffb81611fbe565b840191505092915050565b5f6020820190508181035f83015261201e8184611fce565b905092915050565b5f80fd5b5f819050919050565b61203c8161202a565b8114612046575f80fd5b50565b5f8135905061205781612033565b92915050565b5f6020828403121561207257612071612026565b5b5f61207f84828501612049565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120b182612088565b9050919050565b6120c1816120a7565b81146120cb575f80fd5b50565b5f813590506120dc816120b8565b92915050565b5f80604083850312156120f8576120f7612026565b5b5f612105858286016120ce565b925050602061211685828601612049565b9150509250929050565b5f8115159050919050565b61213481612120565b82525050565b5f60208201905061214d5f83018461212b565b92915050565b5f806040838503121561216957612168612026565b5b5f61217685828601612049565b925050602061218785828601612049565b9150509250929050565b61219a8161202a565b82525050565b5f6020820190506121b35f830184612191565b92915050565b5f805f606084860312156121d0576121cf612026565b5b5f6121dd868287016120ce565b93505060206121ee868287016120ce565b92505060406121ff86828701612049565b9150509250925092565b5f60ff82169050919050565b61221e81612209565b82525050565b5f6020820190506122375f830184612215565b92915050565b5f6020828403121561225257612251612026565b5b5f61225f848285016120ce565b91505092915050565b612271816120a7565b82525050565b5f60208201905061228a5f830184612268565b92915050565b5f80604083850312156122a6576122a5612026565b5b5f6122b3858286016120ce565b92505060206122c4858286016120ce565b9150509250929050565b5f6122d882612088565b9050919050565b6122e8816122ce565b82525050565b5f6020820190506123015f8301846122df565b92915050565b7f546178206c696d697420746f6f206c6f770000000000000000000000000000005f82015250565b5f61233b601183611fa0565b915061234682612307565b602082019050919050565b5f6020820190508181035f8301526123688161232f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156123f1578086048111156123cd576123cc61236f565b5b60018516156123dc5780820291505b80810290506123ea8561239c565b94506123b1565b94509492505050565b5f8261240957600190506124c4565b81612416575f90506124c4565b816001811461242c576002811461243657612465565b60019150506124c4565b60ff8411156124485761244761236f565b5b8360020a91508482111561245f5761245e61236f565b5b506124c4565b5060208310610133831016604e8410600b841016171561249a5782820a9050838111156124955761249461236f565b5b6124c4565b6124a784848460016123a8565b925090508184048111156124be576124bd61236f565b5b81810290505b9392505050565b5f6124d58261202a565b91506124e083612209565b925061250d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846123fa565b905092915050565b5f61251f8261202a565b915061252a8361202a565b92508282026125388161202a565b9150828204841483151761254f5761254e61236f565b5b5092915050565b7f547261646520616c726561647920656e61626c656400000000000000000000005f82015250565b5f61258a601583611fa0565b915061259582612556565b602082019050919050565b5f6020820190508181035f8301526125b78161257e565b9050919050565b7f4c696d697420746f6f206c6573730000000000000000000000000000000000005f82015250565b5f6125f2600e83611fa0565b91506125fd826125be565b602082019050919050565b5f6020820190508181035f83015261261f816125e6565b9050919050565b7f4e6f20737475636b2045746800000000000000000000000000000000000000005f82015250565b5f61265a600c83611fa0565b915061266582612626565b602082019050919050565b5f6020820190508181035f8301526126878161264e565b9050919050565b5f81905092915050565b50565b5f6126a65f8361268e565b91506126b182612698565b5f82019050919050565b5f6126c58261269b565b9150819050919050565b7f43616c6c206661696c65640000000000000000000000000000000000000000005f82015250565b5f612703600b83611fa0565b915061270e826126cf565b602082019050919050565b5f6020820190508181035f830152612730816126f7565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612791602683611fa0565b915061279c82612737565b604082019050919050565b5f6020820190508181035f8301526127be81612785565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6127f9602083611fa0565b9150612804826127c5565b602082019050919050565b5f6020820190508181035f830152612826816127ed565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612887602483611fa0565b91506128928261282d565b604082019050919050565b5f6020820190508181035f8301526128b48161287b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612915602283611fa0565b9150612920826128bb565b604082019050919050565b5f6020820190508181035f83015261294281612909565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6129a3602583611fa0565b91506129ae82612949565b604082019050919050565b5f6020820190508181035f8301526129d081612997565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612a31602383611fa0565b9150612a3c826129d7565b604082019050919050565b5f6020820190508181035f830152612a5e81612a25565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612abf602983611fa0565b9150612aca82612a65565b604082019050919050565b5f6020820190508181035f830152612aec81612ab3565b9050919050565b7f54726164696e67206e6f7420656e61626c6564000000000000000000000000005f82015250565b5f612b27601383611fa0565b9150612b3282612af3565b602082019050919050565b5f6020820190508181035f830152612b5481612b1b565b9050919050565b5f612b658261202a565b9150612b708361202a565b9250828201905080821115612b8857612b8761236f565b5b92915050565b7f486967686572207468616e20746865206c696d6974204f66204d5953542050655f8201527f722057616c6c65742e0000000000000000000000000000000000000000000000602082015250565b5f612be8602983611fa0565b9150612bf382612b8e565b604082019050919050565b5f6020820190508181035f830152612c1581612bdc565b9050919050565b5f612c268261202a565b9150612c318361202a565b9250828203905081811115612c4957612c4861236f565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612c868261202a565b9150612c918361202a565b925082612ca157612ca0612c4f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d06602183611fa0565b9150612d1182612cac565b604082019050919050565b5f6020820190508181035f830152612d3381612cfa565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612da2816120b8565b92915050565b5f60208284031215612dbd57612dbc612026565b5b5f612dca84828501612d94565b91505092915050565b5f819050919050565b5f819050919050565b5f612dff612dfa612df584612dd3565b612ddc565b61202a565b9050919050565b612e0f81612de5565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612e47816120a7565b82525050565b5f612e588383612e3e565b60208301905092915050565b5f602082019050919050565b5f612e7a82612e15565b612e848185612e1f565b9350612e8f83612e2f565b805f5b83811015612ebf578151612ea68882612e4d565b9750612eb183612e64565b925050600181019050612e92565b5085935050505092915050565b5f60a082019050612edf5f830188612191565b612eec6020830187612e06565b8181036040830152612efe8186612e70565b9050612f0d6060830185612268565b612f1a6080830184612191565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612f58601b83611fa0565b9150612f6382612f24565b602082019050919050565b5f6020820190508181035f830152612f8581612f4c565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ba452d430c2a2ccf08f9d43fd3608225c95fe34665c6ce75a3c13a07601b5c3564736f6c634300081a0033
Deployed Bytecode Sourcemap
4810:8566:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7016:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12776:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7849:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12501:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7293:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8018:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7202:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12949:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13083:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5577:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12262:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7396:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3231:103;;;;;;;;;;;;;:::i;:::-;;13221:142;;;;;;;;;;;;;:::i;:::-;;5023:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5432:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2590:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7107;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7523:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5081:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5369:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12070:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5880:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11744:318;;;;;;;;;;;;;:::i;:::-;;7698:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5501:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12652:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12383:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5621:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3489:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5539:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7016:83;7053:13;7086:5;;;;;;;;;;;;;;;;;7079:12;;7016:83;:::o;12776:165::-;2476:13;:11;:13::i;:::-;12870:1:::1;12858:9;:13;12850:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;12924:9;12904:17;:29;;;;12776:165:::0;:::o;7849:161::-;7924:4;7941:39;7950:12;:10;:12::i;:::-;7964:7;7973:6;7941:8;:39::i;:::-;7998:4;7991:11;;7849:161;;;;:::o;12501:143::-;2476:13;:11;:13::i;:::-;12597:6:::1;12583:11;:20;;;;12629:7;12614:12;:22;;;;12501:143:::0;;:::o;7293:95::-;7346:7;5182:2;5238;:13;;;;:::i;:::-;5226:9;:25;;;;:::i;:::-;7366:14;;7293:95;:::o;8018:313::-;8116:4;8133:36;8143:6;8151:9;8162:6;8133:9;:36::i;:::-;8180:121;8189:6;8197:12;:10;:12::i;:::-;8211:89;8249:6;8211:89;;;;;;;;;;;;;;;;;:11;:19;8223:6;8211:19;;;;;;;;;;;;;;;:33;8231:12;:10;:12::i;:::-;8211:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;8180:8;:121::i;:::-;8319:4;8312:11;;8018:313;;;;;:::o;7202:83::-;7243:5;5182:2;7261:16;;7202:83;:::o;12949:126::-;2476:13;:11;:13::i;:::-;13063:4:::1;13028:25;:32;13054:5;13028:32;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;12949:126:::0;:::o;13083:130::-;2476:13;:11;:13::i;:::-;13200:5:::1;13165:25;:32;13191:5;13165:32;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;13083:130:::0;:::o;5577:35::-;;;;:::o;12262:113::-;2476:13;:11;:13::i;:::-;12363:4:::1;12333:18;:27;12352:7;12333:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;12262:113:::0;:::o;7396:119::-;7462:7;7489:9;:18;7499:7;7489:18;;;;;;;;;;;;;;;;7482:25;;7396:119;;;:::o;3231:103::-;2476:13;:11;:13::i;:::-;3296:30:::1;3323:1;3296:18;:30::i;:::-;3231:103::o:0;13221:142::-;2476:13;:11;:13::i;:::-;13295:4:::1;13279:20;;:12;;;;;;;;;;;:20;;::::0;13271:54:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;13351:4;13336:12;;:19;;;;;;;;;;;;;;;;;;13221:142::o:0;5023:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;5432:60::-;;;;:::o;2590:87::-;2636:7;2663:6;;;;;;;;;;;2656:13;;2590:87;:::o;7107:::-;7146:13;7179:7;;;;;;;;;;;;;;;;;7172:14;;7107:87;:::o;7523:167::-;7601:4;7618:42;7628:12;:10;:12::i;:::-;7642:9;7653:6;7618:9;:42::i;:::-;7678:4;7671:11;;7523:167;;;;:::o;5081:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;5369:56::-;;;;:::o;12070:184::-;2476:13;:11;:13::i;:::-;12167:22:::1;12185:3;12167:13;:11;:13::i;:::-;:17;;:22;;;;:::i;:::-;12155:9;:34;12147:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;12237:9;12218:16;:28;;;;12070:184:::0;:::o;5880:32::-;;;;;;;;;;;;;:::o;11744:318::-;2476:13;:11;:13::i;:::-;11830:1:::1;11806:21;:25;11798:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;11859:18;11880:21;11859:42;;11915:16;11945:10;11937:24;;11969:10;11937:71;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11914:94;;;12027:11;12019:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;11787:275;;11744:318::o:0;7698:143::-;7779:7;7806:11;:18;7818:5;7806:18;;;;;;;;;;;;;;;:27;7825:7;7806:27;;;;;;;;;;;;;;;;7799:34;;7698:143;;;;:::o;5501:30::-;;;;:::o;12652:116::-;2476:13;:11;:13::i;:::-;12748:12:::1;12729:16;:31;;;;12652:116:::0;:::o;12383:110::-;2476:13;:11;:13::i;:::-;12480:5:::1;12450:18;:27;12469:7;12450:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;12383:110:::0;:::o;5621:91::-;;;;;;;;;;;;;:::o;3489:201::-;2476:13;:11;:13::i;:::-;3598:1:::1;3578:22;;:8;:22;;::::0;3570:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3654:28;3673:8;3654:18;:28::i;:::-;3489:201:::0;:::o;5539:31::-;;;;:::o;2755:132::-;2830:12;:10;:12::i;:::-;2819:23;;:7;:5;:7::i;:::-;:23;;;2811:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2755:132::o;93:98::-;146:7;173:10;166:17;;93:98;:::o;8339:335::-;8449:1;8432:19;;:5;:19;;;8424:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8530:1;8511:21;;:7;:21;;;8503:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8612:6;8582:11;:18;8594:5;8582:18;;;;;;;;;;;;;;;:27;8601:7;8582:27;;;;;;;;;;;;;;;:36;;;;8650:7;8634:32;;8643:5;8634:32;;;8659:6;8634:32;;;;;;:::i;:::-;;;;;;;;8339:335;;;:::o;8682:2072::-;8786:1;8770:18;;:4;:18;;;8762:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8863:1;8849:16;;:2;:16;;;8841:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8933:1;8924:6;:10;8916:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8991:17;9026:18;:24;9045:4;9026:24;;;;;;;;;;;;;;;;;;;;;;;;;9025:25;:52;;;;;9055:18;:22;9074:2;9055:22;;;;;;;;;;;;;;;;;;;;;;;;;9054:23;9025:52;9021:1377;;;9104:12;;;;;;;;;;;9096:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;9161:25;:29;9187:2;9161:29;;;;;;;;;;;;;;;;;;;;;;;;;9157:164;;9243:16;;9233:6;9217:13;9227:2;9217:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;9209:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;9157:164;9359:1;9340:16;;:20;9337:210;;;9381:25;:29;9407:2;9381:29;;;;;;;;;;;;;;;;;;;;;;;;;9380:30;:66;;;;;9415:25;:31;9441:4;9415:31;;;;;;;;;;;;;;;;;;;;;;;;;9414:32;9380:66;9377:155;;;9479:37;9512:3;9479:28;9490:16;;9479:6;:10;;:28;;;;:::i;:::-;:32;;:37;;;;:::i;:::-;9467:49;;9377:155;9337:210;9580:1;9566:11;;:15;9563:174;;;9637:4;9602:39;;:25;:31;9628:4;9602:31;;;;;;;;;;;;;;;;;;;;;;;;;:39;;;9598:124;;9674:32;9702:3;9674:23;9685:11;;9674:6;:10;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;9662:44;;9598:124;9563:174;9771:1;9756:12;;:16;9753:172;;;9825:4;9792:37;;:25;:29;9818:2;9792:29;;;;;;;;;;;;;;;;;;;;;;;;;:37;;;9789:121;;9861:33;9890:3;9861:24;9872:12;;9861:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;9849:45;;9789:121;9753:172;9941:28;9972:24;9990:4;9972:9;:24::i;:::-;9941:55;;10016:6;;;;;;;;;;;10015:7;:48;;;;;10059:4;10026:37;;:25;:29;10052:2;10026:29;;;;;;;;;;;;;;;;;;;;;;;;;:37;;;10015:48;:63;;;;;10067:11;;;;;;;;;;;10015:63;:105;;;;;10103:17;;10082:20;:38;10015:105;10011:376;;;10141:38;10158:20;10141:16;:38::i;:::-;10198:26;10227:21;10198:50;;10291:1;10270:18;:22;10267:105;;;10317:35;10330:21;10317:12;:35::i;:::-;10267:105;10122:265;10011:376;9079:1319;9021:1377;10423:1;10413:9;:11;10410:161;;;10463:39;10492:9;10463;:24;10481:4;10463:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10438:9;:24;10456:4;10438:24;;;;;;;;;;;;;;;:64;;;;10543:4;10520:39;;10529:4;10520:39;;;10549:9;10520:39;;;;;;:::i;:::-;;;;;;;;10410:161;10597:27;10617:6;10597:9;:15;10607:4;10597:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10581:9;:15;10591:4;10581:15;;;;;;;;;;;;;;;:43;;;;10649:40;10667:21;10678:9;10667:6;:10;;:21;;;;:::i;:::-;10649:9;:13;10659:2;10649:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10635:9;:13;10645:2;10635:13;;;;;;;;;;;;;;;:54;;;;10720:2;10705:41;;10714:4;10705:41;;;10724:21;10735:9;10724:6;:10;;:21;;;;:::i;:::-;10705:41;;;;;;:::i;:::-;;;;;;;;8751:2003;8682:2072;;;:::o;1230:190::-;1316:7;1349:1;1344;:6;;1352:12;1336:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1376:9;1392:1;1388;:5;;;;:::i;:::-;1376:17;;1411:1;1404:8;;;1230:190;;;;;:::o;3850:191::-;3924:16;3943:6;;;;;;;;;;;3924:25;;3969:8;3960:6;;:17;;;;;;;;;;;;;;;;;;4024:8;3993:40;;4014:8;3993:40;;;;;;;;;;;;3913:128;3850:191;:::o;1682:132::-;1740:7;1767:39;1771:1;1774;1767:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1760:46;;1682:132;;;;:::o;1428:246::-;1486:7;1515:1;1510;:6;1506:47;;1540:1;1533:8;;;;1506:47;1563:9;1579:1;1575;:5;;;;:::i;:::-;1563:17;;1608:1;1603;1599;:5;;;;:::i;:::-;:10;1591:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1665:1;1658:8;;;1428:246;;;;;:::o;10870:520::-;5962:4;5953:6;;:13;;;;;;;;;;;;;;;;;;10964:1:::1;10951:11;:14:::0;10948:27;10967:7:::1;10948:27;10985:21;11023:1;11009:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10985:40;;11054:4;11036;11041:1;11036:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11080:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11070:4;11075:1;11070:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11113:62;11130:4;11145:15;;;;;;;;;;;11163:11;11113:8;:62::i;:::-;11186:15;;;;;;;;;;;:66;;;11267:11;11293:1;11309:4;11336;11356:15;11186:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10937:453;5977:1;5998:5:::0;5989:6;;:14;;;;;;;;;;;;;;;;;;10870:520;:::o;11398:299::-;11456:16;11486:14;;;;;;;;;;;11478:28;;11514:6;11478:47;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11455:70;;;11543:11;11538:150;;11657:14;;;;;;;;;;;11634:46;;;11673:6;11634:46;;;;;;:::i;:::-;;;;;;;;11538:150;11444:253;11398:299;:::o;899:179::-;957:7;977:9;993:1;989;:5;;;;:::i;:::-;977:17;;1018:1;1013;:6;;1005:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1069:1;1062:8;;;899:179;;;;:::o;1086:136::-;1144:7;1171:43;1175:1;1178;1171:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1164:50;;1086:136;;;;:::o;1822:189::-;1908:7;1940:1;1936;:5;1943:12;1928:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1967:9;1983:1;1979;:5;;;;:::i;:::-;1967:17;;2002:1;1995:8;;;1822:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:77;1606:7;1635:5;1624:16;;1569:77;;;:::o;1652:122::-;1725:24;1743:5;1725:24;:::i;:::-;1718:5;1715:35;1705:63;;1764:1;1761;1754:12;1705:63;1652:122;:::o;1780:139::-;1826:5;1864:6;1851:20;1842:29;;1880:33;1907:5;1880:33;:::i;:::-;1780:139;;;;:::o;1925:329::-;1984:6;2033:2;2021:9;2012:7;2008:23;2004:32;2001:119;;;2039:79;;:::i;:::-;2001:119;2159:1;2184:53;2229:7;2220:6;2209:9;2205:22;2184:53;:::i;:::-;2174:63;;2130:117;1925:329;;;;:::o;2260:126::-;2297:7;2337:42;2330:5;2326:54;2315:65;;2260:126;;;:::o;2392:96::-;2429:7;2458:24;2476:5;2458:24;:::i;:::-;2447:35;;2392:96;;;:::o;2494:122::-;2567:24;2585:5;2567:24;:::i;:::-;2560:5;2557:35;2547:63;;2606:1;2603;2596:12;2547:63;2494:122;:::o;2622:139::-;2668:5;2706:6;2693:20;2684:29;;2722:33;2749:5;2722:33;:::i;:::-;2622:139;;;;:::o;2767:474::-;2835:6;2843;2892:2;2880:9;2871:7;2867:23;2863:32;2860:119;;;2898:79;;:::i;:::-;2860:119;3018:1;3043:53;3088:7;3079:6;3068:9;3064:22;3043:53;:::i;:::-;3033:63;;2989:117;3145:2;3171:53;3216:7;3207:6;3196:9;3192:22;3171:53;:::i;:::-;3161:63;;3116:118;2767:474;;;;;:::o;3247:90::-;3281:7;3324:5;3317:13;3310:21;3299:32;;3247:90;;;:::o;3343:109::-;3424:21;3439:5;3424:21;:::i;:::-;3419:3;3412:34;3343:109;;:::o;3458:210::-;3545:4;3583:2;3572:9;3568:18;3560:26;;3596:65;3658:1;3647:9;3643:17;3634:6;3596:65;:::i;:::-;3458:210;;;;:::o;3674:474::-;3742:6;3750;3799:2;3787:9;3778:7;3774:23;3770:32;3767:119;;;3805:79;;:::i;:::-;3767:119;3925:1;3950:53;3995:7;3986:6;3975:9;3971:22;3950:53;:::i;:::-;3940:63;;3896:117;4052:2;4078:53;4123:7;4114:6;4103:9;4099:22;4078:53;:::i;:::-;4068:63;;4023:118;3674:474;;;;;:::o;4154:118::-;4241:24;4259:5;4241:24;:::i;:::-;4236:3;4229:37;4154:118;;:::o;4278:222::-;4371:4;4409:2;4398:9;4394:18;4386:26;;4422:71;4490:1;4479:9;4475:17;4466:6;4422:71;:::i;:::-;4278:222;;;;:::o;4506:619::-;4583:6;4591;4599;4648:2;4636:9;4627:7;4623:23;4619:32;4616:119;;;4654:79;;:::i;:::-;4616:119;4774:1;4799:53;4844:7;4835:6;4824:9;4820:22;4799:53;:::i;:::-;4789:63;;4745:117;4901:2;4927:53;4972:7;4963:6;4952:9;4948:22;4927:53;:::i;:::-;4917:63;;4872:118;5029:2;5055:53;5100:7;5091:6;5080:9;5076:22;5055:53;:::i;:::-;5045:63;;5000:118;4506:619;;;;;:::o;5131:86::-;5166:7;5206:4;5199:5;5195:16;5184:27;;5131:86;;;:::o;5223:112::-;5306:22;5322:5;5306:22;:::i;:::-;5301:3;5294:35;5223:112;;:::o;5341:214::-;5430:4;5468:2;5457:9;5453:18;5445:26;;5481:67;5545:1;5534:9;5530:17;5521:6;5481:67;:::i;:::-;5341:214;;;;:::o;5561:329::-;5620:6;5669:2;5657:9;5648:7;5644:23;5640:32;5637:119;;;5675:79;;:::i;:::-;5637:119;5795:1;5820:53;5865:7;5856:6;5845:9;5841:22;5820:53;:::i;:::-;5810:63;;5766:117;5561:329;;;;:::o;5896:118::-;5983:24;6001:5;5983:24;:::i;:::-;5978:3;5971:37;5896:118;;:::o;6020:222::-;6113:4;6151:2;6140:9;6136:18;6128:26;;6164:71;6232:1;6221:9;6217:17;6208:6;6164:71;:::i;:::-;6020:222;;;;:::o;6248:474::-;6316:6;6324;6373:2;6361:9;6352:7;6348:23;6344:32;6341:119;;;6379:79;;:::i;:::-;6341:119;6499:1;6524:53;6569:7;6560:6;6549:9;6545:22;6524:53;:::i;:::-;6514:63;;6470:117;6626:2;6652:53;6697:7;6688:6;6677:9;6673:22;6652:53;:::i;:::-;6642:63;;6597:118;6248:474;;;;;:::o;6728:104::-;6773:7;6802:24;6820:5;6802:24;:::i;:::-;6791:35;;6728:104;;;:::o;6838:142::-;6941:32;6967:5;6941:32;:::i;:::-;6936:3;6929:45;6838:142;;:::o;6986:254::-;7095:4;7133:2;7122:9;7118:18;7110:26;;7146:87;7230:1;7219:9;7215:17;7206:6;7146:87;:::i;:::-;6986:254;;;;:::o;7246:167::-;7386:19;7382:1;7374:6;7370:14;7363:43;7246:167;:::o;7419:366::-;7561:3;7582:67;7646:2;7641:3;7582:67;:::i;:::-;7575:74;;7658:93;7747:3;7658:93;:::i;:::-;7776:2;7771:3;7767:12;7760:19;;7419:366;;;:::o;7791:419::-;7957:4;7995:2;7984:9;7980:18;7972:26;;8044:9;8038:4;8034:20;8030:1;8019:9;8015:17;8008:47;8072:131;8198:4;8072:131;:::i;:::-;8064:139;;7791:419;;;:::o;8216:180::-;8264:77;8261:1;8254:88;8361:4;8358:1;8351:15;8385:4;8382:1;8375:15;8402:102;8444:8;8491:5;8488:1;8484:13;8463:34;;8402:102;;;:::o;8510:848::-;8571:5;8578:4;8602:6;8593:15;;8626:5;8617:14;;8640:712;8661:1;8651:8;8648:15;8640:712;;;8756:4;8751:3;8747:14;8741:4;8738:24;8735:50;;;8765:18;;:::i;:::-;8735:50;8815:1;8805:8;8801:16;8798:451;;;9230:4;9223:5;9219:16;9210:25;;8798:451;9280:4;9274;9270:15;9262:23;;9310:32;9333:8;9310:32;:::i;:::-;9298:44;;8640:712;;;8510:848;;;;;;;:::o;9364:1073::-;9418:5;9609:8;9599:40;;9630:1;9621:10;;9632:5;;9599:40;9658:4;9648:36;;9675:1;9666:10;;9677:5;;9648:36;9744:4;9792:1;9787:27;;;;9828:1;9823:191;;;;9737:277;;9787:27;9805:1;9796:10;;9807:5;;;9823:191;9868:3;9858:8;9855:17;9852:43;;;9875:18;;:::i;:::-;9852:43;9924:8;9921:1;9917:16;9908:25;;9959:3;9952:5;9949:14;9946:40;;;9966:18;;:::i;:::-;9946:40;9999:5;;;9737:277;;10123:2;10113:8;10110:16;10104:3;10098:4;10095:13;10091:36;10073:2;10063:8;10060:16;10055:2;10049:4;10046:12;10042:35;10026:111;10023:246;;;10179:8;10173:4;10169:19;10160:28;;10214:3;10207:5;10204:14;10201:40;;;10221:18;;:::i;:::-;10201:40;10254:5;;10023:246;10294:42;10332:3;10322:8;10316:4;10313:1;10294:42;:::i;:::-;10279:57;;;;10368:4;10363:3;10359:14;10352:5;10349:25;10346:51;;;10377:18;;:::i;:::-;10346:51;10426:4;10419:5;10415:16;10406:25;;9364:1073;;;;;;:::o;10443:281::-;10501:5;10525:23;10543:4;10525:23;:::i;:::-;10517:31;;10569:25;10585:8;10569:25;:::i;:::-;10557:37;;10613:104;10650:66;10640:8;10634:4;10613:104;:::i;:::-;10604:113;;10443:281;;;;:::o;10730:410::-;10770:7;10793:20;10811:1;10793:20;:::i;:::-;10788:25;;10827:20;10845:1;10827:20;:::i;:::-;10822:25;;10882:1;10879;10875:9;10904:30;10922:11;10904:30;:::i;:::-;10893:41;;11083:1;11074:7;11070:15;11067:1;11064:22;11044:1;11037:9;11017:83;10994:139;;11113:18;;:::i;:::-;10994:139;10778:362;10730:410;;;;:::o;11146:171::-;11286:23;11282:1;11274:6;11270:14;11263:47;11146:171;:::o;11323:366::-;11465:3;11486:67;11550:2;11545:3;11486:67;:::i;:::-;11479:74;;11562:93;11651:3;11562:93;:::i;:::-;11680:2;11675:3;11671:12;11664:19;;11323:366;;;:::o;11695:419::-;11861:4;11899:2;11888:9;11884:18;11876:26;;11948:9;11942:4;11938:20;11934:1;11923:9;11919:17;11912:47;11976:131;12102:4;11976:131;:::i;:::-;11968:139;;11695:419;;;:::o;12120:164::-;12260:16;12256:1;12248:6;12244:14;12237:40;12120:164;:::o;12290:366::-;12432:3;12453:67;12517:2;12512:3;12453:67;:::i;:::-;12446:74;;12529:93;12618:3;12529:93;:::i;:::-;12647:2;12642:3;12638:12;12631:19;;12290:366;;;:::o;12662:419::-;12828:4;12866:2;12855:9;12851:18;12843:26;;12915:9;12909:4;12905:20;12901:1;12890:9;12886:17;12879:47;12943:131;13069:4;12943:131;:::i;:::-;12935:139;;12662:419;;;:::o;13087:162::-;13227:14;13223:1;13215:6;13211:14;13204:38;13087:162;:::o;13255:366::-;13397:3;13418:67;13482:2;13477:3;13418:67;:::i;:::-;13411:74;;13494:93;13583:3;13494:93;:::i;:::-;13612:2;13607:3;13603:12;13596:19;;13255:366;;;:::o;13627:419::-;13793:4;13831:2;13820:9;13816:18;13808:26;;13880:9;13874:4;13870:20;13866:1;13855:9;13851:17;13844:47;13908:131;14034:4;13908:131;:::i;:::-;13900:139;;13627:419;;;:::o;14052:147::-;14153:11;14190:3;14175:18;;14052:147;;;;:::o;14205:114::-;;:::o;14325:398::-;14484:3;14505:83;14586:1;14581:3;14505:83;:::i;:::-;14498:90;;14597:93;14686:3;14597:93;:::i;:::-;14715:1;14710:3;14706:11;14699:18;;14325:398;;;:::o;14729:379::-;14913:3;14935:147;15078:3;14935:147;:::i;:::-;14928:154;;15099:3;15092:10;;14729:379;;;:::o;15114:161::-;15254:13;15250:1;15242:6;15238:14;15231:37;15114:161;:::o;15281:366::-;15423:3;15444:67;15508:2;15503:3;15444:67;:::i;:::-;15437:74;;15520:93;15609:3;15520:93;:::i;:::-;15638:2;15633:3;15629:12;15622:19;;15281:366;;;:::o;15653:419::-;15819:4;15857:2;15846:9;15842:18;15834:26;;15906:9;15900:4;15896:20;15892:1;15881:9;15877:17;15870:47;15934:131;16060:4;15934:131;:::i;:::-;15926:139;;15653:419;;;:::o;16078:225::-;16218:34;16214:1;16206:6;16202:14;16195:58;16287:8;16282:2;16274:6;16270:15;16263:33;16078:225;:::o;16309:366::-;16451:3;16472:67;16536:2;16531:3;16472:67;:::i;:::-;16465:74;;16548:93;16637:3;16548:93;:::i;:::-;16666:2;16661:3;16657:12;16650:19;;16309:366;;;:::o;16681:419::-;16847:4;16885:2;16874:9;16870:18;16862:26;;16934:9;16928:4;16924:20;16920:1;16909:9;16905:17;16898:47;16962:131;17088:4;16962:131;:::i;:::-;16954:139;;16681:419;;;:::o;17106:182::-;17246:34;17242:1;17234:6;17230:14;17223:58;17106:182;:::o;17294:366::-;17436:3;17457:67;17521:2;17516:3;17457:67;:::i;:::-;17450:74;;17533:93;17622:3;17533:93;:::i;:::-;17651:2;17646:3;17642:12;17635:19;;17294:366;;;:::o;17666:419::-;17832:4;17870:2;17859:9;17855:18;17847:26;;17919:9;17913:4;17909:20;17905:1;17894:9;17890:17;17883:47;17947:131;18073:4;17947:131;:::i;:::-;17939:139;;17666:419;;;:::o;18091:223::-;18231:34;18227:1;18219:6;18215:14;18208:58;18300:6;18295:2;18287:6;18283:15;18276:31;18091:223;:::o;18320:366::-;18462:3;18483:67;18547:2;18542:3;18483:67;:::i;:::-;18476:74;;18559:93;18648:3;18559:93;:::i;:::-;18677:2;18672:3;18668:12;18661:19;;18320:366;;;:::o;18692:419::-;18858:4;18896:2;18885:9;18881:18;18873:26;;18945:9;18939:4;18935:20;18931:1;18920:9;18916:17;18909:47;18973:131;19099:4;18973:131;:::i;:::-;18965:139;;18692:419;;;:::o;19117:221::-;19257:34;19253:1;19245:6;19241:14;19234:58;19326:4;19321:2;19313:6;19309:15;19302:29;19117:221;:::o;19344:366::-;19486:3;19507:67;19571:2;19566:3;19507:67;:::i;:::-;19500:74;;19583:93;19672:3;19583:93;:::i;:::-;19701:2;19696:3;19692:12;19685:19;;19344:366;;;:::o;19716:419::-;19882:4;19920:2;19909:9;19905:18;19897:26;;19969:9;19963:4;19959:20;19955:1;19944:9;19940:17;19933:47;19997:131;20123:4;19997:131;:::i;:::-;19989:139;;19716:419;;;:::o;20141:224::-;20281:34;20277:1;20269:6;20265:14;20258:58;20350:7;20345:2;20337:6;20333:15;20326:32;20141:224;:::o;20371:366::-;20513:3;20534:67;20598:2;20593:3;20534:67;:::i;:::-;20527:74;;20610:93;20699:3;20610:93;:::i;:::-;20728:2;20723:3;20719:12;20712:19;;20371:366;;;:::o;20743:419::-;20909:4;20947:2;20936:9;20932:18;20924:26;;20996:9;20990:4;20986:20;20982:1;20971:9;20967:17;20960:47;21024:131;21150:4;21024:131;:::i;:::-;21016:139;;20743:419;;;:::o;21168:222::-;21308:34;21304:1;21296:6;21292:14;21285:58;21377:5;21372:2;21364:6;21360:15;21353:30;21168:222;:::o;21396:366::-;21538:3;21559:67;21623:2;21618:3;21559:67;:::i;:::-;21552:74;;21635:93;21724:3;21635:93;:::i;:::-;21753:2;21748:3;21744:12;21737:19;;21396:366;;;:::o;21768:419::-;21934:4;21972:2;21961:9;21957:18;21949:26;;22021:9;22015:4;22011:20;22007:1;21996:9;21992:17;21985:47;22049:131;22175:4;22049:131;:::i;:::-;22041:139;;21768:419;;;:::o;22193:228::-;22333:34;22329:1;22321:6;22317:14;22310:58;22402:11;22397:2;22389:6;22385:15;22378:36;22193:228;:::o;22427:366::-;22569:3;22590:67;22654:2;22649:3;22590:67;:::i;:::-;22583:74;;22666:93;22755:3;22666:93;:::i;:::-;22784:2;22779:3;22775:12;22768:19;;22427:366;;;:::o;22799:419::-;22965:4;23003:2;22992:9;22988:18;22980:26;;23052:9;23046:4;23042:20;23038:1;23027:9;23023:17;23016:47;23080:131;23206:4;23080:131;:::i;:::-;23072:139;;22799:419;;;:::o;23224:169::-;23364:21;23360:1;23352:6;23348:14;23341:45;23224:169;:::o;23399:366::-;23541:3;23562:67;23626:2;23621:3;23562:67;:::i;:::-;23555:74;;23638:93;23727:3;23638:93;:::i;:::-;23756:2;23751:3;23747:12;23740:19;;23399:366;;;:::o;23771:419::-;23937:4;23975:2;23964:9;23960:18;23952:26;;24024:9;24018:4;24014:20;24010:1;23999:9;23995:17;23988:47;24052:131;24178:4;24052:131;:::i;:::-;24044:139;;23771:419;;;:::o;24196:191::-;24236:3;24255:20;24273:1;24255:20;:::i;:::-;24250:25;;24289:20;24307:1;24289:20;:::i;:::-;24284:25;;24332:1;24329;24325:9;24318:16;;24353:3;24350:1;24347:10;24344:36;;;24360:18;;:::i;:::-;24344:36;24196:191;;;;:::o;24393:228::-;24533:34;24529:1;24521:6;24517:14;24510:58;24602:11;24597:2;24589:6;24585:15;24578:36;24393:228;:::o;24627:366::-;24769:3;24790:67;24854:2;24849:3;24790:67;:::i;:::-;24783:74;;24866:93;24955:3;24866:93;:::i;:::-;24984:2;24979:3;24975:12;24968:19;;24627:366;;;:::o;24999:419::-;25165:4;25203:2;25192:9;25188:18;25180:26;;25252:9;25246:4;25242:20;25238:1;25227:9;25223:17;25216:47;25280:131;25406:4;25280:131;:::i;:::-;25272:139;;24999:419;;;:::o;25424:194::-;25464:4;25484:20;25502:1;25484:20;:::i;:::-;25479:25;;25518:20;25536:1;25518:20;:::i;:::-;25513:25;;25562:1;25559;25555:9;25547:17;;25586:1;25580:4;25577:11;25574:37;;;25591:18;;:::i;:::-;25574:37;25424:194;;;;:::o;25624:180::-;25672:77;25669:1;25662:88;25769:4;25766:1;25759:15;25793:4;25790:1;25783:15;25810:185;25850:1;25867:20;25885:1;25867:20;:::i;:::-;25862:25;;25901:20;25919:1;25901:20;:::i;:::-;25896:25;;25940:1;25930:35;;25945:18;;:::i;:::-;25930:35;25987:1;25984;25980:9;25975:14;;25810:185;;;;:::o;26001:220::-;26141:34;26137:1;26129:6;26125:14;26118:58;26210:3;26205:2;26197:6;26193:15;26186:28;26001:220;:::o;26227:366::-;26369:3;26390:67;26454:2;26449:3;26390:67;:::i;:::-;26383:74;;26466:93;26555:3;26466:93;:::i;:::-;26584:2;26579:3;26575:12;26568:19;;26227:366;;;:::o;26599:419::-;26765:4;26803:2;26792:9;26788:18;26780:26;;26852:9;26846:4;26842:20;26838:1;26827:9;26823:17;26816:47;26880:131;27006:4;26880:131;:::i;:::-;26872:139;;26599:419;;;:::o;27024:180::-;27072:77;27069:1;27062:88;27169:4;27166:1;27159:15;27193:4;27190:1;27183:15;27210:180;27258:77;27255:1;27248:88;27355:4;27352:1;27345:15;27379:4;27376:1;27369:15;27396:143;27453:5;27484:6;27478:13;27469:22;;27500:33;27527:5;27500:33;:::i;:::-;27396:143;;;;:::o;27545:351::-;27615:6;27664:2;27652:9;27643:7;27639:23;27635:32;27632:119;;;27670:79;;:::i;:::-;27632:119;27790:1;27815:64;27871:7;27862:6;27851:9;27847:22;27815:64;:::i;:::-;27805:74;;27761:128;27545:351;;;;:::o;27902:85::-;27947:7;27976:5;27965:16;;27902:85;;;:::o;27993:60::-;28021:3;28042:5;28035:12;;27993:60;;;:::o;28059:158::-;28117:9;28150:61;28168:42;28177:32;28203:5;28177:32;:::i;:::-;28168:42;:::i;:::-;28150:61;:::i;:::-;28137:74;;28059:158;;;:::o;28223:147::-;28318:45;28357:5;28318:45;:::i;:::-;28313:3;28306:58;28223:147;;:::o;28376:114::-;28443:6;28477:5;28471:12;28461:22;;28376:114;;;:::o;28496:184::-;28595:11;28629:6;28624:3;28617:19;28669:4;28664:3;28660:14;28645:29;;28496:184;;;;:::o;28686:132::-;28753:4;28776:3;28768:11;;28806:4;28801:3;28797:14;28789:22;;28686:132;;;:::o;28824:108::-;28901:24;28919:5;28901:24;:::i;:::-;28896:3;28889:37;28824:108;;:::o;28938:179::-;29007:10;29028:46;29070:3;29062:6;29028:46;:::i;:::-;29106:4;29101:3;29097:14;29083:28;;28938:179;;;;:::o;29123:113::-;29193:4;29225;29220:3;29216:14;29208:22;;29123:113;;;:::o;29272:732::-;29391:3;29420:54;29468:5;29420:54;:::i;:::-;29490:86;29569:6;29564:3;29490:86;:::i;:::-;29483:93;;29600:56;29650:5;29600:56;:::i;:::-;29679:7;29710:1;29695:284;29720:6;29717:1;29714:13;29695:284;;;29796:6;29790:13;29823:63;29882:3;29867:13;29823:63;:::i;:::-;29816:70;;29909:60;29962:6;29909:60;:::i;:::-;29899:70;;29755:224;29742:1;29739;29735:9;29730:14;;29695:284;;;29699:14;29995:3;29988:10;;29396:608;;;29272:732;;;;:::o;30010:831::-;30273:4;30311:3;30300:9;30296:19;30288:27;;30325:71;30393:1;30382:9;30378:17;30369:6;30325:71;:::i;:::-;30406:80;30482:2;30471:9;30467:18;30458:6;30406:80;:::i;:::-;30533:9;30527:4;30523:20;30518:2;30507:9;30503:18;30496:48;30561:108;30664:4;30655:6;30561:108;:::i;:::-;30553:116;;30679:72;30747:2;30736:9;30732:18;30723:6;30679:72;:::i;:::-;30761:73;30829:3;30818:9;30814:19;30805:6;30761:73;:::i;:::-;30010:831;;;;;;;;:::o;30847:177::-;30987:29;30983:1;30975:6;30971:14;30964:53;30847:177;:::o;31030:366::-;31172:3;31193:67;31257:2;31252:3;31193:67;:::i;:::-;31186:74;;31269:93;31358:3;31269:93;:::i;:::-;31387:2;31382:3;31378:12;31371:19;;31030:366;;;:::o;31402:419::-;31568:4;31606:2;31595:9;31591:18;31583:26;;31655:9;31649:4;31645:20;31641:1;31630:9;31626:17;31619:47;31683:131;31809:4;31683:131;:::i;:::-;31675:139;;31402:419;;;:::o
Swarm Source
ipfs://ba452d430c2a2ccf08f9d43fd3608225c95fe34665c6ce75a3c13a07601b5c35
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.