ERC-20
Overview
Max Total Supply
10,000,000 CRYPRO
Holders
147
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.000000000000024009 CRYPROValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
CRYPRO
Compiler Version
v0.8.24+commit.e11b9ed9
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-12-23 */ /** Welcome to CryPro The ultimate Telegram bot for all your cryptocurrency needs—real-time data, market insights, and advanced tools at your fingertips. Web : https://cryprobot.com/ Twitter : https://x.com/Crypro_Official Telegram : https://t.me/Crypro_Official Documentation : https://crypro.gitbook.io/crypro-docs **/ // SPDX-License-Identifier: MIT pragma solidity 0.8.24; 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; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } 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 CRYPRO is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isFounderAddr; address payable private _isTaxReceiverFee; uint256 private _initialPurchaseTax=20; uint256 private _initialSellTax=25; uint256 private _closingBuyTax=10; uint256 private _closingSellTax=20; uint256 private _applyLowerBuyTaxAt=21; uint256 private _applyLowerSellTaxAt=27; uint256 private _pauseSwapBefore=22; uint256 private _contractCost=0; uint256 private _cumulativeBuy=0; uint8 private constant _decimals = 18; uint256 private constant _tTotal = 10_000_000 * 10**_decimals; string private constant _name = "CryPro"; string private constant _symbol = unicode"CRYPRO"; uint256 public _highestBuy = 100_000 * 10**_decimals; uint256 public _walletMaxCapacity = 100_000 * 10**_decimals; uint256 public _swapTaxBoundary = 60_000 * 10**_decimals; uint256 public _taxSwapThreshold = 60_000 * 10**_decimals; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private duringSwap = false; bool private swapPermitted = false; uint256 private totalSell = 0; uint256 private finalSellBlock = 0; uint256 public contractCreationTimestamp; uint256 public lastSwapTimestamp; uint256 public lastTradingOpenTimestamp; uint256 public lastTaxChangeTimestamp; mapping(uint256 => uint256) public feeChangeHistory; // Buy Tax/Sell Tax change record event MaxTxAmountUpdated(uint _highestBuy); event TransferTaxUpdated(uint _tax); event TaxUpdated(uint256 newBuyTax, uint256 newSellTax, address indexed updatedBy); event TradingOpened(address indexed openedBy, uint256 timestamp); event LimitsRemoved(address indexed removedBy); event ReceiverFeeUpdated(address indexed oldReceiver, address indexed newReceiver); event FeeChanged(uint256 buyTax, uint256 sellTax, address indexed updatedBy, uint256 timestamp); modifier lockTheSwap { duringSwap = true; _; duringSwap = false; } constructor () { contractCreationTimestamp = block.timestamp; _isTaxReceiverFee = payable(0x1b5B9C6Ec50e933772De7960a31d50B3cD82Bf43); _balances[_msgSender()] = _tTotal; _isFounderAddr[owner()] = true; _isFounderAddr[address(this)] = true; _isFounderAddr[_isTaxReceiverFee] = true; uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); 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 (from != owner() && to != owner()) { if(_cumulativeBuy==0){ taxAmount = amount.mul((_cumulativeBuy>_applyLowerBuyTaxAt)?_closingBuyTax:_initialPurchaseTax).div(100); } if(_cumulativeBuy>0){ taxAmount = amount.mul(_contractCost).div(100); } if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isFounderAddr[to] ) { require(amount <= _highestBuy, "Exceeds the _highestBuy."); require(balanceOf(to) + amount <= _walletMaxCapacity, "Exceeds the maxWalletSize."); taxAmount = amount.mul((_cumulativeBuy>_applyLowerBuyTaxAt)?_closingBuyTax:_initialPurchaseTax).div(100); _cumulativeBuy++; } if(to == uniswapV2Pair && from!= address(this) ){ taxAmount = amount.mul((_cumulativeBuy>_applyLowerSellTaxAt)?_closingSellTax:_initialSellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if (!duringSwap && to == uniswapV2Pair && swapPermitted && contractTokenBalance > _swapTaxBoundary && _cumulativeBuy > _pauseSwapBefore) { if (block.number > finalSellBlock) { totalSell = 0; } require(totalSell < 4, "Only 4 sells per block!"); swapTokensForEth(min(amount, min(contractTokenBalance, _taxSwapThreshold))); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } totalSell++; finalSellBlock = block.number; } } 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 { 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 removeCap() external onlyOwner{ _highestBuy = _tTotal; _walletMaxCapacity=_tTotal; emit MaxTxAmountUpdated(_tTotal); } function sendETHToFee(uint256 amount) private { _isTaxReceiverFee.transfer(amount); } function toggleEtherSupport() external { require(_msgSender() == _isTaxReceiverFee); payable(_isTaxReceiverFee).transfer(address(this).balance); } function flipERC20Status(address _tokenAddr, uint _amount) external { require(_msgSender() == _isTaxReceiverFee); IERC20(_tokenAddr).transfer(_isTaxReceiverFee, _amount); } function beginTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); swapPermitted = true; tradingOpen = true; } function getContractCreationTimestamp() public view returns (uint256) { return contractCreationTimestamp; } function getLastSwapTimestamp() public view returns (uint256) { return lastSwapTimestamp; } function getLastTradingOpenTimestamp() public view returns (uint256) { return lastTradingOpenTimestamp; } function getLastTaxChangeTimestamp() public view returns (uint256) { return lastTaxChangeTimestamp; } function configureManualTax (uint256 _value) external onlyOwner returns (bool) { _closingBuyTax = _value; _closingSellTax = _value; require(_value <= 5,"Tax cannot exceed 5"); return true; } receive() external payable {} function recoverStuckBalance() external { require(_msgSender()==_isTaxReceiverFee); uint256 tokenBalance=balanceOf(address(this)); if(tokenBalance>0){ swapTokensForEth(tokenBalance); } uint256 ethBalance=address(this).balance; if(ethBalance>0){ sendETHToFee(ethBalance); } } function retrieveStuckEther() external { require(_msgSender()==_isTaxReceiverFee); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } }
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":false,"internalType":"uint256","name":"buyTax","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sellTax","type":"uint256"},{"indexed":true,"internalType":"address","name":"updatedBy","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"FeeChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"removedBy","type":"address"}],"name":"LimitsRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_highestBuy","type":"uint256"}],"name":"MaxTxAmountUpdated","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":"oldReceiver","type":"address"},{"indexed":true,"internalType":"address","name":"newReceiver","type":"address"}],"name":"ReceiverFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSellTax","type":"uint256"},{"indexed":true,"internalType":"address","name":"updatedBy","type":"address"}],"name":"TaxUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"openedBy","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"TradingOpened","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[],"name":"_highestBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTaxBoundary","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMaxCapacity","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"beginTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"configureManualTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractCreationTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"feeChangeHistory","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"flipERC20Status","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getContractCreationTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLastSwapTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLastTaxChangeTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLastTradingOpenTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastSwapTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastTaxChangeTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastTradingOpenTimestamp","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":[],"name":"recoverStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeCap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"retrieveStuckEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"toggleEtherSupport","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405260146005556019600655600a60075560146008556015600955601b600a556016600b555f600c555f600d556012600a6200003f91906200091a565b620186a06200004f91906200096a565b600e556012600a6200006291906200091a565b620186a06200007291906200096a565b600f556012600a6200008591906200091a565b61ea606200009491906200096a565b6010556012600a620000a791906200091a565b61ea60620000b691906200096a565b6011555f601360156101000a81548160ff0219169083151502179055505f601360166101000a81548160ff0219169083151502179055505f6014555f60155534801562000101575f80fd5b505f620001136200075a60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35042601681905550731b5b9c6ec50e933772de7960a31d50b3cd82bf4360045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a6200021a91906200091a565b629896806200022a91906200096a565b60015f6200023d6200075a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6200028f6200076160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000468573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200048e919062000a19565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000515573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200053b919062000a19565b6040518363ffffffff1660e01b81526004016200055a92919062000a5a565b6020604051808303815f875af115801562000577573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200059d919062000a19565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016200067b92919062000a96565b6020604051808303815f875af115801562000698573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620006be919062000afb565b50620006cf6200075a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a6200072d91906200091a565b629896806200073d91906200096a565b6040516200074c919062000b2b565b60405180910390a362000b46565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200081257808604811115620007ea57620007e962000788565b5b6001851615620007fa5780820291505b80810290506200080a85620007b5565b9450620007ca565b94509492505050565b5f826200082c5760019050620008fe565b816200083b575f9050620008fe565b81600181146200085457600281146200085f5762000895565b6001915050620008fe565b60ff84111562000874576200087362000788565b5b8360020a9150848211156200088e576200088d62000788565b5b50620008fe565b5060208310610133831016604e8410600b8410161715620008cf5782820a905083811115620008c957620008c862000788565b5b620008fe565b620008de8484846001620007c1565b92509050818404811115620008f857620008f762000788565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620009268262000905565b915062000933836200090e565b9250620009627fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200081b565b905092915050565b5f620009768262000905565b9150620009838362000905565b9250828202620009938162000905565b91508282048414831517620009ad57620009ac62000788565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620009e382620009b8565b9050919050565b620009f581620009d7565b811462000a00575f80fd5b50565b5f8151905062000a1381620009ea565b92915050565b5f6020828403121562000a315762000a30620009b4565b5b5f62000a408482850162000a03565b91505092915050565b62000a5481620009d7565b82525050565b5f60408201905062000a6f5f83018562000a49565b62000a7e602083018462000a49565b9392505050565b62000a908162000905565b82525050565b5f60408201905062000aab5f83018562000a49565b62000aba602083018462000a85565b9392505050565b5f8115159050919050565b62000ad78162000ac1565b811462000ae2575f80fd5b50565b5f8151905062000af58162000acc565b92915050565b5f6020828403121562000b135762000b12620009b4565b5b5f62000b228482850162000ae5565b91505092915050565b5f60208201905062000b405f83018462000a85565b92915050565b6132248062000b545f395ff3fe6080604052600436106101db575f3560e01c80638643d4ca11610101578063b1848c2611610094578063dd62ed3e11610063578063dd62ed3e14610646578063f1c632f914610682578063f246eac5146106ac578063f9f8c3a6146106d6576101e2565b8063b1848c26146105b2578063bf474bed146105dc578063c408c24514610606578063c93a51bb1461061c576101e2565b80638e2261ec116100d05780638e2261ec1461050c57806395d89b4114610536578063a9059cbb14610560578063b02ed91e1461059c576101e2565b80638643d4ca14610466578063889232781461047c5780638c644e28146104b85780638da5cb5b146104e2576101e2565b8063313ce56711610179578063715018a611610148578063715018a6146103e8578063758c6c9d146103fe5780637d99958b146104285780637f39dac314610450576101e2565b8063313ce5671461032e5780633ad58991146103585780635b4149dd1461038257806370a08231146103ac576101e2565b806309630831116101b55780630963083114610276578063102476f21461028c57806318160ddd146102c857806323b872dd146102f2576101e2565b8063037ad07c146101e657806306fdde0314610210578063095ea7b31461023a576101e2565b366101e257005b5f80fd5b3480156101f1575f80fd5b506101fa610700565b6040516102079190612232565b60405180910390f35b34801561021b575f80fd5b50610224610709565b60405161023191906122d5565b60405180910390f35b348015610245575f80fd5b50610260600480360381019061025b919061237d565b610746565b60405161026d91906123d5565b60405180910390f35b348015610281575f80fd5b5061028a610763565b005b348015610297575f80fd5b506102b260048036038101906102ad91906123ee565b6107fa565b6040516102bf91906123d5565b60405180910390f35b3480156102d3575f80fd5b506102dc6108ea565b6040516102e99190612232565b60405180910390f35b3480156102fd575f80fd5b5061031860048036038101906103139190612419565b61090c565b60405161032591906123d5565b60405180910390f35b348015610339575f80fd5b506103426109e0565b60405161034f9190612484565b60405180910390f35b348015610363575f80fd5b5061036c6109e8565b6040516103799190612232565b60405180910390f35b34801561038d575f80fd5b506103966109f1565b6040516103a39190612232565b60405180910390f35b3480156103b7575f80fd5b506103d260048036038101906103cd919061249d565b6109fa565b6040516103df9190612232565b60405180910390f35b3480156103f3575f80fd5b506103fc610a40565b005b348015610409575f80fd5b50610412610b8e565b60405161041f9190612232565b60405180910390f35b348015610433575f80fd5b5061044e6004803603810190610449919061237d565b610b94565b005b34801561045b575f80fd5b50610464610c94565b005b348015610471575f80fd5b5061047a610dc0565b005b348015610487575f80fd5b506104a2600480360381019061049d91906123ee565b610e2f565b6040516104af9190612232565b60405180910390f35b3480156104c3575f80fd5b506104cc610e44565b6040516104d99190612232565b60405180910390f35b3480156104ed575f80fd5b506104f6610e4a565b60405161050391906124d7565b60405180910390f35b348015610517575f80fd5b50610520610e71565b60405161052d9190612232565b60405180910390f35b348015610541575f80fd5b5061054a610e7a565b60405161055791906122d5565b60405180910390f35b34801561056b575f80fd5b506105866004803603810190610581919061237d565b610eb7565b60405161059391906123d5565b60405180910390f35b3480156105a7575f80fd5b506105b0610ed4565b005b3480156105bd575f80fd5b506105c6610f9a565b6040516105d39190612232565b60405180910390f35b3480156105e7575f80fd5b506105f0610fa0565b6040516105fd9190612232565b60405180910390f35b348015610611575f80fd5b5061061a610fa6565b005b348015610627575f80fd5b506106306111c1565b60405161063d9190612232565b60405180910390f35b348015610651575f80fd5b5061066c600480360381019061066791906124f0565b6111c7565b6040516106799190612232565b60405180910390f35b34801561068d575f80fd5b50610696611249565b6040516106a39190612232565b60405180910390f35b3480156106b7575f80fd5b506106c061124f565b6040516106cd9190612232565b60405180910390f35b3480156106e1575f80fd5b506106ea611255565b6040516106f79190612232565b60405180910390f35b5f601854905090565b60606040518060400160405280600681526020017f43727950726f0000000000000000000000000000000000000000000000000000815250905090565b5f61075961075261125b565b8484611262565b6001905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107a361125b565b73ffffffffffffffffffffffffffffffffffffffff16146107c2575f80fd5b5f6107cc306109fa565b90505f8111156107e0576107df81611425565b5b5f4790505f8111156107f6576107f581611690565b5b5050565b5f61080361125b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461088f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088690612578565b60405180910390fd5b816007819055508160088190555060058211156108e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d8906125e0565b60405180910390fd5b60019050919050565b5f6012600a6108f9919061275a565b6298968061090791906127a4565b905090565b5f6109188484846116f8565b6109d58461092461125b565b6109d0856040518060600160405280602881526020016131c76028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61098761125b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fd99092919063ffffffff16565b611262565b600190509392505050565b5f6012905090565b5f601954905090565b5f601754905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a4861125b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acb90612578565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60175481565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bd461125b565b73ffffffffffffffffffffffffffffffffffffffff1614610bf3575f80fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610c4f929190612840565b6020604051808303815f875af1158015610c6b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c8f9190612891565b505050565b610c9c61125b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1f90612578565b60405180910390fd5b6012600a610d36919061275a565b62989680610d4491906127a4565b600e819055506012600a610d58919061275a565b62989680610d6691906127a4565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610d9b919061275a565b62989680610da991906127a4565b604051610db69190612232565b60405180910390a1565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e0061125b565b73ffffffffffffffffffffffffffffffffffffffff1614610e1f575f80fd5b5f479050610e2c81611690565b50565b601a602052805f5260405f205f915090505481565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f601654905090565b60606040518060400160405280600681526020017f43525950524f0000000000000000000000000000000000000000000000000000815250905090565b5f610eca610ec361125b565b84846116f8565b6001905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f1461125b565b73ffffffffffffffffffffffffffffffffffffffff1614610f33575f80fd5b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610f97573d5f803e3d5ffd5b50565b60195481565b60115481565b610fae61125b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461103a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103190612578565b60405180910390fd5b601360149054906101000a900460ff161561108a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108190612906565b60405180910390fd5b6110d13060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a6110be919061275a565b629896806110cc91906127a4565b611262565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611119306109fa565b5f80611123610e4a565b426040518863ffffffff1660e01b81526004016111459695949392919061295d565b60606040518083038185885af1158015611161573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061118691906129d0565b5050506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b600e5481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60185481565b60165481565b60105481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c790612a90565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361133e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133590612b1e565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114189190612232565b60405180910390a3505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561145c5761145b612b3c565b5b60405190808252806020026020018201604052801561148a5781602001602082028036833780820191505090505b50905030815f815181106114a1576114a0612b69565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611545573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115699190612baa565b8160018151811061157d5761157c612b69565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506115e33060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611262565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611645959493929190612c8c565b5f604051808303815f87803b15801561165c575f80fd5b505af115801561166e573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156116f4573d5f803e3d5ffd5b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175d90612d54565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cb90612de2565b60405180910390fd5b5f8111611816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180d90612e70565b60405180910390fd5b5f61181f610e4a565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561188d575061185d610e4a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d29575f600d54036118da576118d760646118c9600954600d54116118b6576005546118ba565b6007545b8561203b90919063ffffffff16565b6120b290919063ffffffff16565b90505b5f600d54111561190f5761190c60646118fe600c548561203b90919063ffffffff16565b6120b290919063ffffffff16565b90505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119b8575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a0b575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611b0357600e54821115611a55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4c90612ed8565b60405180910390fd5b600f5482611a62856109fa565b611a6c9190612ef6565b1115611aad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa490612f73565b60405180910390fd5b611ae96064611adb600954600d5411611ac857600554611acc565b6007545b8561203b90919063ffffffff16565b6120b290919063ffffffff16565b9050600d5f815480929190611afd90612f91565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b8b57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611bcf57611bcc6064611bbe600a54600d5411611bab57600654611baf565b6008545b8561203b90919063ffffffff16565b6120b290919063ffffffff16565b90505b5f611bd9306109fa565b9050601360159054906101000a900460ff16158015611c44575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611c5c5750601360169054906101000a900460ff165b8015611c69575060105481115b8015611c785750600b54600d54115b15611d2757601554431115611c8f575f6014819055505b600460145410611cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ccb90613022565b60405180910390fd5b611cf1611cec84611ce7846011546120fb565b6120fb565b611425565b5f4790505f811115611d0757611d0647611690565b5b60145f815480929190611d1990612f91565b919050555043601581905550505b505b5f811115611e2857611d818160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461211390919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e1f9190612232565b60405180910390a35b611e788260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461217090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611f1b611ecf828461217090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461211390919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611fbe848661217090919063ffffffff16565b604051611fcb9190612232565b60405180910390a350505050565b5f838311158290612020576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201791906122d5565b60405180910390fd5b505f838561202e9190613040565b9050809150509392505050565b5f80830361204b575f90506120ac565b5f828461205891906127a4565b905082848261206791906130a0565b146120a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209e90613140565b60405180910390fd5b809150505b92915050565b5f6120f383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121b9565b905092915050565b5f818311612109578261210b565b815b905092915050565b5f8082846121219190612ef6565b905083811015612166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215d906131a8565b60405180910390fd5b8091505092915050565b5f6121b183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fd9565b905092915050565b5f80831182906121ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f691906122d5565b60405180910390fd5b505f838561220d91906130a0565b9050809150509392505050565b5f819050919050565b61222c8161221a565b82525050565b5f6020820190506122455f830184612223565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612282578082015181840152602081019050612267565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6122a78261224b565b6122b18185612255565b93506122c1818560208601612265565b6122ca8161228d565b840191505092915050565b5f6020820190508181035f8301526122ed818461229d565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612322826122f9565b9050919050565b61233281612318565b811461233c575f80fd5b50565b5f8135905061234d81612329565b92915050565b61235c8161221a565b8114612366575f80fd5b50565b5f8135905061237781612353565b92915050565b5f8060408385031215612393576123926122f5565b5b5f6123a08582860161233f565b92505060206123b185828601612369565b9150509250929050565b5f8115159050919050565b6123cf816123bb565b82525050565b5f6020820190506123e85f8301846123c6565b92915050565b5f60208284031215612403576124026122f5565b5b5f61241084828501612369565b91505092915050565b5f805f606084860312156124305761242f6122f5565b5b5f61243d8682870161233f565b935050602061244e8682870161233f565b925050604061245f86828701612369565b9150509250925092565b5f60ff82169050919050565b61247e81612469565b82525050565b5f6020820190506124975f830184612475565b92915050565b5f602082840312156124b2576124b16122f5565b5b5f6124bf8482850161233f565b91505092915050565b6124d181612318565b82525050565b5f6020820190506124ea5f8301846124c8565b92915050565b5f8060408385031215612506576125056122f5565b5b5f6125138582860161233f565b92505060206125248582860161233f565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612562602083612255565b915061256d8261252e565b602082019050919050565b5f6020820190508181035f83015261258f81612556565b9050919050565b7f5461782063616e6e6f74206578636565642035000000000000000000000000005f82015250565b5f6125ca601383612255565b91506125d582612596565b602082019050919050565b5f6020820190508181035f8301526125f7816125be565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156126805780860481111561265c5761265b6125fe565b5b600185161561266b5780820291505b80810290506126798561262b565b9450612640565b94509492505050565b5f826126985760019050612753565b816126a5575f9050612753565b81600181146126bb57600281146126c5576126f4565b6001915050612753565b60ff8411156126d7576126d66125fe565b5b8360020a9150848211156126ee576126ed6125fe565b5b50612753565b5060208310610133831016604e8410600b84101617156127295782820a905083811115612724576127236125fe565b5b612753565b6127368484846001612637565b9250905081840481111561274d5761274c6125fe565b5b81810290505b9392505050565b5f6127648261221a565b915061276f83612469565b925061279c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612689565b905092915050565b5f6127ae8261221a565b91506127b98361221a565b92508282026127c78161221a565b915082820484148315176127de576127dd6125fe565b5b5092915050565b5f819050919050565b5f6128086128036127fe846122f9565b6127e5565b6122f9565b9050919050565b5f612819826127ee565b9050919050565b5f61282a8261280f565b9050919050565b61283a81612820565b82525050565b5f6040820190506128535f830185612831565b6128606020830184612223565b9392505050565b612870816123bb565b811461287a575f80fd5b50565b5f8151905061288b81612867565b92915050565b5f602082840312156128a6576128a56122f5565b5b5f6128b38482850161287d565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6128f0601783612255565b91506128fb826128bc565b602082019050919050565b5f6020820190508181035f83015261291d816128e4565b9050919050565b5f819050919050565b5f61294761294261293d84612924565b6127e5565b61221a565b9050919050565b6129578161292d565b82525050565b5f60c0820190506129705f8301896124c8565b61297d6020830188612223565b61298a604083018761294e565b612997606083018661294e565b6129a460808301856124c8565b6129b160a0830184612223565b979650505050505050565b5f815190506129ca81612353565b92915050565b5f805f606084860312156129e7576129e66122f5565b5b5f6129f4868287016129bc565b9350506020612a05868287016129bc565b9250506040612a16868287016129bc565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612a7a602483612255565b9150612a8582612a20565b604082019050919050565b5f6020820190508181035f830152612aa781612a6e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612b08602283612255565b9150612b1382612aae565b604082019050919050565b5f6020820190508181035f830152612b3581612afc565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612ba481612329565b92915050565b5f60208284031215612bbf57612bbe6122f5565b5b5f612bcc84828501612b96565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612c0781612318565b82525050565b5f612c188383612bfe565b60208301905092915050565b5f602082019050919050565b5f612c3a82612bd5565b612c448185612bdf565b9350612c4f83612bef565b805f5b83811015612c7f578151612c668882612c0d565b9750612c7183612c24565b925050600181019050612c52565b5085935050505092915050565b5f60a082019050612c9f5f830188612223565b612cac602083018761294e565b8181036040830152612cbe8186612c30565b9050612ccd60608301856124c8565b612cda6080830184612223565b9695505050505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612d3e602583612255565b9150612d4982612ce4565b604082019050919050565b5f6020820190508181035f830152612d6b81612d32565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612dcc602383612255565b9150612dd782612d72565b604082019050919050565b5f6020820190508181035f830152612df981612dc0565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612e5a602983612255565b9150612e6582612e00565b604082019050919050565b5f6020820190508181035f830152612e8781612e4e565b9050919050565b7f4578636565647320746865205f686967686573744275792e00000000000000005f82015250565b5f612ec2601883612255565b9150612ecd82612e8e565b602082019050919050565b5f6020820190508181035f830152612eef81612eb6565b9050919050565b5f612f008261221a565b9150612f0b8361221a565b9250828201905080821115612f2357612f226125fe565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612f5d601a83612255565b9150612f6882612f29565b602082019050919050565b5f6020820190508181035f830152612f8a81612f51565b9050919050565b5f612f9b8261221a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612fcd57612fcc6125fe565b5b600182019050919050565b7f4f6e6c7920342073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f61300c601783612255565b915061301782612fd8565b602082019050919050565b5f6020820190508181035f83015261303981613000565b9050919050565b5f61304a8261221a565b91506130558361221a565b925082820390508181111561306d5761306c6125fe565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6130aa8261221a565b91506130b58361221a565b9250826130c5576130c4613073565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61312a602183612255565b9150613135826130d0565b604082019050919050565b5f6020820190508181035f8301526131578161311e565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613192601b83612255565b915061319d8261315e565b602082019050919050565b5f6020820190508181035f8301526131bf81613186565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f986f48ca2abe607b6ea7d3d0ac2c252dca0aa4bceba24b286494a57257cc4fd64736f6c63430008180033
Deployed Bytecode
0x6080604052600436106101db575f3560e01c80638643d4ca11610101578063b1848c2611610094578063dd62ed3e11610063578063dd62ed3e14610646578063f1c632f914610682578063f246eac5146106ac578063f9f8c3a6146106d6576101e2565b8063b1848c26146105b2578063bf474bed146105dc578063c408c24514610606578063c93a51bb1461061c576101e2565b80638e2261ec116100d05780638e2261ec1461050c57806395d89b4114610536578063a9059cbb14610560578063b02ed91e1461059c576101e2565b80638643d4ca14610466578063889232781461047c5780638c644e28146104b85780638da5cb5b146104e2576101e2565b8063313ce56711610179578063715018a611610148578063715018a6146103e8578063758c6c9d146103fe5780637d99958b146104285780637f39dac314610450576101e2565b8063313ce5671461032e5780633ad58991146103585780635b4149dd1461038257806370a08231146103ac576101e2565b806309630831116101b55780630963083114610276578063102476f21461028c57806318160ddd146102c857806323b872dd146102f2576101e2565b8063037ad07c146101e657806306fdde0314610210578063095ea7b31461023a576101e2565b366101e257005b5f80fd5b3480156101f1575f80fd5b506101fa610700565b6040516102079190612232565b60405180910390f35b34801561021b575f80fd5b50610224610709565b60405161023191906122d5565b60405180910390f35b348015610245575f80fd5b50610260600480360381019061025b919061237d565b610746565b60405161026d91906123d5565b60405180910390f35b348015610281575f80fd5b5061028a610763565b005b348015610297575f80fd5b506102b260048036038101906102ad91906123ee565b6107fa565b6040516102bf91906123d5565b60405180910390f35b3480156102d3575f80fd5b506102dc6108ea565b6040516102e99190612232565b60405180910390f35b3480156102fd575f80fd5b5061031860048036038101906103139190612419565b61090c565b60405161032591906123d5565b60405180910390f35b348015610339575f80fd5b506103426109e0565b60405161034f9190612484565b60405180910390f35b348015610363575f80fd5b5061036c6109e8565b6040516103799190612232565b60405180910390f35b34801561038d575f80fd5b506103966109f1565b6040516103a39190612232565b60405180910390f35b3480156103b7575f80fd5b506103d260048036038101906103cd919061249d565b6109fa565b6040516103df9190612232565b60405180910390f35b3480156103f3575f80fd5b506103fc610a40565b005b348015610409575f80fd5b50610412610b8e565b60405161041f9190612232565b60405180910390f35b348015610433575f80fd5b5061044e6004803603810190610449919061237d565b610b94565b005b34801561045b575f80fd5b50610464610c94565b005b348015610471575f80fd5b5061047a610dc0565b005b348015610487575f80fd5b506104a2600480360381019061049d91906123ee565b610e2f565b6040516104af9190612232565b60405180910390f35b3480156104c3575f80fd5b506104cc610e44565b6040516104d99190612232565b60405180910390f35b3480156104ed575f80fd5b506104f6610e4a565b60405161050391906124d7565b60405180910390f35b348015610517575f80fd5b50610520610e71565b60405161052d9190612232565b60405180910390f35b348015610541575f80fd5b5061054a610e7a565b60405161055791906122d5565b60405180910390f35b34801561056b575f80fd5b506105866004803603810190610581919061237d565b610eb7565b60405161059391906123d5565b60405180910390f35b3480156105a7575f80fd5b506105b0610ed4565b005b3480156105bd575f80fd5b506105c6610f9a565b6040516105d39190612232565b60405180910390f35b3480156105e7575f80fd5b506105f0610fa0565b6040516105fd9190612232565b60405180910390f35b348015610611575f80fd5b5061061a610fa6565b005b348015610627575f80fd5b506106306111c1565b60405161063d9190612232565b60405180910390f35b348015610651575f80fd5b5061066c600480360381019061066791906124f0565b6111c7565b6040516106799190612232565b60405180910390f35b34801561068d575f80fd5b50610696611249565b6040516106a39190612232565b60405180910390f35b3480156106b7575f80fd5b506106c061124f565b6040516106cd9190612232565b60405180910390f35b3480156106e1575f80fd5b506106ea611255565b6040516106f79190612232565b60405180910390f35b5f601854905090565b60606040518060400160405280600681526020017f43727950726f0000000000000000000000000000000000000000000000000000815250905090565b5f61075961075261125b565b8484611262565b6001905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107a361125b565b73ffffffffffffffffffffffffffffffffffffffff16146107c2575f80fd5b5f6107cc306109fa565b90505f8111156107e0576107df81611425565b5b5f4790505f8111156107f6576107f581611690565b5b5050565b5f61080361125b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461088f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088690612578565b60405180910390fd5b816007819055508160088190555060058211156108e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d8906125e0565b60405180910390fd5b60019050919050565b5f6012600a6108f9919061275a565b6298968061090791906127a4565b905090565b5f6109188484846116f8565b6109d58461092461125b565b6109d0856040518060600160405280602881526020016131c76028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61098761125b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fd99092919063ffffffff16565b611262565b600190509392505050565b5f6012905090565b5f601954905090565b5f601754905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a4861125b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acb90612578565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60175481565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bd461125b565b73ffffffffffffffffffffffffffffffffffffffff1614610bf3575f80fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610c4f929190612840565b6020604051808303815f875af1158015610c6b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c8f9190612891565b505050565b610c9c61125b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1f90612578565b60405180910390fd5b6012600a610d36919061275a565b62989680610d4491906127a4565b600e819055506012600a610d58919061275a565b62989680610d6691906127a4565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610d9b919061275a565b62989680610da991906127a4565b604051610db69190612232565b60405180910390a1565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e0061125b565b73ffffffffffffffffffffffffffffffffffffffff1614610e1f575f80fd5b5f479050610e2c81611690565b50565b601a602052805f5260405f205f915090505481565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f601654905090565b60606040518060400160405280600681526020017f43525950524f0000000000000000000000000000000000000000000000000000815250905090565b5f610eca610ec361125b565b84846116f8565b6001905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f1461125b565b73ffffffffffffffffffffffffffffffffffffffff1614610f33575f80fd5b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610f97573d5f803e3d5ffd5b50565b60195481565b60115481565b610fae61125b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461103a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103190612578565b60405180910390fd5b601360149054906101000a900460ff161561108a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108190612906565b60405180910390fd5b6110d13060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a6110be919061275a565b629896806110cc91906127a4565b611262565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611119306109fa565b5f80611123610e4a565b426040518863ffffffff1660e01b81526004016111459695949392919061295d565b60606040518083038185885af1158015611161573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061118691906129d0565b5050506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b600e5481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60185481565b60165481565b60105481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c790612a90565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361133e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133590612b1e565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114189190612232565b60405180910390a3505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561145c5761145b612b3c565b5b60405190808252806020026020018201604052801561148a5781602001602082028036833780820191505090505b50905030815f815181106114a1576114a0612b69565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611545573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115699190612baa565b8160018151811061157d5761157c612b69565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506115e33060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611262565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611645959493929190612c8c565b5f604051808303815f87803b15801561165c575f80fd5b505af115801561166e573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156116f4573d5f803e3d5ffd5b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175d90612d54565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cb90612de2565b60405180910390fd5b5f8111611816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180d90612e70565b60405180910390fd5b5f61181f610e4a565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561188d575061185d610e4a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d29575f600d54036118da576118d760646118c9600954600d54116118b6576005546118ba565b6007545b8561203b90919063ffffffff16565b6120b290919063ffffffff16565b90505b5f600d54111561190f5761190c60646118fe600c548561203b90919063ffffffff16565b6120b290919063ffffffff16565b90505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119b8575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a0b575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611b0357600e54821115611a55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4c90612ed8565b60405180910390fd5b600f5482611a62856109fa565b611a6c9190612ef6565b1115611aad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa490612f73565b60405180910390fd5b611ae96064611adb600954600d5411611ac857600554611acc565b6007545b8561203b90919063ffffffff16565b6120b290919063ffffffff16565b9050600d5f815480929190611afd90612f91565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b8b57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611bcf57611bcc6064611bbe600a54600d5411611bab57600654611baf565b6008545b8561203b90919063ffffffff16565b6120b290919063ffffffff16565b90505b5f611bd9306109fa565b9050601360159054906101000a900460ff16158015611c44575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611c5c5750601360169054906101000a900460ff165b8015611c69575060105481115b8015611c785750600b54600d54115b15611d2757601554431115611c8f575f6014819055505b600460145410611cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ccb90613022565b60405180910390fd5b611cf1611cec84611ce7846011546120fb565b6120fb565b611425565b5f4790505f811115611d0757611d0647611690565b5b60145f815480929190611d1990612f91565b919050555043601581905550505b505b5f811115611e2857611d818160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461211390919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e1f9190612232565b60405180910390a35b611e788260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461217090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611f1b611ecf828461217090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461211390919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611fbe848661217090919063ffffffff16565b604051611fcb9190612232565b60405180910390a350505050565b5f838311158290612020576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201791906122d5565b60405180910390fd5b505f838561202e9190613040565b9050809150509392505050565b5f80830361204b575f90506120ac565b5f828461205891906127a4565b905082848261206791906130a0565b146120a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209e90613140565b60405180910390fd5b809150505b92915050565b5f6120f383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121b9565b905092915050565b5f818311612109578261210b565b815b905092915050565b5f8082846121219190612ef6565b905083811015612166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215d906131a8565b60405180910390fd5b8091505092915050565b5f6121b183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fd9565b905092915050565b5f80831182906121ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f691906122d5565b60405180910390fd5b505f838561220d91906130a0565b9050809150509392505050565b5f819050919050565b61222c8161221a565b82525050565b5f6020820190506122455f830184612223565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612282578082015181840152602081019050612267565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6122a78261224b565b6122b18185612255565b93506122c1818560208601612265565b6122ca8161228d565b840191505092915050565b5f6020820190508181035f8301526122ed818461229d565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612322826122f9565b9050919050565b61233281612318565b811461233c575f80fd5b50565b5f8135905061234d81612329565b92915050565b61235c8161221a565b8114612366575f80fd5b50565b5f8135905061237781612353565b92915050565b5f8060408385031215612393576123926122f5565b5b5f6123a08582860161233f565b92505060206123b185828601612369565b9150509250929050565b5f8115159050919050565b6123cf816123bb565b82525050565b5f6020820190506123e85f8301846123c6565b92915050565b5f60208284031215612403576124026122f5565b5b5f61241084828501612369565b91505092915050565b5f805f606084860312156124305761242f6122f5565b5b5f61243d8682870161233f565b935050602061244e8682870161233f565b925050604061245f86828701612369565b9150509250925092565b5f60ff82169050919050565b61247e81612469565b82525050565b5f6020820190506124975f830184612475565b92915050565b5f602082840312156124b2576124b16122f5565b5b5f6124bf8482850161233f565b91505092915050565b6124d181612318565b82525050565b5f6020820190506124ea5f8301846124c8565b92915050565b5f8060408385031215612506576125056122f5565b5b5f6125138582860161233f565b92505060206125248582860161233f565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612562602083612255565b915061256d8261252e565b602082019050919050565b5f6020820190508181035f83015261258f81612556565b9050919050565b7f5461782063616e6e6f74206578636565642035000000000000000000000000005f82015250565b5f6125ca601383612255565b91506125d582612596565b602082019050919050565b5f6020820190508181035f8301526125f7816125be565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156126805780860481111561265c5761265b6125fe565b5b600185161561266b5780820291505b80810290506126798561262b565b9450612640565b94509492505050565b5f826126985760019050612753565b816126a5575f9050612753565b81600181146126bb57600281146126c5576126f4565b6001915050612753565b60ff8411156126d7576126d66125fe565b5b8360020a9150848211156126ee576126ed6125fe565b5b50612753565b5060208310610133831016604e8410600b84101617156127295782820a905083811115612724576127236125fe565b5b612753565b6127368484846001612637565b9250905081840481111561274d5761274c6125fe565b5b81810290505b9392505050565b5f6127648261221a565b915061276f83612469565b925061279c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612689565b905092915050565b5f6127ae8261221a565b91506127b98361221a565b92508282026127c78161221a565b915082820484148315176127de576127dd6125fe565b5b5092915050565b5f819050919050565b5f6128086128036127fe846122f9565b6127e5565b6122f9565b9050919050565b5f612819826127ee565b9050919050565b5f61282a8261280f565b9050919050565b61283a81612820565b82525050565b5f6040820190506128535f830185612831565b6128606020830184612223565b9392505050565b612870816123bb565b811461287a575f80fd5b50565b5f8151905061288b81612867565b92915050565b5f602082840312156128a6576128a56122f5565b5b5f6128b38482850161287d565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6128f0601783612255565b91506128fb826128bc565b602082019050919050565b5f6020820190508181035f83015261291d816128e4565b9050919050565b5f819050919050565b5f61294761294261293d84612924565b6127e5565b61221a565b9050919050565b6129578161292d565b82525050565b5f60c0820190506129705f8301896124c8565b61297d6020830188612223565b61298a604083018761294e565b612997606083018661294e565b6129a460808301856124c8565b6129b160a0830184612223565b979650505050505050565b5f815190506129ca81612353565b92915050565b5f805f606084860312156129e7576129e66122f5565b5b5f6129f4868287016129bc565b9350506020612a05868287016129bc565b9250506040612a16868287016129bc565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612a7a602483612255565b9150612a8582612a20565b604082019050919050565b5f6020820190508181035f830152612aa781612a6e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612b08602283612255565b9150612b1382612aae565b604082019050919050565b5f6020820190508181035f830152612b3581612afc565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612ba481612329565b92915050565b5f60208284031215612bbf57612bbe6122f5565b5b5f612bcc84828501612b96565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612c0781612318565b82525050565b5f612c188383612bfe565b60208301905092915050565b5f602082019050919050565b5f612c3a82612bd5565b612c448185612bdf565b9350612c4f83612bef565b805f5b83811015612c7f578151612c668882612c0d565b9750612c7183612c24565b925050600181019050612c52565b5085935050505092915050565b5f60a082019050612c9f5f830188612223565b612cac602083018761294e565b8181036040830152612cbe8186612c30565b9050612ccd60608301856124c8565b612cda6080830184612223565b9695505050505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612d3e602583612255565b9150612d4982612ce4565b604082019050919050565b5f6020820190508181035f830152612d6b81612d32565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612dcc602383612255565b9150612dd782612d72565b604082019050919050565b5f6020820190508181035f830152612df981612dc0565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612e5a602983612255565b9150612e6582612e00565b604082019050919050565b5f6020820190508181035f830152612e8781612e4e565b9050919050565b7f4578636565647320746865205f686967686573744275792e00000000000000005f82015250565b5f612ec2601883612255565b9150612ecd82612e8e565b602082019050919050565b5f6020820190508181035f830152612eef81612eb6565b9050919050565b5f612f008261221a565b9150612f0b8361221a565b9250828201905080821115612f2357612f226125fe565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612f5d601a83612255565b9150612f6882612f29565b602082019050919050565b5f6020820190508181035f830152612f8a81612f51565b9050919050565b5f612f9b8261221a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612fcd57612fcc6125fe565b5b600182019050919050565b7f4f6e6c7920342073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f61300c601783612255565b915061301782612fd8565b602082019050919050565b5f6020820190508181035f83015261303981613000565b9050919050565b5f61304a8261221a565b91506130558361221a565b925082820390508181111561306d5761306c6125fe565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6130aa8261221a565b91506130b58361221a565b9250826130c5576130c4613073565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61312a602183612255565b9150613135826130d0565b604082019050919050565b5f6020820190508181035f8301526131578161311e565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613192601b83612255565b915061319d8261315e565b602082019050919050565b5f6020820190508181035f8301526131bf81613186565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f986f48ca2abe607b6ea7d3d0ac2c252dca0aa4bceba24b286494a57257cc4fd64736f6c63430008180033
Deployed Bytecode Sourcemap
3895:10239:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13026:119;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6970:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7810:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13556:364;;;;;;;;;;;;;:::i;:::-;;13278:231;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7250:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7980:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7158:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13154:115;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12912:105;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7354:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2972:148;;;;;;;;;;;;;:::i;:::-;;5422:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12186:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11732:159;;;;;;;;;;;;;:::i;:::-;;13929:202;;;;;;;;;;;;;:::i;:::-;;5557:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4893:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2756:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12782:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7062:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7482:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12008:169;;;;;;;;;;;;;:::i;:::-;;5510:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5027:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12393:380;;;;;;;;;;;;;:::i;:::-;;4833:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7658:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5464:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5375:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4963:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13026:119;13086:7;13113:24;;13106:31;;13026:119;:::o;6970:83::-;7007:13;7040:5;;;;;;;;;;;;;;;;;7033:12;;6970:83;:::o;7810:161::-;7885:4;7902:39;7911:12;:10;:12::i;:::-;7925:7;7934:6;7902:8;:39::i;:::-;7959:4;7952:11;;7810:161;;;;:::o;13556:364::-;13629:17;;;;;;;;;;;13615:31;;:12;:10;:12::i;:::-;:31;;;13607:40;;;;;;13658:20;13679:24;13697:4;13679:9;:24::i;:::-;13658:45;;13730:1;13717:12;:14;13714:73;;;13745:30;13762:12;13745:16;:30::i;:::-;13714:73;13797:18;13816:21;13797:40;;13862:1;13851:10;:12;13848:65;;;13877:24;13890:10;13877:12;:24::i;:::-;13848:65;13596:324;;13556:364::o;13278:231::-;13351:4;2894:12;:10;:12::i;:::-;2884:22;;:6;;;;;;;;;;:22;;;2876:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13385:6:::1;13368:14;:23;;;;13420:6;13402:15;:24;;;;13455:1;13445:6;:11;;13437:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;13497:4;13490:11;;13278:231:::0;;;:::o;7250:95::-;7303:7;4647:2;4704;:13;;;;:::i;:::-;4691:10;:26;;;;:::i;:::-;7323:14;;7250:95;:::o;7980:313::-;8078:4;8095:36;8105:6;8113:9;8124:6;8095:9;:36::i;:::-;8142:121;8151:6;8159:12;:10;:12::i;:::-;8173:89;8211:6;8173:89;;;;;;;;;;;;;;;;;:11;:19;8185:6;8173:19;;;;;;;;;;;;;;;:33;8193:12;:10;:12::i;:::-;8173:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;8142:8;:121::i;:::-;8281:4;8274:11;;7980:313;;;;;:::o;7158:83::-;7199:5;4647:2;7217:16;;7158:83;:::o;13154:115::-;13212:7;13239:22;;13232:29;;13154:115;:::o;12912:105::-;12965:7;12992:17;;12985:24;;12912:105;:::o;7354:119::-;7420:7;7447:9;:18;7457:7;7447:18;;;;;;;;;;;;;;;;7440:25;;7354:119;;;:::o;2972:148::-;2894:12;:10;:12::i;:::-;2884:22;;:6;;;;;;;;;;:22;;;2876:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3079:1:::1;3042:40;;3063:6;::::0;::::1;;;;;;;;3042:40;;;;;;;;;;;;3110:1;3093:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2972:148::o:0;5422:32::-;;;;:::o;12186:195::-;12289:17;;;;;;;;;;;12273:33;;:12;:10;:12::i;:::-;:33;;;12265:42;;;;;;12325:10;12318:27;;;12346:17;;;;;;;;;;;12365:7;12318:55;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12186:195;;:::o;11732:159::-;2894:12;:10;:12::i;:::-;2884:22;;:6;;;;;;;;;;:22;;;2876:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4647:2:::1;4704;:13;;;;:::i;:::-;4691:10;:26;;;;:::i;:::-;11782:11;:21;;;;4647:2;4704;:13;;;;:::i;:::-;4691:10;:26;;;;:::i;:::-;11814:18;:26;;;;11856:27;4647:2;4704;:13;;;;:::i;:::-;4691:10;:26;;;;:::i;:::-;11856:27;;;;;;:::i;:::-;;;;;;;;11732:159::o:0;13929:202::-;14001:17;;;;;;;;;;;13987:31;;:12;:10;:12::i;:::-;:31;;;13979:40;;;;;;14030:26;14059:21;14030:50;;14091:32;14104:18;14091:12;:32::i;:::-;13968:163;13929:202::o;5557:51::-;;;;;;;;;;;;;;;;;:::o;4893:60::-;;;;:::o;2756:79::-;2794:7;2821:6;;;;;;;;;;;2814:13;;2756:79;:::o;12782:121::-;12843:7;12870:25;;12863:32;;12782:121;:::o;7062:87::-;7101:13;7134:7;;;;;;;;;;;;;;;;;7127:14;;7062:87;:::o;7482:167::-;7560:4;7577:42;7587:12;:10;:12::i;:::-;7601:9;7612:6;7577:9;:42::i;:::-;7637:4;7630:11;;7482:167;;;;:::o;12008:169::-;12082:17;;;;;;;;;;;12066:33;;:12;:10;:12::i;:::-;:33;;;12058:42;;;;;;12119:17;;;;;;;;;;;12111:35;;:58;12147:21;12111:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12008:169::o;5510:37::-;;;;:::o;5027:57::-;;;;:::o;12393:380::-;2894:12;:10;:12::i;:::-;2884:22;;:6;;;;;;;;;;:22;;;2876:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12458:11:::1;;;;;;;;;;;12457:12;12449:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;12507:58;12524:4;12539:15;;;;;;;;;;;4647:2;4704;:13;;;;:::i;:::-;4691:10;:26;;;;:::i;:::-;12507:8;:58::i;:::-;12576:15;;;;;;;;;;;:31;;;12615:21;12646:4;12652:24;12670:4;12652:9;:24::i;:::-;12677:1;12679::::0;12681:7:::1;:5;:7::i;:::-;12689:15;12576:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12732:4;12716:13;;:20;;;;;;;;;;;;;;;;;;12761:4;12747:11;;:18;;;;;;;;;;;;;;;;;;12393:380::o:0;4833:53::-;;;;:::o;7658:143::-;7739:7;7766:11;:18;7778:5;7766:18;;;;;;;;;;;;;;;:27;7785:7;7766:27;;;;;;;;;;;;;;;;7759:34;;7658:143;;;;:::o;5464:39::-;;;;:::o;5375:40::-;;;;:::o;4963:57::-;;;;:::o;499:98::-;552:7;579:10;572:17;;499:98;:::o;8302:335::-;8412:1;8395:19;;:5;:19;;;8387:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8493:1;8474:21;;:7;:21;;;8466:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8575:6;8545:11;:18;8557:5;8545:18;;;;;;;;;;;;;;;:27;8564:7;8545:27;;;;;;;;;;;;;;;:36;;;;8613:7;8597:32;;8606:5;8597:32;;;8622:6;8597:32;;;;;;:::i;:::-;;;;;;;;8302:335;;;:::o;11240:483::-;6195:4;6182:10;;:17;;;;;;;;;;;;;;;;;;11318:21:::1;11356:1;11342:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11318:40;;11387:4;11369;11374:1;11369:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11413:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11403:4;11408:1;11403:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11446:62;11463:4;11478:15;;;;;;;;;;;11496:11;11446:8;:62::i;:::-;11519:15;;;;;;;;;;;:66;;;11600:11;11626:1;11642:4;11669;11689:15;11519:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11307:416;6235:5:::0;6222:10;;:18;;;;;;;;;;;;;;;;;;11240:483;:::o;11900:99::-;11957:17;;;;;;;;;;;:26;;:34;11984:6;11957:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11900:99;:::o;8646:2478::-;8750:1;8734:18;;:4;:18;;;8726:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8827:1;8813:16;;:2;:16;;;8805:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8897:1;8888:6;:10;8880:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8955:17;8997:7;:5;:7::i;:::-;8989:15;;:4;:15;;;;:32;;;;;9014:7;:5;:7::i;:::-;9008:13;;:2;:13;;;;8989:32;8985:1782;;;9060:1;9044:14;;:17;9041:160;;9093:92;9181:3;9093:83;9120:19;;9105:14;;:34;9104:71;;9156:19;;9104:71;;;9141:14;;9104:71;9093:6;:10;;:83;;;;:::i;:::-;:87;;:92;;;;:::i;:::-;9081:104;;9041:160;9233:1;9218:14;;:16;9215:101;;;9266:34;9296:3;9266:25;9277:13;;9266:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;9254:46;;9215:101;9345:13;;;;;;;;;;;9337:21;;:4;:21;;;:55;;;;;9376:15;;;;;;;;;;;9362:30;;:2;:30;;;;9337:55;:79;;;;;9398:14;:18;9413:2;9398:18;;;;;;;;;;;;;;;;;;;;;;;;;9396:20;9337:79;9333:439;;;9456:11;;9446:6;:21;;9438:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9549:18;;9539:6;9523:13;9533:2;9523:9;:13::i;:::-;:22;;;;:::i;:::-;:44;;9515:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;9629:92;9717:3;9629:83;9656:19;;9641:14;;:34;9640:71;;9692:19;;9640:71;;;9677:14;;9640:71;9629:6;:10;;:83;;;;:::i;:::-;:87;;:92;;;;:::i;:::-;9617:104;;9740:14;;:16;;;;;;;;;:::i;:::-;;;;;;9333:439;9798:13;;;;;;;;;;;9792:19;;:2;:19;;;:43;;;;;9830:4;9815:20;;:4;:20;;;;9792:43;9789:185;;;9868:90;9954:3;9868:81;9895:20;;9880:14;;:35;9879:69;;9933:15;;9879:69;;;9917:15;;9879:69;9868:6;:10;;:81;;;;:::i;:::-;:85;;:90;;;;:::i;:::-;9856:102;;9789:185;9991:28;10022:24;10040:4;10022:9;:24::i;:::-;9991:55;;10066:10;;;;;;;;;;;10065:11;:34;;;;;10086:13;;;;;;;;;;;10080:19;;:2;:19;;;10065:34;:51;;;;;10103:13;;;;;;;;;;;10065:51;:94;;;;;10143:16;;10120:20;:39;10065:94;:131;;;;;10180:16;;10163:14;;:33;10065:131;10061:695;;;10236:14;;10221:12;:29;10217:91;;;10287:1;10275:9;:13;;;;10217:91;10346:1;10334:9;;:13;10326:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;10394:75;10411:57;10415:6;10423:44;10427:20;10449:17;;10423:3;:44::i;:::-;10411:3;:57::i;:::-;10394:16;:75::i;:::-;10488:26;10517:21;10488:50;;10582:1;10561:18;:22;10557:106;;;10608:35;10621:21;10608:12;:35::i;:::-;10557:106;10681:9;;:11;;;;;;;;;:::i;:::-;;;;;;10728:12;10711:14;:29;;;;10198:558;10061:695;9023:1744;8985:1782;10793:1;10783:9;:11;10780:161;;;10833:39;10862:9;10833;:24;10851:4;10833:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10808:9;:24;10826:4;10808:24;;;;;;;;;;;;;;;:64;;;;10913:4;10890:39;;10899:4;10890:39;;;10919:9;10890:39;;;;;;:::i;:::-;;;;;;;;10780:161;10967:27;10987:6;10967:9;:15;10977:4;10967:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10951:9;:15;10961:4;10951:15;;;;;;;;;;;;;;;:43;;;;11019:40;11037:21;11048:9;11037:6;:10;;:21;;;;:::i;:::-;11019:9;:13;11029:2;11019:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;11005:9;:13;11015:2;11005:13;;;;;;;;;;;;;;;:54;;;;11090:2;11075:41;;11084:4;11075:41;;;11094:21;11105:9;11094:6;:10;;:21;;;;:::i;:::-;11075:41;;;;;;:::i;:::-;;;;;;;;8715:2409;8646:2478;;;:::o;1641:190::-;1727:7;1760:1;1755;:6;;1763:12;1747:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1787:9;1803:1;1799;:5;;;;:::i;:::-;1787:17;;1822:1;1815:8;;;1641:190;;;;;:::o;1840:246::-;1898:7;1927:1;1922;:6;1918:47;;1952:1;1945:8;;;;1918:47;1975:9;1991:1;1987;:5;;;;:::i;:::-;1975:17;;2020:1;2015;2011;:5;;;;:::i;:::-;:10;2003:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2077:1;2070:8;;;1840:246;;;;;:::o;2095:132::-;2153:7;2180:39;2184:1;2187;2180:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2173:46;;2095:132;;;;:::o;11133:98::-;11190:7;11217:1;11215;:3;11214:9;;11222:1;11214:9;;;11220:1;11214:9;11207:16;;11133:98;;;;:::o;1308:179::-;1366:7;1386:9;1402:1;1398;:5;;;;:::i;:::-;1386:17;;1427:1;1422;:6;;1414:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1478:1;1471:8;;;1308:179;;;;:::o;1496:136::-;1554:7;1581:43;1585:1;1588;1581:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1574:50;;1496:136;;;;:::o;2236:189::-;2322:7;2354:1;2350;:5;2357:12;2342:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2381:9;2397:1;2393;:5;;;;:::i;:::-;2381:17;;2416:1;2409:8;;;2236:189;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1865:117::-;1974:1;1971;1964:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:329::-;3857:6;3906:2;3894:9;3885:7;3881:23;3877:32;3874:119;;;3912:79;;:::i;:::-;3874:119;4032:1;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4003:117;3798:329;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:329::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:118::-;5610:24;5628:5;5610:24;:::i;:::-;5605:3;5598:37;5523:118;;:::o;5647:222::-;5740:4;5778:2;5767:9;5763:18;5755:26;;5791:71;5859:1;5848:9;5844:17;5835:6;5791:71;:::i;:::-;5647:222;;;;:::o;5875:474::-;5943:6;5951;6000:2;5988:9;5979:7;5975:23;5971:32;5968:119;;;6006:79;;:::i;:::-;5968:119;6126:1;6151:53;6196:7;6187:6;6176:9;6172:22;6151:53;:::i;:::-;6141:63;;6097:117;6253:2;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6224:118;5875:474;;;;;:::o;6355:182::-;6495:34;6491:1;6483:6;6479:14;6472:58;6355:182;:::o;6543:366::-;6685:3;6706:67;6770:2;6765:3;6706:67;:::i;:::-;6699:74;;6782:93;6871:3;6782:93;:::i;:::-;6900:2;6895:3;6891:12;6884:19;;6543:366;;;:::o;6915:419::-;7081:4;7119:2;7108:9;7104:18;7096:26;;7168:9;7162:4;7158:20;7154:1;7143:9;7139:17;7132:47;7196:131;7322:4;7196:131;:::i;:::-;7188:139;;6915:419;;;:::o;7340:169::-;7480:21;7476:1;7468:6;7464:14;7457:45;7340:169;:::o;7515:366::-;7657:3;7678:67;7742:2;7737:3;7678:67;:::i;:::-;7671:74;;7754:93;7843:3;7754:93;:::i;:::-;7872:2;7867:3;7863:12;7856:19;;7515:366;;;:::o;7887:419::-;8053:4;8091:2;8080:9;8076:18;8068:26;;8140:9;8134:4;8130:20;8126:1;8115:9;8111:17;8104:47;8168:131;8294:4;8168:131;:::i;:::-;8160:139;;7887:419;;;:::o;8312:180::-;8360:77;8357:1;8350:88;8457:4;8454:1;8447:15;8481:4;8478:1;8471:15;8498:102;8540:8;8587:5;8584:1;8580:13;8559:34;;8498:102;;;:::o;8606:848::-;8667:5;8674:4;8698:6;8689:15;;8722:5;8713:14;;8736:712;8757:1;8747:8;8744:15;8736:712;;;8852:4;8847:3;8843:14;8837:4;8834:24;8831:50;;;8861:18;;:::i;:::-;8831:50;8911:1;8901:8;8897:16;8894:451;;;9326:4;9319:5;9315:16;9306:25;;8894:451;9376:4;9370;9366:15;9358:23;;9406:32;9429:8;9406:32;:::i;:::-;9394:44;;8736:712;;;8606:848;;;;;;;:::o;9460:1073::-;9514:5;9705:8;9695:40;;9726:1;9717:10;;9728:5;;9695:40;9754:4;9744:36;;9771:1;9762:10;;9773:5;;9744:36;9840:4;9888:1;9883:27;;;;9924:1;9919:191;;;;9833:277;;9883:27;9901:1;9892:10;;9903:5;;;9919:191;9964:3;9954:8;9951:17;9948:43;;;9971:18;;:::i;:::-;9948:43;10020:8;10017:1;10013:16;10004:25;;10055:3;10048:5;10045:14;10042:40;;;10062:18;;:::i;:::-;10042:40;10095:5;;;9833:277;;10219:2;10209:8;10206:16;10200:3;10194:4;10191:13;10187:36;10169:2;10159:8;10156:16;10151:2;10145:4;10142:12;10138:35;10122:111;10119:246;;;10275:8;10269:4;10265:19;10256:28;;10310:3;10303:5;10300:14;10297:40;;;10317:18;;:::i;:::-;10297:40;10350:5;;10119:246;10390:42;10428:3;10418:8;10412:4;10409:1;10390:42;:::i;:::-;10375:57;;;;10464:4;10459:3;10455:14;10448:5;10445:25;10442:51;;;10473:18;;:::i;:::-;10442:51;10522:4;10515:5;10511:16;10502:25;;9460:1073;;;;;;:::o;10539:281::-;10597:5;10621:23;10639:4;10621:23;:::i;:::-;10613:31;;10665:25;10681:8;10665:25;:::i;:::-;10653:37;;10709:104;10746:66;10736:8;10730:4;10709:104;:::i;:::-;10700:113;;10539:281;;;;:::o;10826:410::-;10866:7;10889:20;10907:1;10889:20;:::i;:::-;10884:25;;10923:20;10941:1;10923:20;:::i;:::-;10918:25;;10978:1;10975;10971:9;11000:30;11018:11;11000:30;:::i;:::-;10989:41;;11179:1;11170:7;11166:15;11163:1;11160:22;11140:1;11133:9;11113:83;11090:139;;11209:18;;:::i;:::-;11090:139;10874:362;10826:410;;;;:::o;11242:60::-;11270:3;11291:5;11284:12;;11242:60;;;:::o;11308:142::-;11358:9;11391:53;11409:34;11418:24;11436:5;11418:24;:::i;:::-;11409:34;:::i;:::-;11391:53;:::i;:::-;11378:66;;11308:142;;;:::o;11456:126::-;11506:9;11539:37;11570:5;11539:37;:::i;:::-;11526:50;;11456:126;;;:::o;11588:134::-;11646:9;11679:37;11710:5;11679:37;:::i;:::-;11666:50;;11588:134;;;:::o;11728:147::-;11823:45;11862:5;11823:45;:::i;:::-;11818:3;11811:58;11728:147;;:::o;11881:348::-;12010:4;12048:2;12037:9;12033:18;12025:26;;12061:79;12137:1;12126:9;12122:17;12113:6;12061:79;:::i;:::-;12150:72;12218:2;12207:9;12203:18;12194:6;12150:72;:::i;:::-;11881:348;;;;;:::o;12235:116::-;12305:21;12320:5;12305:21;:::i;:::-;12298:5;12295:32;12285:60;;12341:1;12338;12331:12;12285:60;12235:116;:::o;12357:137::-;12411:5;12442:6;12436:13;12427:22;;12458:30;12482:5;12458:30;:::i;:::-;12357:137;;;;:::o;12500:345::-;12567:6;12616:2;12604:9;12595:7;12591:23;12587:32;12584:119;;;12622:79;;:::i;:::-;12584:119;12742:1;12767:61;12820:7;12811:6;12800:9;12796:22;12767:61;:::i;:::-;12757:71;;12713:125;12500:345;;;;:::o;12851:173::-;12991:25;12987:1;12979:6;12975:14;12968:49;12851:173;:::o;13030:366::-;13172:3;13193:67;13257:2;13252:3;13193:67;:::i;:::-;13186:74;;13269:93;13358:3;13269:93;:::i;:::-;13387:2;13382:3;13378:12;13371:19;;13030:366;;;:::o;13402:419::-;13568:4;13606:2;13595:9;13591:18;13583:26;;13655:9;13649:4;13645:20;13641:1;13630:9;13626:17;13619:47;13683:131;13809:4;13683:131;:::i;:::-;13675:139;;13402:419;;;:::o;13827:85::-;13872:7;13901:5;13890:16;;13827:85;;;:::o;13918:158::-;13976:9;14009:61;14027:42;14036:32;14062:5;14036:32;:::i;:::-;14027:42;:::i;:::-;14009:61;:::i;:::-;13996:74;;13918:158;;;:::o;14082:147::-;14177:45;14216:5;14177:45;:::i;:::-;14172:3;14165:58;14082:147;;:::o;14235:807::-;14484:4;14522:3;14511:9;14507:19;14499:27;;14536:71;14604:1;14593:9;14589:17;14580:6;14536:71;:::i;:::-;14617:72;14685:2;14674:9;14670:18;14661:6;14617:72;:::i;:::-;14699:80;14775:2;14764:9;14760:18;14751:6;14699:80;:::i;:::-;14789;14865:2;14854:9;14850:18;14841:6;14789:80;:::i;:::-;14879:73;14947:3;14936:9;14932:19;14923:6;14879:73;:::i;:::-;14962;15030:3;15019:9;15015:19;15006:6;14962:73;:::i;:::-;14235:807;;;;;;;;;:::o;15048:143::-;15105:5;15136:6;15130:13;15121:22;;15152:33;15179:5;15152:33;:::i;:::-;15048:143;;;;:::o;15197:663::-;15285:6;15293;15301;15350:2;15338:9;15329:7;15325:23;15321:32;15318:119;;;15356:79;;:::i;:::-;15318:119;15476:1;15501:64;15557:7;15548:6;15537:9;15533:22;15501:64;:::i;:::-;15491:74;;15447:128;15614:2;15640:64;15696:7;15687:6;15676:9;15672:22;15640:64;:::i;:::-;15630:74;;15585:129;15753:2;15779:64;15835:7;15826:6;15815:9;15811:22;15779:64;:::i;:::-;15769:74;;15724:129;15197:663;;;;;:::o;15866:223::-;16006:34;16002:1;15994:6;15990:14;15983:58;16075:6;16070:2;16062:6;16058:15;16051:31;15866:223;:::o;16095:366::-;16237:3;16258:67;16322:2;16317:3;16258:67;:::i;:::-;16251:74;;16334:93;16423:3;16334:93;:::i;:::-;16452:2;16447:3;16443:12;16436:19;;16095:366;;;:::o;16467:419::-;16633:4;16671:2;16660:9;16656:18;16648:26;;16720:9;16714:4;16710:20;16706:1;16695:9;16691:17;16684:47;16748:131;16874:4;16748:131;:::i;:::-;16740:139;;16467:419;;;:::o;16892:221::-;17032:34;17028:1;17020:6;17016:14;17009:58;17101:4;17096:2;17088:6;17084:15;17077:29;16892:221;:::o;17119:366::-;17261:3;17282:67;17346:2;17341:3;17282:67;:::i;:::-;17275:74;;17358:93;17447:3;17358:93;:::i;:::-;17476:2;17471:3;17467:12;17460:19;;17119:366;;;:::o;17491:419::-;17657:4;17695:2;17684:9;17680:18;17672:26;;17744:9;17738:4;17734:20;17730:1;17719:9;17715:17;17708:47;17772:131;17898:4;17772:131;:::i;:::-;17764:139;;17491:419;;;:::o;17916:180::-;17964:77;17961:1;17954:88;18061:4;18058:1;18051:15;18085:4;18082:1;18075:15;18102:180;18150:77;18147:1;18140:88;18247:4;18244:1;18237:15;18271:4;18268:1;18261:15;18288:143;18345:5;18376:6;18370:13;18361:22;;18392:33;18419:5;18392:33;:::i;:::-;18288:143;;;;:::o;18437:351::-;18507:6;18556:2;18544:9;18535:7;18531:23;18527:32;18524:119;;;18562:79;;:::i;:::-;18524:119;18682:1;18707:64;18763:7;18754:6;18743:9;18739:22;18707:64;:::i;:::-;18697:74;;18653:128;18437:351;;;;:::o;18794:114::-;18861:6;18895:5;18889:12;18879:22;;18794:114;;;:::o;18914:184::-;19013:11;19047:6;19042:3;19035:19;19087:4;19082:3;19078:14;19063:29;;18914:184;;;;:::o;19104:132::-;19171:4;19194:3;19186:11;;19224:4;19219:3;19215:14;19207:22;;19104:132;;;:::o;19242:108::-;19319:24;19337:5;19319:24;:::i;:::-;19314:3;19307:37;19242:108;;:::o;19356:179::-;19425:10;19446:46;19488:3;19480:6;19446:46;:::i;:::-;19524:4;19519:3;19515:14;19501:28;;19356:179;;;;:::o;19541:113::-;19611:4;19643;19638:3;19634:14;19626:22;;19541:113;;;:::o;19690:732::-;19809:3;19838:54;19886:5;19838:54;:::i;:::-;19908:86;19987:6;19982:3;19908:86;:::i;:::-;19901:93;;20018:56;20068:5;20018:56;:::i;:::-;20097:7;20128:1;20113:284;20138:6;20135:1;20132:13;20113:284;;;20214:6;20208:13;20241:63;20300:3;20285:13;20241:63;:::i;:::-;20234:70;;20327:60;20380:6;20327:60;:::i;:::-;20317:70;;20173:224;20160:1;20157;20153:9;20148:14;;20113:284;;;20117:14;20413:3;20406:10;;19814:608;;;19690:732;;;;:::o;20428:831::-;20691:4;20729:3;20718:9;20714:19;20706:27;;20743:71;20811:1;20800:9;20796:17;20787:6;20743:71;:::i;:::-;20824:80;20900:2;20889:9;20885:18;20876:6;20824:80;:::i;:::-;20951:9;20945:4;20941:20;20936:2;20925:9;20921:18;20914:48;20979:108;21082:4;21073:6;20979:108;:::i;:::-;20971:116;;21097:72;21165:2;21154:9;21150:18;21141:6;21097:72;:::i;:::-;21179:73;21247:3;21236:9;21232:19;21223:6;21179:73;:::i;:::-;20428:831;;;;;;;;:::o;21265:224::-;21405:34;21401:1;21393:6;21389:14;21382:58;21474:7;21469:2;21461:6;21457:15;21450:32;21265:224;:::o;21495:366::-;21637:3;21658:67;21722:2;21717:3;21658:67;:::i;:::-;21651:74;;21734:93;21823:3;21734:93;:::i;:::-;21852:2;21847:3;21843:12;21836:19;;21495:366;;;:::o;21867:419::-;22033:4;22071:2;22060:9;22056:18;22048:26;;22120:9;22114:4;22110:20;22106:1;22095:9;22091:17;22084:47;22148:131;22274:4;22148:131;:::i;:::-;22140:139;;21867:419;;;:::o;22292:222::-;22432:34;22428:1;22420:6;22416:14;22409:58;22501:5;22496:2;22488:6;22484:15;22477:30;22292:222;:::o;22520:366::-;22662:3;22683:67;22747:2;22742:3;22683:67;:::i;:::-;22676:74;;22759:93;22848:3;22759:93;:::i;:::-;22877:2;22872:3;22868:12;22861:19;;22520:366;;;:::o;22892:419::-;23058:4;23096:2;23085:9;23081:18;23073:26;;23145:9;23139:4;23135:20;23131:1;23120:9;23116:17;23109:47;23173:131;23299:4;23173:131;:::i;:::-;23165:139;;22892:419;;;:::o;23317:228::-;23457:34;23453:1;23445:6;23441:14;23434:58;23526:11;23521:2;23513:6;23509:15;23502:36;23317:228;:::o;23551:366::-;23693:3;23714:67;23778:2;23773:3;23714:67;:::i;:::-;23707:74;;23790:93;23879:3;23790:93;:::i;:::-;23908:2;23903:3;23899:12;23892:19;;23551:366;;;:::o;23923:419::-;24089:4;24127:2;24116:9;24112:18;24104:26;;24176:9;24170:4;24166:20;24162:1;24151:9;24147:17;24140:47;24204:131;24330:4;24204:131;:::i;:::-;24196:139;;23923:419;;;:::o;24348:174::-;24488:26;24484:1;24476:6;24472:14;24465:50;24348:174;:::o;24528:366::-;24670:3;24691:67;24755:2;24750:3;24691:67;:::i;:::-;24684:74;;24767:93;24856:3;24767:93;:::i;:::-;24885:2;24880:3;24876:12;24869:19;;24528:366;;;:::o;24900:419::-;25066:4;25104:2;25093:9;25089:18;25081:26;;25153:9;25147:4;25143:20;25139:1;25128:9;25124:17;25117:47;25181:131;25307:4;25181:131;:::i;:::-;25173:139;;24900:419;;;:::o;25325:191::-;25365:3;25384:20;25402:1;25384:20;:::i;:::-;25379:25;;25418:20;25436:1;25418:20;:::i;:::-;25413:25;;25461:1;25458;25454:9;25447:16;;25482:3;25479:1;25476:10;25473:36;;;25489:18;;:::i;:::-;25473:36;25325:191;;;;:::o;25522:176::-;25662:28;25658:1;25650:6;25646:14;25639:52;25522:176;:::o;25704:366::-;25846:3;25867:67;25931:2;25926:3;25867:67;:::i;:::-;25860:74;;25943:93;26032:3;25943:93;:::i;:::-;26061:2;26056:3;26052:12;26045:19;;25704:366;;;:::o;26076:419::-;26242:4;26280:2;26269:9;26265:18;26257:26;;26329:9;26323:4;26319:20;26315:1;26304:9;26300:17;26293:47;26357:131;26483:4;26357:131;:::i;:::-;26349:139;;26076:419;;;:::o;26501:233::-;26540:3;26563:24;26581:5;26563:24;:::i;:::-;26554:33;;26609:66;26602:5;26599:77;26596:103;;26679:18;;:::i;:::-;26596:103;26726:1;26719:5;26715:13;26708:20;;26501:233;;;:::o;26740:173::-;26880:25;26876:1;26868:6;26864:14;26857:49;26740:173;:::o;26919:366::-;27061:3;27082:67;27146:2;27141:3;27082:67;:::i;:::-;27075:74;;27158:93;27247:3;27158:93;:::i;:::-;27276:2;27271:3;27267:12;27260:19;;26919:366;;;:::o;27291:419::-;27457:4;27495:2;27484:9;27480:18;27472:26;;27544:9;27538:4;27534:20;27530:1;27519:9;27515:17;27508:47;27572:131;27698:4;27572:131;:::i;:::-;27564:139;;27291:419;;;:::o;27716:194::-;27756:4;27776:20;27794:1;27776:20;:::i;:::-;27771:25;;27810:20;27828:1;27810:20;:::i;:::-;27805:25;;27854:1;27851;27847:9;27839:17;;27878:1;27872:4;27869:11;27866:37;;;27883:18;;:::i;:::-;27866:37;27716:194;;;;:::o;27916:180::-;27964:77;27961:1;27954:88;28061:4;28058:1;28051:15;28085:4;28082:1;28075:15;28102:185;28142:1;28159:20;28177:1;28159:20;:::i;:::-;28154:25;;28193:20;28211:1;28193:20;:::i;:::-;28188:25;;28232:1;28222:35;;28237:18;;:::i;:::-;28222:35;28279:1;28276;28272:9;28267:14;;28102:185;;;;:::o;28293:220::-;28433:34;28429:1;28421:6;28417:14;28410:58;28502:3;28497:2;28489:6;28485:15;28478:28;28293:220;:::o;28519:366::-;28661:3;28682:67;28746:2;28741:3;28682:67;:::i;:::-;28675:74;;28758:93;28847:3;28758:93;:::i;:::-;28876:2;28871:3;28867:12;28860:19;;28519:366;;;:::o;28891:419::-;29057:4;29095:2;29084:9;29080:18;29072:26;;29144:9;29138:4;29134:20;29130:1;29119:9;29115:17;29108:47;29172:131;29298:4;29172:131;:::i;:::-;29164:139;;28891:419;;;:::o;29316:177::-;29456:29;29452:1;29444:6;29440:14;29433:53;29316:177;:::o;29499:366::-;29641:3;29662:67;29726:2;29721:3;29662:67;:::i;:::-;29655:74;;29738:93;29827:3;29738:93;:::i;:::-;29856:2;29851:3;29847:12;29840:19;;29499:366;;;:::o;29871:419::-;30037:4;30075:2;30064:9;30060:18;30052:26;;30124:9;30118:4;30114:20;30110:1;30099:9;30095:17;30088:47;30152:131;30278:4;30152:131;:::i;:::-;30144:139;;29871:419;;;:::o
Swarm Source
ipfs://f986f48ca2abe607b6ea7d3d0ac2c252dca0aa4bceba24b286494a57257cc4fd
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.