Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000,000 SCHIFF
Holders
51
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0 SCHIFFValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
PeterSchiffCoin
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-09-27 */ /** *Submitted for verification at Etherscan.io on 2022-09-26 */ // SPDX-License-Identifier: Unlicensed /** https://t.me/PeterSchiffEntryPortal Tax 6% 3% Marketing 3% Operation Tax */ pragma solidity ^0.8.7; 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 ); } 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); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } 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; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract PeterSchiffCoin is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "PETER SCHIFF COIN";// string private constant _symbol = "SCHIFF";// uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 100000000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; //Buy Fee uint256 private _redisFeeOnBuy = 0;// uint256 private _taxFeeOnBuy = 6;// //Sell Fee uint256 private _redisFeeOnSell = 0;// uint256 private _taxFeeOnSell = 6;// //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping(address => bool) public bots; mapping(address => uint256) private cooldown; address payable private _developmentAddress = payable(0xDC11bDBd8Df72138b8B779625B87F609b25E9995); address payable private _marketingAddress = payable(0xDC11bDBd8Df72138b8B779625B87F609b25E9995); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 1000000000 * 10**9; // uint256 public _maxWalletSize = 2000000000 * 10**9; // uint256 public _swapTokensAtAmount = 1000000000 * 10**9; // event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);// uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_developmentAddress] = true; _isExcludedFromFee[_marketingAddress] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[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 tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } 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"); if (from != owner() && to != owner()) { //Trade start check if (!tradingOpen) { require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled"); } require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount <= _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } bool takeFee = true; //Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { //Set Fee for Buys if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } 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 sendETHToFee(uint256 amount) private { _developmentAddress.transfer(amount.div(2)); _marketingAddress.transfer(amount.div(2)); } function setTrading(bool _tradingOpen) public onlyOwner { tradingOpen = _tradingOpen; } function manualswap() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } //Can Increase Max Limits after renounce . Cannot Lower function increaseLimits(uint256 maxTxAmount_, uint256 maxWalletSize_) public { require(_msgSender() == _developmentAddress); require(maxTxAmount_ > _maxTxAmount && maxTxAmount_ <= totalSupply(), "Out of range"); require(maxWalletSize_ > _maxWalletSize && maxWalletSize_ <= totalSupply(), "Out of range"); _maxTxAmount = maxTxAmount_; _maxWalletSize = maxWalletSize_; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } }
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":"_maxTxAmount","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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","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":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount_","type":"uint256"},{"internalType":"uint256","name":"maxWalletSize_","type":"uint256"}],"name":"increaseLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405268056bc75e2d631000006000196200001d91906200083a565b6000196200002c9190620007c1565b6005556000600755600660085560006009556006600a55600954600b55600a54600c55600b54600d55600c54600e5573dc11bdbd8df72138b8b779625b87f609b25e9995601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073dc11bdbd8df72138b8b779625b87f609b25e9995601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601460156101000a81548160ff0219169083151502179055506001601460166101000a81548160ff021916908315150217905550670de0b6b3a7640000601555671bc16d674ec80000601655670de0b6b3a76400006017553480156200016c57600080fd5b5060006200017f620006db60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506005546001600062000234620006db60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200031357600080fd5b505afa15801562000328573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034e919062000723565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003b157600080fd5b505afa158015620003c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ec919062000723565b6040518363ffffffff1660e01b81526004016200040b92919062000777565b602060405180830381600087803b1580156200042657600080fd5b505af11580156200043b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000461919062000723565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000620004b7620006e360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000664620006db60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef68056bc75e2d63100000604051620006cc9190620007a4565b60405180910390a350620008ef565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000815190506200071d81620008d5565b92915050565b6000602082840312156200073c576200073b620008d0565b5b60006200074c848285016200070c565b91505092915050565b6200076081620007fc565b82525050565b620007718162000830565b82525050565b60006040820190506200078e600083018562000755565b6200079d602083018462000755565b9392505050565b6000602082019050620007bb600083018462000766565b92915050565b6000620007ce8262000830565b9150620007db8362000830565b925082821015620007f157620007f062000872565b5b828203905092915050565b6000620008098262000810565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000620008478262000830565b9150620008548362000830565b925082620008675762000866620008a1565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b620008e081620007fc565b8114620008ec57600080fd5b50565b6138d780620008ff6000396000f3fe60806040526004361061016a5760003560e01c806378f8484b116100d157806398a5c3151161008a578063c3c8cd8011610064578063c3c8cd8014610527578063c492f0461461053e578063dd62ed3e14610567578063f2fde38b146105a457610171565b806398a5c31514610484578063a9059cbb146104ad578063bfd79284146104ea57610171565b806378f8484b146103865780637d1db4a5146103af5780638da5cb5b146103da5780638f70ccf7146104055780638f9a55c01461042e57806395d89b411461045957610171565b8063313ce56711610123578063313ce5671461029c57806349bd5a5e146102c75780636d8aa8f8146102f25780636fc3eaec1461031b57806370a0823114610332578063715018a61461036f57610171565b806306fdde0314610176578063095ea7b3146101a15780631694505e146101de57806318160ddd1461020957806323b872dd146102345780632fd689e31461027157610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105cd565b6040516101989190612e30565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612980565b61060a565b6040516101d59190612dfa565b60405180910390f35b3480156101ea57600080fd5b506101f3610628565b6040516102009190612e15565b60405180910390f35b34801561021557600080fd5b5061021e61064e565b60405161022b9190613032565b60405180910390f35b34801561024057600080fd5b5061025b6004803603810190610256919061292d565b61065f565b6040516102689190612dfa565b60405180910390f35b34801561027d57600080fd5b50610286610738565b6040516102939190613032565b60405180910390f35b3480156102a857600080fd5b506102b161073e565b6040516102be91906130a7565b60405180910390f35b3480156102d357600080fd5b506102dc610747565b6040516102e99190612ddf565b60405180910390f35b3480156102fe57600080fd5b5061031960048036038101906103149190612a20565b61076d565b005b34801561032757600080fd5b5061033061081f565b005b34801561033e57600080fd5b5061035960048036038101906103549190612893565b6108f0565b6040516103669190613032565b60405180910390f35b34801561037b57600080fd5b50610384610941565b005b34801561039257600080fd5b506103ad60048036038101906103a89190612a7a565b610a94565b005b3480156103bb57600080fd5b506103c4610bb5565b6040516103d19190613032565b60405180910390f35b3480156103e657600080fd5b506103ef610bbb565b6040516103fc9190612ddf565b60405180910390f35b34801561041157600080fd5b5061042c60048036038101906104279190612a20565b610be4565b005b34801561043a57600080fd5b50610443610c95565b6040516104509190613032565b60405180910390f35b34801561046557600080fd5b5061046e610c9b565b60405161047b9190612e30565b60405180910390f35b34801561049057600080fd5b506104ab60048036038101906104a69190612a4d565b610cd8565b005b3480156104b957600080fd5b506104d460048036038101906104cf9190612980565b610d77565b6040516104e19190612dfa565b60405180910390f35b3480156104f657600080fd5b50610511600480360381019061050c9190612893565b610d95565b60405161051e9190612dfa565b60405180910390f35b34801561053357600080fd5b5061053c610db5565b005b34801561054a57600080fd5b50610565600480360381019061056091906129c0565b610e8e565b005b34801561057357600080fd5b5061058e600480360381019061058991906128ed565b610fc8565b60405161059b9190613032565b60405180910390f35b3480156105b057600080fd5b506105cb60048036038101906105c69190612893565b61104f565b005b60606040518060400160405280601181526020017f50455445522053434849464620434f494e000000000000000000000000000000815250905090565b600061061e610617611211565b8484611219565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600068056bc75e2d63100000905090565b600061066c8484846113e4565b61072d84610678611211565b6107288560405180606001604052806028815260200161387a60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106de611211565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c6a9092919063ffffffff16565b611219565b600190509392505050565b60175481565b60006009905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610775611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610802576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f990612f72565b60405180910390fd5b80601460166101000a81548160ff02191690831515021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610860611211565b73ffffffffffffffffffffffffffffffffffffffff1614806108d65750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108be611211565b73ffffffffffffffffffffffffffffffffffffffff16145b6108df57600080fd5b60004790506108ed81611cce565b50565b600061093a600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dc9565b9050919050565b610949611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cd90612f72565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ad5611211565b73ffffffffffffffffffffffffffffffffffffffff1614610af557600080fd5b60155482118015610b0d5750610b0961064e565b8211155b610b4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4390612ff2565b60405180910390fd5b60165481118015610b645750610b6061064e565b8111155b610ba3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9a90612ff2565b60405180910390fd5b81601581905550806016819055505050565b60155481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610bec611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7090612f72565b60405180910390fd5b806014806101000a81548160ff02191690831515021790555050565b60165481565b60606040518060400160405280600681526020017f5343484946460000000000000000000000000000000000000000000000000000815250905090565b610ce0611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6490612f72565b60405180910390fd5b8060178190555050565b6000610d8b610d84611211565b84846113e4565b6001905092915050565b600f6020528060005260406000206000915054906101000a900460ff1681565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610df6611211565b73ffffffffffffffffffffffffffffffffffffffff161480610e6c5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e54611211565b73ffffffffffffffffffffffffffffffffffffffff16145b610e7557600080fd5b6000610e80306108f0565b9050610e8b81611e37565b50565b610e96611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1a90612f72565b60405180910390fd5b60005b83839050811015610fc2578160046000868685818110610f4957610f486133a3565b5b9050602002016020810190610f5e9190612893565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610fba906132fc565b915050610f26565b50505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611057611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110db90612f72565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114b90612ed2565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611289576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128090613012565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f090612ef2565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113d79190613032565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611454576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144b90612fb2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bb90612e52565b60405180910390fd5b60008111611507576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fe90612f92565b60405180910390fd5b61150f610bbb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561157d575061154d610bbb565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156119695760148054906101000a900460ff1661160a5761159c610bbb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611609576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160090612e72565b60405180910390fd5b5b60155481111561164f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164690612eb2565b60405180910390fd5b600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116f35750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172990612f12565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146117e05760165481611794846108f0565b61179e9190613117565b11156117df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d690612fd2565b60405180910390fd5b5b60006117eb306108f0565b90506000601754821015905060155482106118065760155491505b8080156118205750601460159054906101000a900460ff16155b801561187a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118925750601460169054906101000a900460ff165b80156118e85750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561193e5750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119665761194c82611e37565b600047905060008111156119645761196347611cce565b5b505b50505b600060019050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a105750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611ac35750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ac25750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611ad15760009050611c58565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b7c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b9457600754600b81905550600854600c819055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c3f5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611c5757600954600b81905550600a54600c819055505b5b611c64848484846120bf565b50505050565b6000838311158290611cb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca99190612e30565b60405180910390fd5b5060008385611cc191906131f8565b9050809150509392505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d1e6002846120ec90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611d49573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d9a6002846120ec90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611dc5573d6000803e3d6000fd5b5050565b6000600554821115611e10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0790612e92565b60405180910390fd5b6000611e1a612136565b9050611e2f81846120ec90919063ffffffff16565b915050919050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e6f57611e6e6133d2565b5b604051908082528060200260200182016040528015611e9d5781602001602082028036833780820191505090505b5090503081600081518110611eb557611eb46133a3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611f5757600080fd5b505afa158015611f6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f8f91906128c0565b81600181518110611fa357611fa26133a3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061200a30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611219565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161206e95949392919061304d565b600060405180830381600087803b15801561208857600080fd5b505af115801561209c573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b806120cd576120cc612161565b5b6120d88484846121a4565b806120e6576120e561236f565b5b50505050565b600061212e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612383565b905092915050565b60008060006121436123e6565b9150915061215a81836120ec90919063ffffffff16565b9250505090565b6000600b5414801561217557506000600c54145b1561217f576121a2565b600b54600d81905550600c54600e819055506000600b819055506000600c819055505b565b6000806000806000806121b687612448565b95509550955095509550955061221486600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b090919063ffffffff16565b600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122a985600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124fa90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122f581612558565b6122ff8483612615565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161235c9190613032565b60405180910390a3505050505050505050565b600d54600b81905550600e54600c81905550565b600080831182906123ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c19190612e30565b60405180910390fd5b50600083856123d9919061316d565b9050809150509392505050565b60008060006005549050600068056bc75e2d63100000905061241c68056bc75e2d631000006005546120ec90919063ffffffff16565b82101561243b5760055468056bc75e2d63100000935093505050612444565b81819350935050505b9091565b60008060008060008060008060006124658a600b54600c5461264f565b9250925092506000612475612136565b905060008060006124888e8787876126e5565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006124f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c6a565b905092915050565b60008082846125099190613117565b90508381101561254e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254590612f32565b60405180910390fd5b8091505092915050565b6000612562612136565b90506000612579828461276e90919063ffffffff16565b90506125cd81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124fa90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61262a826005546124b090919063ffffffff16565b600581905550612645816006546124fa90919063ffffffff16565b6006819055505050565b60008060008061267b606461266d888a61276e90919063ffffffff16565b6120ec90919063ffffffff16565b905060006126a56064612697888b61276e90919063ffffffff16565b6120ec90919063ffffffff16565b905060006126ce826126c0858c6124b090919063ffffffff16565b6124b090919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806126fe858961276e90919063ffffffff16565b90506000612715868961276e90919063ffffffff16565b9050600061272c878961276e90919063ffffffff16565b905060006127558261274785876124b090919063ffffffff16565b6124b090919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561278157600090506127e3565b6000828461278f919061319e565b905082848261279e919061316d565b146127de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d590612f52565b60405180910390fd5b809150505b92915050565b6000813590506127f881613834565b92915050565b60008151905061280d81613834565b92915050565b60008083601f84011261282957612828613406565b5b8235905067ffffffffffffffff81111561284657612845613401565b5b6020830191508360208202830111156128625761286161340b565b5b9250929050565b6000813590506128788161384b565b92915050565b60008135905061288d81613862565b92915050565b6000602082840312156128a9576128a8613415565b5b60006128b7848285016127e9565b91505092915050565b6000602082840312156128d6576128d5613415565b5b60006128e4848285016127fe565b91505092915050565b6000806040838503121561290457612903613415565b5b6000612912858286016127e9565b9250506020612923858286016127e9565b9150509250929050565b60008060006060848603121561294657612945613415565b5b6000612954868287016127e9565b9350506020612965868287016127e9565b92505060406129768682870161287e565b9150509250925092565b6000806040838503121561299757612996613415565b5b60006129a5858286016127e9565b92505060206129b68582860161287e565b9150509250929050565b6000806000604084860312156129d9576129d8613415565b5b600084013567ffffffffffffffff8111156129f7576129f6613410565b5b612a0386828701612813565b93509350506020612a1686828701612869565b9150509250925092565b600060208284031215612a3657612a35613415565b5b6000612a4484828501612869565b91505092915050565b600060208284031215612a6357612a62613415565b5b6000612a718482850161287e565b91505092915050565b60008060408385031215612a9157612a90613415565b5b6000612a9f8582860161287e565b9250506020612ab08582860161287e565b9150509250929050565b6000612ac68383612ad2565b60208301905092915050565b612adb8161322c565b82525050565b612aea8161322c565b82525050565b6000612afb826130d2565b612b0581856130f5565b9350612b10836130c2565b8060005b83811015612b41578151612b288882612aba565b9750612b33836130e8565b925050600181019050612b14565b5085935050505092915050565b612b578161323e565b82525050565b612b6681613281565b82525050565b612b7581613293565b82525050565b6000612b86826130dd565b612b908185613106565b9350612ba08185602086016132c9565b612ba98161341a565b840191505092915050565b6000612bc1602383613106565b9150612bcc8261342b565b604082019050919050565b6000612be4603f83613106565b9150612bef8261347a565b604082019050919050565b6000612c07602a83613106565b9150612c12826134c9565b604082019050919050565b6000612c2a601c83613106565b9150612c3582613518565b602082019050919050565b6000612c4d602683613106565b9150612c5882613541565b604082019050919050565b6000612c70602283613106565b9150612c7b82613590565b604082019050919050565b6000612c93602383613106565b9150612c9e826135df565b604082019050919050565b6000612cb6601b83613106565b9150612cc18261362e565b602082019050919050565b6000612cd9602183613106565b9150612ce482613657565b604082019050919050565b6000612cfc602083613106565b9150612d07826136a6565b602082019050919050565b6000612d1f602983613106565b9150612d2a826136cf565b604082019050919050565b6000612d42602583613106565b9150612d4d8261371e565b604082019050919050565b6000612d65602383613106565b9150612d708261376d565b604082019050919050565b6000612d88600c83613106565b9150612d93826137bc565b602082019050919050565b6000612dab602483613106565b9150612db6826137e5565b604082019050919050565b612dca8161326a565b82525050565b612dd981613274565b82525050565b6000602082019050612df46000830184612ae1565b92915050565b6000602082019050612e0f6000830184612b4e565b92915050565b6000602082019050612e2a6000830184612b5d565b92915050565b60006020820190508181036000830152612e4a8184612b7b565b905092915050565b60006020820190508181036000830152612e6b81612bb4565b9050919050565b60006020820190508181036000830152612e8b81612bd7565b9050919050565b60006020820190508181036000830152612eab81612bfa565b9050919050565b60006020820190508181036000830152612ecb81612c1d565b9050919050565b60006020820190508181036000830152612eeb81612c40565b9050919050565b60006020820190508181036000830152612f0b81612c63565b9050919050565b60006020820190508181036000830152612f2b81612c86565b9050919050565b60006020820190508181036000830152612f4b81612ca9565b9050919050565b60006020820190508181036000830152612f6b81612ccc565b9050919050565b60006020820190508181036000830152612f8b81612cef565b9050919050565b60006020820190508181036000830152612fab81612d12565b9050919050565b60006020820190508181036000830152612fcb81612d35565b9050919050565b60006020820190508181036000830152612feb81612d58565b9050919050565b6000602082019050818103600083015261300b81612d7b565b9050919050565b6000602082019050818103600083015261302b81612d9e565b9050919050565b60006020820190506130476000830184612dc1565b92915050565b600060a0820190506130626000830188612dc1565b61306f6020830187612b6c565b81810360408301526130818186612af0565b90506130906060830185612ae1565b61309d6080830184612dc1565b9695505050505050565b60006020820190506130bc6000830184612dd0565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006131228261326a565b915061312d8361326a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561316257613161613345565b5b828201905092915050565b60006131788261326a565b91506131838361326a565b92508261319357613192613374565b5b828204905092915050565b60006131a98261326a565b91506131b48361326a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131ed576131ec613345565b5b828202905092915050565b60006132038261326a565b915061320e8361326a565b92508282101561322157613220613345565b5b828203905092915050565b60006132378261324a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061328c826132a5565b9050919050565b600061329e8261326a565b9050919050565b60006132b0826132b7565b9050919050565b60006132c28261324a565b9050919050565b60005b838110156132e75780820151818401526020810190506132cc565b838111156132f6576000848401525b50505050565b60006133078261326a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561333a57613339613345565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f4f7574206f662072616e67650000000000000000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61383d8161322c565b811461384857600080fd5b50565b6138548161323e565b811461385f57600080fd5b50565b61386b8161326a565b811461387657600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204fa29412f96fddc875075232097fdf9dffa68ae6a78a5b2717ecb6ddc4d820fc64736f6c63430008070033
Deployed Bytecode
0x60806040526004361061016a5760003560e01c806378f8484b116100d157806398a5c3151161008a578063c3c8cd8011610064578063c3c8cd8014610527578063c492f0461461053e578063dd62ed3e14610567578063f2fde38b146105a457610171565b806398a5c31514610484578063a9059cbb146104ad578063bfd79284146104ea57610171565b806378f8484b146103865780637d1db4a5146103af5780638da5cb5b146103da5780638f70ccf7146104055780638f9a55c01461042e57806395d89b411461045957610171565b8063313ce56711610123578063313ce5671461029c57806349bd5a5e146102c75780636d8aa8f8146102f25780636fc3eaec1461031b57806370a0823114610332578063715018a61461036f57610171565b806306fdde0314610176578063095ea7b3146101a15780631694505e146101de57806318160ddd1461020957806323b872dd146102345780632fd689e31461027157610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105cd565b6040516101989190612e30565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612980565b61060a565b6040516101d59190612dfa565b60405180910390f35b3480156101ea57600080fd5b506101f3610628565b6040516102009190612e15565b60405180910390f35b34801561021557600080fd5b5061021e61064e565b60405161022b9190613032565b60405180910390f35b34801561024057600080fd5b5061025b6004803603810190610256919061292d565b61065f565b6040516102689190612dfa565b60405180910390f35b34801561027d57600080fd5b50610286610738565b6040516102939190613032565b60405180910390f35b3480156102a857600080fd5b506102b161073e565b6040516102be91906130a7565b60405180910390f35b3480156102d357600080fd5b506102dc610747565b6040516102e99190612ddf565b60405180910390f35b3480156102fe57600080fd5b5061031960048036038101906103149190612a20565b61076d565b005b34801561032757600080fd5b5061033061081f565b005b34801561033e57600080fd5b5061035960048036038101906103549190612893565b6108f0565b6040516103669190613032565b60405180910390f35b34801561037b57600080fd5b50610384610941565b005b34801561039257600080fd5b506103ad60048036038101906103a89190612a7a565b610a94565b005b3480156103bb57600080fd5b506103c4610bb5565b6040516103d19190613032565b60405180910390f35b3480156103e657600080fd5b506103ef610bbb565b6040516103fc9190612ddf565b60405180910390f35b34801561041157600080fd5b5061042c60048036038101906104279190612a20565b610be4565b005b34801561043a57600080fd5b50610443610c95565b6040516104509190613032565b60405180910390f35b34801561046557600080fd5b5061046e610c9b565b60405161047b9190612e30565b60405180910390f35b34801561049057600080fd5b506104ab60048036038101906104a69190612a4d565b610cd8565b005b3480156104b957600080fd5b506104d460048036038101906104cf9190612980565b610d77565b6040516104e19190612dfa565b60405180910390f35b3480156104f657600080fd5b50610511600480360381019061050c9190612893565b610d95565b60405161051e9190612dfa565b60405180910390f35b34801561053357600080fd5b5061053c610db5565b005b34801561054a57600080fd5b50610565600480360381019061056091906129c0565b610e8e565b005b34801561057357600080fd5b5061058e600480360381019061058991906128ed565b610fc8565b60405161059b9190613032565b60405180910390f35b3480156105b057600080fd5b506105cb60048036038101906105c69190612893565b61104f565b005b60606040518060400160405280601181526020017f50455445522053434849464620434f494e000000000000000000000000000000815250905090565b600061061e610617611211565b8484611219565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600068056bc75e2d63100000905090565b600061066c8484846113e4565b61072d84610678611211565b6107288560405180606001604052806028815260200161387a60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106de611211565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c6a9092919063ffffffff16565b611219565b600190509392505050565b60175481565b60006009905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610775611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610802576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f990612f72565b60405180910390fd5b80601460166101000a81548160ff02191690831515021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610860611211565b73ffffffffffffffffffffffffffffffffffffffff1614806108d65750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108be611211565b73ffffffffffffffffffffffffffffffffffffffff16145b6108df57600080fd5b60004790506108ed81611cce565b50565b600061093a600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dc9565b9050919050565b610949611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cd90612f72565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ad5611211565b73ffffffffffffffffffffffffffffffffffffffff1614610af557600080fd5b60155482118015610b0d5750610b0961064e565b8211155b610b4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4390612ff2565b60405180910390fd5b60165481118015610b645750610b6061064e565b8111155b610ba3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9a90612ff2565b60405180910390fd5b81601581905550806016819055505050565b60155481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610bec611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7090612f72565b60405180910390fd5b806014806101000a81548160ff02191690831515021790555050565b60165481565b60606040518060400160405280600681526020017f5343484946460000000000000000000000000000000000000000000000000000815250905090565b610ce0611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6490612f72565b60405180910390fd5b8060178190555050565b6000610d8b610d84611211565b84846113e4565b6001905092915050565b600f6020528060005260406000206000915054906101000a900460ff1681565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610df6611211565b73ffffffffffffffffffffffffffffffffffffffff161480610e6c5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e54611211565b73ffffffffffffffffffffffffffffffffffffffff16145b610e7557600080fd5b6000610e80306108f0565b9050610e8b81611e37565b50565b610e96611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1a90612f72565b60405180910390fd5b60005b83839050811015610fc2578160046000868685818110610f4957610f486133a3565b5b9050602002016020810190610f5e9190612893565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610fba906132fc565b915050610f26565b50505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611057611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110db90612f72565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114b90612ed2565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611289576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128090613012565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f090612ef2565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113d79190613032565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611454576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144b90612fb2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bb90612e52565b60405180910390fd5b60008111611507576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fe90612f92565b60405180910390fd5b61150f610bbb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561157d575061154d610bbb565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156119695760148054906101000a900460ff1661160a5761159c610bbb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611609576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160090612e72565b60405180910390fd5b5b60155481111561164f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164690612eb2565b60405180910390fd5b600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116f35750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172990612f12565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146117e05760165481611794846108f0565b61179e9190613117565b11156117df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d690612fd2565b60405180910390fd5b5b60006117eb306108f0565b90506000601754821015905060155482106118065760155491505b8080156118205750601460159054906101000a900460ff16155b801561187a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118925750601460169054906101000a900460ff165b80156118e85750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561193e5750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119665761194c82611e37565b600047905060008111156119645761196347611cce565b5b505b50505b600060019050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a105750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611ac35750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ac25750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611ad15760009050611c58565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b7c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b9457600754600b81905550600854600c819055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c3f5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611c5757600954600b81905550600a54600c819055505b5b611c64848484846120bf565b50505050565b6000838311158290611cb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca99190612e30565b60405180910390fd5b5060008385611cc191906131f8565b9050809150509392505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d1e6002846120ec90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611d49573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d9a6002846120ec90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611dc5573d6000803e3d6000fd5b5050565b6000600554821115611e10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0790612e92565b60405180910390fd5b6000611e1a612136565b9050611e2f81846120ec90919063ffffffff16565b915050919050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e6f57611e6e6133d2565b5b604051908082528060200260200182016040528015611e9d5781602001602082028036833780820191505090505b5090503081600081518110611eb557611eb46133a3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611f5757600080fd5b505afa158015611f6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f8f91906128c0565b81600181518110611fa357611fa26133a3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061200a30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611219565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161206e95949392919061304d565b600060405180830381600087803b15801561208857600080fd5b505af115801561209c573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b806120cd576120cc612161565b5b6120d88484846121a4565b806120e6576120e561236f565b5b50505050565b600061212e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612383565b905092915050565b60008060006121436123e6565b9150915061215a81836120ec90919063ffffffff16565b9250505090565b6000600b5414801561217557506000600c54145b1561217f576121a2565b600b54600d81905550600c54600e819055506000600b819055506000600c819055505b565b6000806000806000806121b687612448565b95509550955095509550955061221486600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b090919063ffffffff16565b600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122a985600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124fa90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122f581612558565b6122ff8483612615565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161235c9190613032565b60405180910390a3505050505050505050565b600d54600b81905550600e54600c81905550565b600080831182906123ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c19190612e30565b60405180910390fd5b50600083856123d9919061316d565b9050809150509392505050565b60008060006005549050600068056bc75e2d63100000905061241c68056bc75e2d631000006005546120ec90919063ffffffff16565b82101561243b5760055468056bc75e2d63100000935093505050612444565b81819350935050505b9091565b60008060008060008060008060006124658a600b54600c5461264f565b9250925092506000612475612136565b905060008060006124888e8787876126e5565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006124f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c6a565b905092915050565b60008082846125099190613117565b90508381101561254e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254590612f32565b60405180910390fd5b8091505092915050565b6000612562612136565b90506000612579828461276e90919063ffffffff16565b90506125cd81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124fa90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61262a826005546124b090919063ffffffff16565b600581905550612645816006546124fa90919063ffffffff16565b6006819055505050565b60008060008061267b606461266d888a61276e90919063ffffffff16565b6120ec90919063ffffffff16565b905060006126a56064612697888b61276e90919063ffffffff16565b6120ec90919063ffffffff16565b905060006126ce826126c0858c6124b090919063ffffffff16565b6124b090919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806126fe858961276e90919063ffffffff16565b90506000612715868961276e90919063ffffffff16565b9050600061272c878961276e90919063ffffffff16565b905060006127558261274785876124b090919063ffffffff16565b6124b090919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561278157600090506127e3565b6000828461278f919061319e565b905082848261279e919061316d565b146127de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d590612f52565b60405180910390fd5b809150505b92915050565b6000813590506127f881613834565b92915050565b60008151905061280d81613834565b92915050565b60008083601f84011261282957612828613406565b5b8235905067ffffffffffffffff81111561284657612845613401565b5b6020830191508360208202830111156128625761286161340b565b5b9250929050565b6000813590506128788161384b565b92915050565b60008135905061288d81613862565b92915050565b6000602082840312156128a9576128a8613415565b5b60006128b7848285016127e9565b91505092915050565b6000602082840312156128d6576128d5613415565b5b60006128e4848285016127fe565b91505092915050565b6000806040838503121561290457612903613415565b5b6000612912858286016127e9565b9250506020612923858286016127e9565b9150509250929050565b60008060006060848603121561294657612945613415565b5b6000612954868287016127e9565b9350506020612965868287016127e9565b92505060406129768682870161287e565b9150509250925092565b6000806040838503121561299757612996613415565b5b60006129a5858286016127e9565b92505060206129b68582860161287e565b9150509250929050565b6000806000604084860312156129d9576129d8613415565b5b600084013567ffffffffffffffff8111156129f7576129f6613410565b5b612a0386828701612813565b93509350506020612a1686828701612869565b9150509250925092565b600060208284031215612a3657612a35613415565b5b6000612a4484828501612869565b91505092915050565b600060208284031215612a6357612a62613415565b5b6000612a718482850161287e565b91505092915050565b60008060408385031215612a9157612a90613415565b5b6000612a9f8582860161287e565b9250506020612ab08582860161287e565b9150509250929050565b6000612ac68383612ad2565b60208301905092915050565b612adb8161322c565b82525050565b612aea8161322c565b82525050565b6000612afb826130d2565b612b0581856130f5565b9350612b10836130c2565b8060005b83811015612b41578151612b288882612aba565b9750612b33836130e8565b925050600181019050612b14565b5085935050505092915050565b612b578161323e565b82525050565b612b6681613281565b82525050565b612b7581613293565b82525050565b6000612b86826130dd565b612b908185613106565b9350612ba08185602086016132c9565b612ba98161341a565b840191505092915050565b6000612bc1602383613106565b9150612bcc8261342b565b604082019050919050565b6000612be4603f83613106565b9150612bef8261347a565b604082019050919050565b6000612c07602a83613106565b9150612c12826134c9565b604082019050919050565b6000612c2a601c83613106565b9150612c3582613518565b602082019050919050565b6000612c4d602683613106565b9150612c5882613541565b604082019050919050565b6000612c70602283613106565b9150612c7b82613590565b604082019050919050565b6000612c93602383613106565b9150612c9e826135df565b604082019050919050565b6000612cb6601b83613106565b9150612cc18261362e565b602082019050919050565b6000612cd9602183613106565b9150612ce482613657565b604082019050919050565b6000612cfc602083613106565b9150612d07826136a6565b602082019050919050565b6000612d1f602983613106565b9150612d2a826136cf565b604082019050919050565b6000612d42602583613106565b9150612d4d8261371e565b604082019050919050565b6000612d65602383613106565b9150612d708261376d565b604082019050919050565b6000612d88600c83613106565b9150612d93826137bc565b602082019050919050565b6000612dab602483613106565b9150612db6826137e5565b604082019050919050565b612dca8161326a565b82525050565b612dd981613274565b82525050565b6000602082019050612df46000830184612ae1565b92915050565b6000602082019050612e0f6000830184612b4e565b92915050565b6000602082019050612e2a6000830184612b5d565b92915050565b60006020820190508181036000830152612e4a8184612b7b565b905092915050565b60006020820190508181036000830152612e6b81612bb4565b9050919050565b60006020820190508181036000830152612e8b81612bd7565b9050919050565b60006020820190508181036000830152612eab81612bfa565b9050919050565b60006020820190508181036000830152612ecb81612c1d565b9050919050565b60006020820190508181036000830152612eeb81612c40565b9050919050565b60006020820190508181036000830152612f0b81612c63565b9050919050565b60006020820190508181036000830152612f2b81612c86565b9050919050565b60006020820190508181036000830152612f4b81612ca9565b9050919050565b60006020820190508181036000830152612f6b81612ccc565b9050919050565b60006020820190508181036000830152612f8b81612cef565b9050919050565b60006020820190508181036000830152612fab81612d12565b9050919050565b60006020820190508181036000830152612fcb81612d35565b9050919050565b60006020820190508181036000830152612feb81612d58565b9050919050565b6000602082019050818103600083015261300b81612d7b565b9050919050565b6000602082019050818103600083015261302b81612d9e565b9050919050565b60006020820190506130476000830184612dc1565b92915050565b600060a0820190506130626000830188612dc1565b61306f6020830187612b6c565b81810360408301526130818186612af0565b90506130906060830185612ae1565b61309d6080830184612dc1565b9695505050505050565b60006020820190506130bc6000830184612dd0565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006131228261326a565b915061312d8361326a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561316257613161613345565b5b828201905092915050565b60006131788261326a565b91506131838361326a565b92508261319357613192613374565b5b828204905092915050565b60006131a98261326a565b91506131b48361326a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131ed576131ec613345565b5b828202905092915050565b60006132038261326a565b915061320e8361326a565b92508282101561322157613220613345565b5b828203905092915050565b60006132378261324a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061328c826132a5565b9050919050565b600061329e8261326a565b9050919050565b60006132b0826132b7565b9050919050565b60006132c28261324a565b9050919050565b60005b838110156132e75780820151818401526020810190506132cc565b838111156132f6576000848401525b50505050565b60006133078261326a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561333a57613339613345565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f4f7574206f662072616e67650000000000000000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61383d8161322c565b811461384857600080fd5b50565b6138548161323e565b811461385f57600080fd5b50565b61386b8161326a565b811461387657600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204fa29412f96fddc875075232097fdf9dffa68ae6a78a5b2717ecb6ddc4d820fc64736f6c63430008070033
Deployed Bytecode Sourcemap
4228:13388:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6832:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7764:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5654:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7112:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7966:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5964:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7020:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5702:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16776:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12861:235;;;;;;;;;;;;;:::i;:::-;;7216:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1701:148;;;;;;;;;;;;;:::i;:::-;;16950:420;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5846:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1485:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12506:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5904:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6924:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16584:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7363:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5348:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12616:236;;;;;;;;;;;;;:::i;:::-;;17379:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7571:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1858:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6832:83;6869:13;6902:5;;;;;;;;;;;;;;;;;6895:12;;6832:83;:::o;7764:193::-;7866:4;7888:39;7897:12;:10;:12::i;:::-;7911:7;7920:6;7888:8;:39::i;:::-;7945:4;7938:11;;7764:193;;;;:::o;5654:41::-;;;;;;;;;;;;;:::o;7112:95::-;7165:7;4800:20;7185:14;;7112:95;:::o;7966:446::-;8098:4;8115:36;8125:6;8133:9;8144:6;8115:9;:36::i;:::-;8162:220;8185:6;8206:12;:10;:12::i;:::-;8233:138;8289:6;8233:138;;;;;;;;;;;;;;;;;:11;:19;8245:6;8233:19;;;;;;;;;;;;;;;:33;8253:12;:10;:12::i;:::-;8233:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8162:8;:220::i;:::-;8400:4;8393:11;;7966:446;;;;;:::o;5964:55::-;;;;:::o;7020:83::-;7061:5;4473:1;7079:16;;7020:83;:::o;5702:28::-;;;;;;;;;;;;;:::o;16776:101::-;1623:12;:10;:12::i;:::-;1613:22;;:6;;;;;;;;;;:22;;;1605:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16857:12:::1;16843:11;;:26;;;;;;;;;;;;;;;;;;16776:101:::0;:::o;12861:235::-;12927:19;;;;;;;;;;;12911:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12966:17;;;;;;;;;;;12950:33;;:12;:10;:12::i;:::-;:33;;;12911:72;12903:81;;;;;;12995:26;13024:21;12995:50;;13056:32;13069:18;13056:12;:32::i;:::-;12892:204;12861:235::o;7216:138::-;7282:7;7309:37;7329:7;:16;7337:7;7329:16;;;;;;;;;;;;;;;;7309:19;:37::i;:::-;7302:44;;7216:138;;;:::o;1701:148::-;1623:12;:10;:12::i;:::-;1613:22;;:6;;;;;;;;;;:22;;;1605:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1808:1:::1;1771:40;;1792:6;::::0;::::1;;;;;;;;1771:40;;;;;;;;;;;;1839:1;1822:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1701:148::o:0;16950:420::-;17062:19;;;;;;;;;;;17046:35;;:12;:10;:12::i;:::-;:35;;;17038:44;;;;;;17116:12;;17101;:27;:60;;;;;17148:13;:11;:13::i;:::-;17132:12;:29;;17101:60;17093:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;17214:14;;17197;:31;:66;;;;;17250:13;:11;:13::i;:::-;17232:14;:31;;17197:66;17189:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;17308:12;17293;:27;;;;17348:14;17331;:31;;;;16950:420;;:::o;5846:48::-;;;;:::o;1485:79::-;1523:7;1550:6;;;;;;;;;;;1543:13;;1485:79;:::o;12506:101::-;1623:12;:10;:12::i;:::-;1613:22;;:6;;;;;;;;;;:22;;;1605:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12587:12:::1;12573:11;::::0;:26:::1;;;;;;;;;;;;;;;;;;12506:101:::0;:::o;5904:50::-;;;;:::o;6924:87::-;6963:13;6996:7;;;;;;;;;;;;;;;;;6989:14;;6924:87;:::o;16584:139::-;1623:12;:10;:12::i;:::-;1613:22;;:6;;;;;;;;;;:22;;;1605:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16697:18:::1;16675:19;:40;;;;16584:139:::0;:::o;7363:199::-;7468:4;7490:42;7500:12;:10;:12::i;:::-;7514:9;7525:6;7490:9;:42::i;:::-;7550:4;7543:11;;7363:199;;;;:::o;5348:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12616:236::-;12682:19;;;;;;;;;;;12666:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12721:17;;;;;;;;;;;12705:33;;:12;:10;:12::i;:::-;:33;;;12666:72;12658:81;;;;;;12750:23;12776:24;12794:4;12776:9;:24::i;:::-;12750:50;;12811:33;12828:15;12811:16;:33::i;:::-;12647:205;12616:236::o;17379:234::-;1623:12;:10;:12::i;:::-;1613:22;;:6;;;;;;;;;;:22;;;1605:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17496:9:::1;17492:114;17515:8;;:15;;17511:1;:19;17492:114;;;17586:8;17552:18;:31;17571:8;;17580:1;17571:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17552:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17532:3;;;;;:::i;:::-;;;;17492:114;;;;17379:234:::0;;;:::o;7571:184::-;7688:7;7720:11;:18;7732:5;7720:18;;;;;;;;;;;;;;;:27;7739:7;7720:27;;;;;;;;;;;;;;;;7713:34;;7571:184;;;;:::o;1858:244::-;1623:12;:10;:12::i;:::-;1613:22;;:6;;;;;;;;;;:22;;;1605:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1967:1:::1;1947:22;;:8;:22;;;;1939:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2057:8;2028:38;;2049:6;::::0;::::1;;;;;;;;2028:38;;;;;;;;;;;;2086:8;2077:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1858:244:::0;:::o;271:98::-;324:7;351:10;344:17;;271:98;:::o;9109:369::-;9253:1;9236:19;;:5;:19;;;;9228:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9334:1;9315:21;;:7;:21;;;;9307:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9416:6;9386:11;:18;9398:5;9386:18;;;;;;;;;;;;;;;:27;9405:7;9386:27;;;;;;;;;;;;;;;:36;;;;9454:7;9438:32;;9447:5;9438:32;;;9463:6;9438:32;;;;;;:::i;:::-;;;;;;;;9109:369;;;:::o;9487:2349::-;9625:1;9609:18;;:4;:18;;;;9601:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9702:1;9688:16;;:2;:16;;;;9680:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9772:1;9763:6;:10;9755:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9845:7;:5;:7::i;:::-;9837:15;;:4;:15;;;;:32;;;;;9862:7;:5;:7::i;:::-;9856:13;;:2;:13;;;;9837:32;9833:1271;;;9927:11;;;;;;;;;;9922:144;;9975:7;:5;:7::i;:::-;9967:15;;:4;:15;;;9959:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9922:144;10101:12;;10091:6;:22;;10083:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10172:4;:10;10177:4;10172:10;;;;;;;;;;;;;;;;;;;;;;;;;10171:11;:24;;;;;10187:4;:8;10192:2;10187:8;;;;;;;;;;;;;;;;;;;;;;;;;10186:9;10171:24;10163:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10265:13;;;;;;;;;;;10259:19;;:2;:19;;;10256:147;;10333:14;;10323:6;10307:13;10317:2;10307:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;10299:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;10256:147;10420:28;10451:24;10469:4;10451:9;:24::i;:::-;10420:55;;10490:12;10529:19;;10505:20;:43;;10490:58;;10593:12;;10569:20;:36;10566:124;;10662:12;;10639:35;;10566:124;10711:7;:18;;;;;10723:6;;;;;;;;;;;10722:7;10711:18;:43;;;;;10741:13;;;;;;;;;;;10733:21;;:4;:21;;;;10711:43;:58;;;;;10758:11;;;;;;;;;;;10711:58;:87;;;;;10774:18;:24;10793:4;10774:24;;;;;;;;;;;;;;;;;;;;;;;;;10773:25;10711:87;:114;;;;;10803:18;:22;10822:2;10803:22;;;;;;;;;;;;;;;;;;;;;;;;;10802:23;10711:114;10707:386;;;10846:38;10863:20;10846:16;:38::i;:::-;10903:26;10932:21;10903:50;;10997:1;10976:18;:22;10972:106;;;11023:35;11036:21;11023:12;:35::i;:::-;10972:106;10827:266;10707:386;9871:1233;;9833:1271;11117:12;11132:4;11117:19;;11182:18;:24;11201:4;11182:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11210:18;:22;11229:2;11210:22;;;;;;;;;;;;;;;;;;;;;;;;;11182:50;11181:102;;;;11246:13;;;;;;;;;;;11238:21;;:4;:21;;;;:44;;;;;11269:13;;;;;;;;;;;11263:19;;:2;:19;;;;11238:44;11181:102;11177:597;;;11310:5;11300:15;;11177:597;;;11394:13;;;;;;;;;;;11386:21;;:4;:21;;;:55;;;;;11425:15;;;;;;;;;;;11411:30;;:2;:30;;;;11386:55;11383:162;;;11474:14;;11462:9;:26;;;;11517:12;;11507:7;:22;;;;11383:162;11605:13;;;;;;;;;;;11599:19;;:2;:19;;;:55;;;;;11638:15;;;;;;;;;;;11622:32;;:4;:32;;;;11599:55;11595:165;;;11687:15;;11675:9;:27;;;;11731:13;;11721:7;:23;;;;11595:165;11177:597;11787:41;11802:4;11808:2;11812:6;11820:7;11787:14;:41::i;:::-;9590:2246;9487:2349;;;:::o;2470:224::-;2590:7;2623:1;2618;:6;;2626:12;2610:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2650:9;2666:1;2662;:5;;;;:::i;:::-;2650:17;;2685:1;2678:8;;;2470:224;;;;;:::o;12337:160::-;12394:19;;;;;;;;;;;:28;;:43;12423:13;12434:1;12423:6;:10;;:13;;;;:::i;:::-;12394:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12448:17;;;;;;;;;;;:26;;:41;12475:13;12486:1;12475:6;:10;;:13;;;;:::i;:::-;12448:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12337:160;:::o;8421:323::-;8516:7;8574;;8563;:18;;8541:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8662:19;8684:10;:8;:10::i;:::-;8662:32;;8712:24;8724:11;8712:7;:11;;:24;;;;:::i;:::-;8705:31;;;8421:323;;;:::o;11845:483::-;6126:4;6117:6;;:13;;;;;;;;;;;;;;;;;;11923:21:::1;11961:1;11947:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11923:40;;11992:4;11974;11979:1;11974:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12018:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12008:4;12013:1;12008:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12051:62;12068:4;12083:15;;;;;;;;;;;12101:11;12051:8;:62::i;:::-;12124:15;;;;;;;;;;;:66;;;12205:11;12231:1;12247:4;12274;12294:15;12124:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11912:416;6162:5:::0;6153:6;;:14;;;;;;;;;;;;;;;;;;11845:483;:::o;13111:282::-;13267:7;13262:28;;13276:14;:12;:14::i;:::-;13262:28;13301:44;13319:6;13327:9;13338:6;13301:17;:44::i;:::-;13361:7;13356:29;;13370:15;:13;:15::i;:::-;13356:29;13111:282;;;;:::o;2958:132::-;3016:7;3043:39;3047:1;3050;3043:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3036:46;;2958:132;;;;:::o;16089:167::-;16131:7;16152:15;16169;16188:19;:17;:19::i;:::-;16151:56;;;;16228:20;16240:7;16228;:11;;:20;;;;:::i;:::-;16221:27;;;;16089:167;:::o;8753:221::-;8813:1;8800:9;;:14;:30;;;;;8829:1;8818:7;;:12;8800:30;8796:43;;;8832:7;;8796:43;8872:9;;8852:17;:29;;;;8910:7;;8892:15;:25;;;;8943:1;8931:9;:13;;;;8965:1;8955:7;:11;;;;8753:221;:::o;13402:610::-;13549:15;13579:23;13617:12;13644:23;13682:12;13709:13;13736:19;13747:7;13736:10;:19::i;:::-;13534:221;;;;;;;;;;;;13784:28;13804:7;13784;:15;13792:6;13784:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13766:7;:15;13774:6;13766:15;;;;;;;;;;;;;;;:46;;;;13844:39;13867:15;13844:7;:18;13852:9;13844:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13823:7;:18;13831:9;13823:18;;;;;;;;;;;;;;;:60;;;;13894:16;13904:5;13894:9;:16::i;:::-;13921:23;13933:4;13939;13921:11;:23::i;:::-;13977:9;13960:44;;13969:6;13960:44;;;13988:15;13960:44;;;;;;:::i;:::-;;;;;;;;13523:489;;;;;;13402:610;;;:::o;8983:117::-;9039:17;;9027:9;:29;;;;9077:15;;9067:7;:25;;;;8983:117::o;3099:223::-;3219:7;3251:1;3247;:5;3254:12;3239:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3278:9;3294:1;3290;:5;;;;:::i;:::-;3278:17;;3313:1;3306:8;;;3099:223;;;;;:::o;16265:260::-;16316:7;16325;16345:15;16363:7;;16345:25;;16381:15;4800:20;16381:25;;16431:20;4800;16431:7;;:11;;:20;;;;:::i;:::-;16421:7;:30;16417:61;;;16461:7;;4800:20;16453:25;;;;;;;;16417:61;16500:7;16509;16492:25;;;;;;16265:260;;;:::o;14435:618::-;14535:7;14557;14579;14601;14623;14645;14681:23;14706:12;14720:13;14750:40;14762:7;14771:9;;14782:7;;14750:11;:40::i;:::-;14680:110;;;;;;14801:19;14823:10;:8;:10::i;:::-;14801:32;;14845:15;14862:23;14887:12;14916:46;14928:7;14937:4;14943:5;14950:11;14916;:46::i;:::-;14844:118;;;;;;14984:7;14993:15;15010:4;15016:15;15033:4;15039:5;14976:69;;;;;;;;;;;;;;;;;;;14435:618;;;;;;;:::o;2325:136::-;2383:7;2410:43;2414:1;2417;2410:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2403:50;;2325:136;;;;:::o;2137:179::-;2195:7;2215:9;2231:1;2227;:5;;;;:::i;:::-;2215:17;;2256:1;2251;:6;;2243:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2307:1;2300:8;;;2137:179;;;;:::o;14021:211::-;14074:19;14096:10;:8;:10::i;:::-;14074:32;;14117:13;14133:22;14143:11;14133:5;:9;;:22;;;;:::i;:::-;14117:38;;14191:33;14218:5;14191:7;:22;14207:4;14191:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14166:7;:22;14182:4;14166:22;;;;;;;;;;;;;;;:58;;;;14063:169;;14021:211;:::o;14241:147::-;14319:17;14331:4;14319:7;;:11;;:17;;;;:::i;:::-;14309:7;:27;;;;14360:20;14375:4;14360:10;;:14;;:20;;;;:::i;:::-;14347:10;:33;;;;14241:147;;:::o;15062:472::-;15231:7;15253;15275;15310:12;15325:30;15351:3;15325:21;15337:8;15325:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15310:45;;15366:13;15382:28;15406:3;15382:19;15394:6;15382:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15366:44;;15421:23;15447:28;15469:5;15447:17;15459:4;15447:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15421:54;;15497:15;15514:4;15520:5;15489:37;;;;;;;;;15062:472;;;;;;;:::o;15543:537::-;15737:7;15759;15781;15816:15;15834:24;15846:11;15834:7;:11;;:24;;;;:::i;:::-;15816:42;;15869:12;15884:21;15893:11;15884:4;:8;;:21;;;;:::i;:::-;15869:36;;15916:13;15932:22;15942:11;15932:5;:9;;:22;;;;:::i;:::-;15916:38;;15965:23;15991:28;16013:5;15991:17;16003:4;15991:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15965:54;;16041:7;16050:15;16067:4;16033:39;;;;;;;;;;15543:537;;;;;;;;:::o;2703:246::-;2761:7;2790:1;2785;:6;2781:47;;;2815:1;2808:8;;;;2781:47;2838:9;2854:1;2850;:5;;;;:::i;:::-;2838:17;;2883:1;2878;2874;:5;;;;:::i;:::-;:10;2866:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2940:1;2933:8;;;2703:246;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;318:568::-;391:8;401:6;451:3;444:4;436:6;432:17;428:27;418:122;;459:79;;:::i;:::-;418:122;572:6;559:20;549:30;;602:18;594:6;591:30;588:117;;;624:79;;:::i;:::-;588:117;738:4;730:6;726:17;714:29;;792:3;784:4;776:6;772:17;762:8;758:32;755:41;752:128;;;799:79;;:::i;:::-;752:128;318:568;;;;;:::o;892:133::-;935:5;973:6;960:20;951:29;;989:30;1013:5;989:30;:::i;:::-;892:133;;;;:::o;1031:139::-;1077:5;1115:6;1102:20;1093:29;;1131:33;1158:5;1131:33;:::i;:::-;1031:139;;;;:::o;1176:329::-;1235:6;1284:2;1272:9;1263:7;1259:23;1255:32;1252:119;;;1290:79;;:::i;:::-;1252:119;1410:1;1435:53;1480:7;1471:6;1460:9;1456:22;1435:53;:::i;:::-;1425:63;;1381:117;1176:329;;;;:::o;1511:351::-;1581:6;1630:2;1618:9;1609:7;1605:23;1601:32;1598:119;;;1636:79;;:::i;:::-;1598:119;1756:1;1781:64;1837:7;1828:6;1817:9;1813:22;1781:64;:::i;:::-;1771:74;;1727:128;1511:351;;;;:::o;1868:474::-;1936:6;1944;1993:2;1981:9;1972:7;1968:23;1964:32;1961:119;;;1999:79;;:::i;:::-;1961:119;2119:1;2144:53;2189:7;2180:6;2169:9;2165:22;2144:53;:::i;:::-;2134:63;;2090:117;2246:2;2272:53;2317:7;2308:6;2297:9;2293:22;2272:53;:::i;:::-;2262:63;;2217:118;1868:474;;;;;:::o;2348:619::-;2425:6;2433;2441;2490:2;2478:9;2469:7;2465:23;2461:32;2458:119;;;2496:79;;:::i;:::-;2458:119;2616:1;2641:53;2686:7;2677:6;2666:9;2662:22;2641:53;:::i;:::-;2631:63;;2587:117;2743:2;2769:53;2814:7;2805:6;2794:9;2790:22;2769:53;:::i;:::-;2759:63;;2714:118;2871:2;2897:53;2942:7;2933:6;2922:9;2918:22;2897:53;:::i;:::-;2887:63;;2842:118;2348:619;;;;;:::o;2973:474::-;3041:6;3049;3098:2;3086:9;3077:7;3073:23;3069:32;3066:119;;;3104:79;;:::i;:::-;3066:119;3224:1;3249:53;3294:7;3285:6;3274:9;3270:22;3249:53;:::i;:::-;3239:63;;3195:117;3351:2;3377:53;3422:7;3413:6;3402:9;3398:22;3377:53;:::i;:::-;3367:63;;3322:118;2973:474;;;;;:::o;3453:698::-;3545:6;3553;3561;3610:2;3598:9;3589:7;3585:23;3581:32;3578:119;;;3616:79;;:::i;:::-;3578:119;3764:1;3753:9;3749:17;3736:31;3794:18;3786:6;3783:30;3780:117;;;3816:79;;:::i;:::-;3780:117;3929:80;4001:7;3992:6;3981:9;3977:22;3929:80;:::i;:::-;3911:98;;;;3707:312;4058:2;4084:50;4126:7;4117:6;4106:9;4102:22;4084:50;:::i;:::-;4074:60;;4029:115;3453:698;;;;;:::o;4157:323::-;4213:6;4262:2;4250:9;4241:7;4237:23;4233:32;4230:119;;;4268:79;;:::i;:::-;4230:119;4388:1;4413:50;4455:7;4446:6;4435:9;4431:22;4413:50;:::i;:::-;4403:60;;4359:114;4157:323;;;;:::o;4486:329::-;4545:6;4594:2;4582:9;4573:7;4569:23;4565:32;4562:119;;;4600:79;;:::i;:::-;4562:119;4720:1;4745:53;4790:7;4781:6;4770:9;4766:22;4745:53;:::i;:::-;4735:63;;4691:117;4486:329;;;;:::o;4821:474::-;4889:6;4897;4946:2;4934:9;4925:7;4921:23;4917:32;4914:119;;;4952:79;;:::i;:::-;4914:119;5072:1;5097:53;5142:7;5133:6;5122:9;5118:22;5097:53;:::i;:::-;5087:63;;5043:117;5199:2;5225:53;5270:7;5261:6;5250:9;5246:22;5225:53;:::i;:::-;5215:63;;5170:118;4821:474;;;;;:::o;5301:179::-;5370:10;5391:46;5433:3;5425:6;5391:46;:::i;:::-;5469:4;5464:3;5460:14;5446:28;;5301:179;;;;:::o;5486:108::-;5563:24;5581:5;5563:24;:::i;:::-;5558:3;5551:37;5486:108;;:::o;5600:118::-;5687:24;5705:5;5687:24;:::i;:::-;5682:3;5675:37;5600:118;;:::o;5754:732::-;5873:3;5902:54;5950:5;5902:54;:::i;:::-;5972:86;6051:6;6046:3;5972:86;:::i;:::-;5965:93;;6082:56;6132:5;6082:56;:::i;:::-;6161:7;6192:1;6177:284;6202:6;6199:1;6196:13;6177:284;;;6278:6;6272:13;6305:63;6364:3;6349:13;6305:63;:::i;:::-;6298:70;;6391:60;6444:6;6391:60;:::i;:::-;6381:70;;6237:224;6224:1;6221;6217:9;6212:14;;6177:284;;;6181:14;6477:3;6470:10;;5878:608;;;5754:732;;;;:::o;6492:109::-;6573:21;6588:5;6573:21;:::i;:::-;6568:3;6561:34;6492:109;;:::o;6607:183::-;6720:63;6777:5;6720:63;:::i;:::-;6715:3;6708:76;6607:183;;:::o;6796:147::-;6891:45;6930:5;6891:45;:::i;:::-;6886:3;6879:58;6796:147;;:::o;6949:364::-;7037:3;7065:39;7098:5;7065:39;:::i;:::-;7120:71;7184:6;7179:3;7120:71;:::i;:::-;7113:78;;7200:52;7245:6;7240:3;7233:4;7226:5;7222:16;7200:52;:::i;:::-;7277:29;7299:6;7277:29;:::i;:::-;7272:3;7268:39;7261:46;;7041:272;6949:364;;;;:::o;7319:366::-;7461:3;7482:67;7546:2;7541:3;7482:67;:::i;:::-;7475:74;;7558:93;7647:3;7558:93;:::i;:::-;7676:2;7671:3;7667:12;7660:19;;7319:366;;;:::o;7691:::-;7833:3;7854:67;7918:2;7913:3;7854:67;:::i;:::-;7847:74;;7930:93;8019:3;7930:93;:::i;:::-;8048:2;8043:3;8039:12;8032:19;;7691:366;;;:::o;8063:::-;8205:3;8226:67;8290:2;8285:3;8226:67;:::i;:::-;8219:74;;8302:93;8391:3;8302:93;:::i;:::-;8420:2;8415:3;8411:12;8404:19;;8063:366;;;:::o;8435:::-;8577:3;8598:67;8662:2;8657:3;8598:67;:::i;:::-;8591:74;;8674:93;8763:3;8674:93;:::i;:::-;8792:2;8787:3;8783:12;8776:19;;8435:366;;;:::o;8807:::-;8949:3;8970:67;9034:2;9029:3;8970:67;:::i;:::-;8963:74;;9046:93;9135:3;9046:93;:::i;:::-;9164:2;9159:3;9155:12;9148:19;;8807:366;;;:::o;9179:::-;9321:3;9342:67;9406:2;9401:3;9342:67;:::i;:::-;9335:74;;9418:93;9507:3;9418:93;:::i;:::-;9536:2;9531:3;9527:12;9520:19;;9179:366;;;:::o;9551:::-;9693:3;9714:67;9778:2;9773:3;9714:67;:::i;:::-;9707:74;;9790:93;9879:3;9790:93;:::i;:::-;9908:2;9903:3;9899:12;9892:19;;9551:366;;;:::o;9923:::-;10065:3;10086:67;10150:2;10145:3;10086:67;:::i;:::-;10079:74;;10162:93;10251:3;10162:93;:::i;:::-;10280:2;10275:3;10271:12;10264:19;;9923:366;;;:::o;10295:::-;10437:3;10458:67;10522:2;10517:3;10458:67;:::i;:::-;10451:74;;10534:93;10623:3;10534:93;:::i;:::-;10652:2;10647:3;10643:12;10636:19;;10295:366;;;:::o;10667:::-;10809:3;10830:67;10894:2;10889:3;10830:67;:::i;:::-;10823:74;;10906:93;10995:3;10906:93;:::i;:::-;11024:2;11019:3;11015:12;11008:19;;10667:366;;;:::o;11039:::-;11181:3;11202:67;11266:2;11261:3;11202:67;:::i;:::-;11195:74;;11278:93;11367:3;11278:93;:::i;:::-;11396:2;11391:3;11387:12;11380:19;;11039:366;;;:::o;11411:::-;11553:3;11574:67;11638:2;11633:3;11574:67;:::i;:::-;11567:74;;11650:93;11739:3;11650:93;:::i;:::-;11768:2;11763:3;11759:12;11752:19;;11411:366;;;:::o;11783:::-;11925:3;11946:67;12010:2;12005:3;11946:67;:::i;:::-;11939:74;;12022:93;12111:3;12022:93;:::i;:::-;12140:2;12135:3;12131:12;12124:19;;11783:366;;;:::o;12155:::-;12297:3;12318:67;12382:2;12377:3;12318:67;:::i;:::-;12311:74;;12394:93;12483:3;12394:93;:::i;:::-;12512:2;12507:3;12503:12;12496:19;;12155:366;;;:::o;12527:::-;12669:3;12690:67;12754:2;12749:3;12690:67;:::i;:::-;12683:74;;12766:93;12855:3;12766:93;:::i;:::-;12884:2;12879:3;12875:12;12868:19;;12527:366;;;:::o;12899:118::-;12986:24;13004:5;12986:24;:::i;:::-;12981:3;12974:37;12899:118;;:::o;13023:112::-;13106:22;13122:5;13106:22;:::i;:::-;13101:3;13094:35;13023:112;;:::o;13141:222::-;13234:4;13272:2;13261:9;13257:18;13249:26;;13285:71;13353:1;13342:9;13338:17;13329:6;13285:71;:::i;:::-;13141:222;;;;:::o;13369:210::-;13456:4;13494:2;13483:9;13479:18;13471:26;;13507:65;13569:1;13558:9;13554:17;13545:6;13507:65;:::i;:::-;13369:210;;;;:::o;13585:274::-;13704:4;13742:2;13731:9;13727:18;13719:26;;13755:97;13849:1;13838:9;13834:17;13825:6;13755:97;:::i;:::-;13585:274;;;;:::o;13865:313::-;13978:4;14016:2;14005:9;14001:18;13993:26;;14065:9;14059:4;14055:20;14051:1;14040:9;14036:17;14029:47;14093:78;14166:4;14157:6;14093:78;:::i;:::-;14085:86;;13865:313;;;;:::o;14184:419::-;14350:4;14388:2;14377:9;14373:18;14365:26;;14437:9;14431:4;14427:20;14423:1;14412:9;14408:17;14401:47;14465:131;14591:4;14465:131;:::i;:::-;14457:139;;14184:419;;;:::o;14609:::-;14775:4;14813:2;14802:9;14798:18;14790:26;;14862:9;14856:4;14852:20;14848:1;14837:9;14833:17;14826:47;14890:131;15016:4;14890:131;:::i;:::-;14882:139;;14609:419;;;:::o;15034:::-;15200:4;15238:2;15227:9;15223:18;15215:26;;15287:9;15281:4;15277:20;15273:1;15262:9;15258:17;15251:47;15315:131;15441:4;15315:131;:::i;:::-;15307:139;;15034:419;;;:::o;15459:::-;15625:4;15663:2;15652:9;15648:18;15640:26;;15712:9;15706:4;15702:20;15698:1;15687:9;15683:17;15676:47;15740:131;15866:4;15740:131;:::i;:::-;15732:139;;15459:419;;;:::o;15884:::-;16050:4;16088:2;16077:9;16073:18;16065:26;;16137:9;16131:4;16127:20;16123:1;16112:9;16108:17;16101:47;16165:131;16291:4;16165:131;:::i;:::-;16157:139;;15884:419;;;:::o;16309:::-;16475:4;16513:2;16502:9;16498:18;16490:26;;16562:9;16556:4;16552:20;16548:1;16537:9;16533:17;16526:47;16590:131;16716:4;16590:131;:::i;:::-;16582:139;;16309:419;;;:::o;16734:::-;16900:4;16938:2;16927:9;16923:18;16915:26;;16987:9;16981:4;16977:20;16973:1;16962:9;16958:17;16951:47;17015:131;17141:4;17015:131;:::i;:::-;17007:139;;16734:419;;;:::o;17159:::-;17325:4;17363:2;17352:9;17348:18;17340:26;;17412:9;17406:4;17402:20;17398:1;17387:9;17383:17;17376:47;17440:131;17566:4;17440:131;:::i;:::-;17432:139;;17159:419;;;:::o;17584:::-;17750:4;17788:2;17777:9;17773:18;17765:26;;17837:9;17831:4;17827:20;17823:1;17812:9;17808:17;17801:47;17865:131;17991:4;17865:131;:::i;:::-;17857:139;;17584:419;;;:::o;18009:::-;18175:4;18213:2;18202:9;18198:18;18190:26;;18262:9;18256:4;18252:20;18248:1;18237:9;18233:17;18226:47;18290:131;18416:4;18290:131;:::i;:::-;18282:139;;18009:419;;;:::o;18434:::-;18600:4;18638:2;18627:9;18623:18;18615:26;;18687:9;18681:4;18677:20;18673:1;18662:9;18658:17;18651:47;18715:131;18841:4;18715:131;:::i;:::-;18707:139;;18434:419;;;:::o;18859:::-;19025:4;19063:2;19052:9;19048:18;19040:26;;19112:9;19106:4;19102:20;19098:1;19087:9;19083:17;19076:47;19140:131;19266:4;19140:131;:::i;:::-;19132:139;;18859:419;;;:::o;19284:::-;19450:4;19488:2;19477:9;19473:18;19465:26;;19537:9;19531:4;19527:20;19523:1;19512:9;19508:17;19501:47;19565:131;19691:4;19565:131;:::i;:::-;19557:139;;19284:419;;;:::o;19709:::-;19875:4;19913:2;19902:9;19898:18;19890:26;;19962:9;19956:4;19952:20;19948:1;19937:9;19933:17;19926:47;19990:131;20116:4;19990:131;:::i;:::-;19982:139;;19709:419;;;:::o;20134:::-;20300:4;20338:2;20327:9;20323:18;20315:26;;20387:9;20381:4;20377:20;20373:1;20362:9;20358:17;20351:47;20415:131;20541:4;20415:131;:::i;:::-;20407:139;;20134:419;;;:::o;20559:222::-;20652:4;20690:2;20679:9;20675:18;20667:26;;20703:71;20771:1;20760:9;20756:17;20747:6;20703:71;:::i;:::-;20559:222;;;;:::o;20787:831::-;21050:4;21088:3;21077:9;21073:19;21065:27;;21102:71;21170:1;21159:9;21155:17;21146:6;21102:71;:::i;:::-;21183:80;21259:2;21248:9;21244:18;21235:6;21183:80;:::i;:::-;21310:9;21304:4;21300:20;21295:2;21284:9;21280:18;21273:48;21338:108;21441:4;21432:6;21338:108;:::i;:::-;21330:116;;21456:72;21524:2;21513:9;21509:18;21500:6;21456:72;:::i;:::-;21538:73;21606:3;21595:9;21591:19;21582:6;21538:73;:::i;:::-;20787:831;;;;;;;;:::o;21624:214::-;21713:4;21751:2;21740:9;21736:18;21728:26;;21764:67;21828:1;21817:9;21813:17;21804:6;21764:67;:::i;:::-;21624:214;;;;:::o;21925:132::-;21992:4;22015:3;22007:11;;22045:4;22040:3;22036:14;22028:22;;21925:132;;;:::o;22063:114::-;22130:6;22164:5;22158:12;22148:22;;22063:114;;;:::o;22183:99::-;22235:6;22269:5;22263:12;22253:22;;22183:99;;;:::o;22288:113::-;22358:4;22390;22385:3;22381:14;22373:22;;22288:113;;;:::o;22407:184::-;22506:11;22540:6;22535:3;22528:19;22580:4;22575:3;22571:14;22556:29;;22407:184;;;;:::o;22597:169::-;22681:11;22715:6;22710:3;22703:19;22755:4;22750:3;22746:14;22731:29;;22597:169;;;;:::o;22772:305::-;22812:3;22831:20;22849:1;22831:20;:::i;:::-;22826:25;;22865:20;22883:1;22865:20;:::i;:::-;22860:25;;23019:1;22951:66;22947:74;22944:1;22941:81;22938:107;;;23025:18;;:::i;:::-;22938:107;23069:1;23066;23062:9;23055:16;;22772:305;;;;:::o;23083:185::-;23123:1;23140:20;23158:1;23140:20;:::i;:::-;23135:25;;23174:20;23192:1;23174:20;:::i;:::-;23169:25;;23213:1;23203:35;;23218:18;;:::i;:::-;23203:35;23260:1;23257;23253:9;23248:14;;23083:185;;;;:::o;23274:348::-;23314:7;23337:20;23355:1;23337:20;:::i;:::-;23332:25;;23371:20;23389:1;23371:20;:::i;:::-;23366:25;;23559:1;23491:66;23487:74;23484:1;23481:81;23476:1;23469:9;23462:17;23458:105;23455:131;;;23566:18;;:::i;:::-;23455:131;23614:1;23611;23607:9;23596:20;;23274:348;;;;:::o;23628:191::-;23668:4;23688:20;23706:1;23688:20;:::i;:::-;23683:25;;23722:20;23740:1;23722:20;:::i;:::-;23717:25;;23761:1;23758;23755:8;23752:34;;;23766:18;;:::i;:::-;23752:34;23811:1;23808;23804:9;23796:17;;23628:191;;;;:::o;23825:96::-;23862:7;23891:24;23909:5;23891:24;:::i;:::-;23880:35;;23825:96;;;:::o;23927:90::-;23961:7;24004:5;23997:13;23990:21;23979:32;;23927:90;;;:::o;24023:126::-;24060:7;24100:42;24093:5;24089:54;24078:65;;24023:126;;;:::o;24155:77::-;24192:7;24221:5;24210:16;;24155:77;;;:::o;24238:86::-;24273:7;24313:4;24306:5;24302:16;24291:27;;24238:86;;;:::o;24330:152::-;24406:9;24439:37;24470:5;24439:37;:::i;:::-;24426:50;;24330:152;;;:::o;24488:121::-;24546:9;24579:24;24597:5;24579:24;:::i;:::-;24566:37;;24488:121;;;:::o;24615:126::-;24665:9;24698:37;24729:5;24698:37;:::i;:::-;24685:50;;24615:126;;;:::o;24747:113::-;24797:9;24830:24;24848:5;24830:24;:::i;:::-;24817:37;;24747:113;;;:::o;24866:307::-;24934:1;24944:113;24958:6;24955:1;24952:13;24944:113;;;25043:1;25038:3;25034:11;25028:18;25024:1;25019:3;25015:11;25008:39;24980:2;24977:1;24973:10;24968:15;;24944:113;;;25075:6;25072:1;25069:13;25066:101;;;25155:1;25146:6;25141:3;25137:16;25130:27;25066:101;24915:258;24866:307;;;:::o;25179:233::-;25218:3;25241:24;25259:5;25241:24;:::i;:::-;25232:33;;25287:66;25280:5;25277:77;25274:103;;;25357:18;;:::i;:::-;25274:103;25404:1;25397:5;25393:13;25386:20;;25179:233;;;:::o;25418:180::-;25466:77;25463:1;25456:88;25563:4;25560:1;25553:15;25587:4;25584:1;25577:15;25604:180;25652:77;25649:1;25642:88;25749:4;25746:1;25739:15;25773:4;25770:1;25763:15;25790:180;25838:77;25835:1;25828:88;25935:4;25932:1;25925:15;25959:4;25956:1;25949:15;25976:180;26024:77;26021:1;26014:88;26121:4;26118:1;26111:15;26145:4;26142:1;26135:15;26162:117;26271:1;26268;26261:12;26285:117;26394:1;26391;26384:12;26408:117;26517:1;26514;26507:12;26531:117;26640:1;26637;26630:12;26654:117;26763:1;26760;26753:12;26777:102;26818:6;26869:2;26865:7;26860:2;26853:5;26849:14;26845:28;26835:38;;26777:102;;;:::o;26885:222::-;27025:34;27021:1;27013:6;27009:14;27002:58;27094:5;27089:2;27081:6;27077:15;27070:30;26885:222;:::o;27113:250::-;27253:34;27249:1;27241:6;27237:14;27230:58;27322:33;27317:2;27309:6;27305:15;27298:58;27113:250;:::o;27369:229::-;27509:34;27505:1;27497:6;27493:14;27486:58;27578:12;27573:2;27565:6;27561:15;27554:37;27369:229;:::o;27604:178::-;27744:30;27740:1;27732:6;27728:14;27721:54;27604:178;:::o;27788:225::-;27928:34;27924:1;27916:6;27912:14;27905:58;27997:8;27992:2;27984:6;27980:15;27973:33;27788:225;:::o;28019:221::-;28159:34;28155:1;28147:6;28143:14;28136:58;28228:4;28223:2;28215:6;28211:15;28204:29;28019:221;:::o;28246:222::-;28386:34;28382:1;28374:6;28370:14;28363:58;28455:5;28450:2;28442:6;28438:15;28431:30;28246:222;:::o;28474:177::-;28614:29;28610:1;28602:6;28598:14;28591:53;28474:177;:::o;28657:220::-;28797:34;28793:1;28785:6;28781:14;28774:58;28866:3;28861:2;28853:6;28849:15;28842:28;28657:220;:::o;28883:182::-;29023:34;29019:1;29011:6;29007:14;29000:58;28883:182;:::o;29071:228::-;29211:34;29207:1;29199:6;29195:14;29188:58;29280:11;29275:2;29267:6;29263:15;29256:36;29071:228;:::o;29305:224::-;29445:34;29441:1;29433:6;29429:14;29422:58;29514:7;29509:2;29501:6;29497:15;29490:32;29305:224;:::o;29535:222::-;29675:34;29671:1;29663:6;29659:14;29652:58;29744:5;29739:2;29731:6;29727:15;29720:30;29535:222;:::o;29763:162::-;29903:14;29899:1;29891:6;29887:14;29880:38;29763:162;:::o;29931:223::-;30071:34;30067:1;30059:6;30055:14;30048:58;30140:6;30135:2;30127:6;30123:15;30116:31;29931:223;:::o;30160:122::-;30233:24;30251:5;30233:24;:::i;:::-;30226:5;30223:35;30213:63;;30272:1;30269;30262:12;30213:63;30160:122;:::o;30288:116::-;30358:21;30373:5;30358:21;:::i;:::-;30351:5;30348:32;30338:60;;30394:1;30391;30384:12;30338:60;30288:116;:::o;30410:122::-;30483:24;30501:5;30483:24;:::i;:::-;30476:5;30473:35;30463:63;;30522:1;30519;30512:12;30463:63;30410:122;:::o
Swarm Source
ipfs://4fa29412f96fddc875075232097fdf9dffa68ae6a78a5b2717ecb6ddc4d820fc
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.