ERC-20
Gaming
Overview
Max Total Supply
10,000,000 VCG
Holders
34 (0.00%)
Total Transfers
-
Market
Price
$0.01 @ 0.000003 ETH (+0.38%)
Onchain Market Cap
$103,979.50
Circulating Supply Market Cap
$1,049,994.00
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
VCG
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-03-04 */ // SPDX-License-Identifier: GPL-3.0 // _ __ ______ ______ // | | / // ____// ____/____ _ ____ ___ ___ _____ _____ // | | / // / / / __ / __ `// __ `__ \ / _ \ / ___// ___/ // | |/ // /___ / /_/ // /_/ // / / / / // __// / (__ ) // |___/ \____/ \____/ \__,_//_/ /_/ /_/ \___//_/ /____/ // Official Website // https://vcgamers.com/ pragma solidity ^0.8.4; 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); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } contract Ownable is Context { address public _owner; address public _creator; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); _creator = _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 { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IFactory { event PairCreated(address indexed token0, address indexed token1, address pair, uint256); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); function swapExactTokensForTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapTokensForExactTokens( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapExactETHForTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function swapTokensForExactETH( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapExactTokensForETH( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapETHForExactTokens( uint256 amountOut, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function quote( uint256 amountA, uint256 reserveA, uint256 reserveB ) external pure returns (uint256 amountB); function getAmountOut( uint256 amountIn, uint256 reserveIn, uint256 reserveOut ) external pure returns (uint256 amountOut); function getAmountIn( uint256 amountOut, uint256 reserveIn, uint256 reserveOut ) external pure returns (uint256 amountIn); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function getAmountsOut(uint256 amountIn, address[] calldata path) external view returns (uint256[] memory amounts); function getAmountsIn(uint256 amountOut, address[] calldata path) external view returns (uint256[] memory amounts); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } contract TaxCollector is Ownable { bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } uint256 public balance; uint256 public maxPercent = 10000; uint256 public teamPercentage = 3350; address public teamWallet = 0x6E8DdF8CA2e326A6677F2363edE03A27428C8EFE; function setTeam (uint256 percent_, address wallet_) public onlyOwner { teamPercentage = percent_; teamWallet = wallet_; } uint256 public partnershipPercentage = 1650; address public partnershipWallet = 0x810E1d64E50A9136E5681Db177Be156dC7f72F0F; function setPartnership (uint256 percent_, address wallet_) public onlyOwner { partnershipPercentage = percent_; partnershipWallet = wallet_; } uint256 public rndPercentage = 5000; address public rndWallet = 0x0DBa0D49228d3D5aF01F3ADDB12812860EA8df61; function setRND (uint256 percent_, address wallet_) public onlyOwner { rndPercentage = percent_; rndWallet = wallet_; } receive() external payable { balance += msg.value; } function getBalance() public view returns (uint) { return balance; } function distribute() public onlyOwner swapping { require(teamPercentage + partnershipPercentage + rndPercentage == maxPercent, "The sum of percentage isn't 100."); require( teamWallet != address(0) && partnershipWallet != address(0) && rndWallet != address(0) , "Cannot send to zero wallet." ); uint256 amount = getBalance(); (bool sent_1, ) = payable(teamWallet).call{value: (amount * teamPercentage / maxPercent), gas: 30000}(""); require(sent_1, "Transfer wallet_1 error."); balance = address(this).balance; (bool sent_2, ) = payable(partnershipWallet).call{value: (amount * partnershipPercentage / maxPercent), gas: 30000}(""); require(sent_2, "Transfer wallet_2 error."); balance = address(this).balance; (bool sent_3, ) = payable(rndWallet).call{value: (amount * rndPercentage / maxPercent), gas: 30000}(""); require(sent_3, "Transfer wallet_3 error."); balance = address(this).balance; } function kill() public onlyOwner { selfdestruct(payable(owner())); } } interface ITaxCollector { function setTeam (uint256 percent_, address wallet_) external; function setPartnership (uint256 percent_, address wallet_) external; function setRND (uint256 percent_, address wallet_) external; function getBalance() external view returns(uint256 balance_); function distribute() external; function kill () external; function transferOwnership(address newOwner) external; } contract VCG is Context , Ownable , IERC20 , IERC20Metadata { using SafeMath for uint256; string private _name = "VCGamers"; string private _symbol = "VCG"; uint8 private _decimals = 18; uint256 private _totalSupply; uint256 public _tax = 6; uint256 public _taxDivider = 100; address public _taxCollector; function setTax(uint256 input_) public onlyOwner { _tax = input_; } function setTaxDivider(uint256 input_) public onlyOwner { _taxDivider = input_; } function setTaxCollector(address input_) public onlyOwner { require(input_ != address(0), "Zero Address."); _taxCollector = input_; iTaxCollector = ITaxCollector(input_); } address DEAD = 0x0000000000000000000000000000000000000000; address ZERO = address(0); address ROUTER = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; address FACTORY = 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f; address WETH = 0xdAC17F958D2ee523a2206206994597C13D831ec7; address public _pair; IRouter public _router; bool public inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) public _excludedBuyFee; mapping(address => bool) public _excludedSellFee; function changeExcludeBuyFee (address input_) public onlyOwner { _excludedBuyFee[input_] = !_excludedBuyFee[input_]; } function changeExcludeSellFee (address input_) public onlyOwner { _excludedSellFee[input_] = !_excludedSellFee[input_]; } ITaxCollector private iTaxCollector; constructor() { emit OwnershipTransferred(address(0), _msgSender()); _router = IRouter(ROUTER); _pair = IFactory(_router.factory()).createPair(WETH, address(this)); _excludedSellFee[owner()] = true; _excludedSellFee[address(this)] = true; _excludedSellFee[DEAD] = true; _excludedBuyFee[owner()] = true; _excludedBuyFee[address(this)] = true; _excludedBuyFee[DEAD] = true; _allowances[address(this)][address(_router)] = ~uint256(0); _mint(_msgSender(), 10000000 * 10 ** uint256(_decimals)); } receive() external payable { } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return _decimals; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function currentBalance() public view returns(uint256) { return balanceOf(address(this)); } function contractBalance() public view returns(uint256) { return address(this).balance; } function taxBalance() public view onlyOwner returns(uint256) { return iTaxCollector.getBalance(); } function distributeTax() public onlyOwner { iTaxCollector.distribute(); } function setTeamTax(uint256 percent_, address wallet_) public onlyOwner { iTaxCollector.setTeam(percent_, wallet_); } function setPartnershipTax(uint256 percent_, address wallet_) public onlyOwner { iTaxCollector.setPartnership(percent_, wallet_); } function setRNDTax(uint256 percent_, address wallet_) public onlyOwner { iTaxCollector.setRND(percent_, wallet_); } function setTaxTransferOwner(address newOwner_) public onlyOwner { iTaxCollector.transferOwnership(newOwner_); } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transferTax(_msgSender(), recipient, amount); return true; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { if(_allowances[sender][_msgSender()] != ~uint256(0)){ _allowances[sender][_msgSender()] = _allowances[sender][_msgSender()].sub(amount, "Insufficient allowance."); } _transferTax(sender, recipient, amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "VCG: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual returns(bool) { require(sender != address(0), "VCG: transfer from the zero address"); require(recipient != address(0), "VCG: transfer to the zero address"); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "EVCGRC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); return true; } function _transferTax(address sender, address recipient, uint256 amount) internal returns (bool) { if(inSwap) return _transfer(sender, recipient, amount); uint256 amountReceived = amount; if (sender == _pair) { // buy _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); if (!_excludedBuyFee[recipient]) { amountReceived = takeFee(amount); } } else if (recipient == _pair) { // sell _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); if (!_excludedSellFee[sender]) { amountReceived = takeFee(amount); distributeFee(); } } else { // normal transfer _transfer(sender, recipient, amount); return true; } _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); return true; } function takeFee (uint256 amount_) private returns(uint256){ uint256 fee = _tax.mul(amount_).div(_taxDivider); _balances[address(this)] = _balances[address(this)].add(fee); return amount_.sub(fee); } function distributeFee () private swapping { uint256 swapAmount = _balances[address(this)]; if (_balances[address(this)] > 0) { address[] memory path = new address[](2); path[0] = address(this); path[1] = address(WETH); uint256 currentETHBalance = address(this).balance; try _router.swapExactTokensForETHSupportingFeeOnTransferTokens( swapAmount, 0, path, address(this), block.timestamp ) { uint256 amountETH = address(this).balance.sub(currentETHBalance); (bool sent, ) = payable(_taxCollector).call{value: amountETH, gas: 30000}(""); require(sent, "Transfer error."); } catch Error(string memory e) { emit DistributeFailed(e); } } } event DistributeFailed(string message); function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "VCG: mint to the zero address"); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "VCG: burn from the zero address"); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "VCG: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "VCG: approve from the zero address"); require(spender != address(0), "VCG: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } }
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":"string","name":"message","type":"string"}],"name":"DistributeFailed","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":"_creator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_excludedBuyFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_excludedSellFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxCollector","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxDivider","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"input_","type":"address"}],"name":"changeExcludeBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"input_","type":"address"}],"name":"changeExcludeSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"distributeTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"inSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent_","type":"uint256"},{"internalType":"address","name":"wallet_","type":"address"}],"name":"setPartnershipTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent_","type":"uint256"},{"internalType":"address","name":"wallet_","type":"address"}],"name":"setRNDTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"input_","type":"uint256"}],"name":"setTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"input_","type":"address"}],"name":"setTaxCollector","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"input_","type":"uint256"}],"name":"setTaxDivider","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner_","type":"address"}],"name":"setTaxTransferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent_","type":"uint256"},{"internalType":"address","name":"wallet_","type":"address"}],"name":"setTeamTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxBalance","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
60806040526040518060400160405280600881526020017f564347616d657273000000000000000000000000000000000000000000000000815250600290805190602001906200005192919062000ae0565b506040518060400160405280600381526020017f5643470000000000000000000000000000000000000000000000000000000000815250600390805190602001906200009f92919062000ae0565b506012600460006101000a81548160ff021916908360ff1602179055506006805560646007556000600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073dac17f958d2ee523a2206206994597c13d831ec7600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200025557600080fd5b50620002766200026a6200089960201b60201c565b620008a160201b60201c565b620002866200089960201b60201c565b600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002d66200089960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003fc57600080fd5b505afa15801562000411573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000437919062000ba7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200049592919062000c22565b602060405180830381600087803b158015620004b057600080fd5b505af1158015620004c5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004eb919062000ba7565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160136000620005416200096560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160136000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601260006200067a6200096560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160126000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600019601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000893620008566200089960201b60201c565b600460009054906101000a900460ff1660ff16600a62000877919062000d57565b6298968062000887919062000e94565b6200098e60201b60201c565b6200101c565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000a01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009f89062000c4f565b60405180910390fd5b806005600082825462000a15919062000c9f565b9250508190555080601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000a6d919062000c9f565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000ad4919062000c71565b60405180910390a35050565b82805462000aee9062000f33565b90600052602060002090601f01602090048101928262000b12576000855562000b5e565b82601f1062000b2d57805160ff191683800117855562000b5e565b8280016001018555821562000b5e579182015b8281111562000b5d57825182559160200191906001019062000b40565b5b50905062000b6d919062000b71565b5090565b5b8082111562000b8c57600081600090555060010162000b72565b5090565b60008151905062000ba18162001002565b92915050565b60006020828403121562000bc05762000bbf62000fc7565b5b600062000bd08482850162000b90565b91505092915050565b62000be48162000ef5565b82525050565b600062000bf9601d8362000c8e565b915062000c068262000fd9565b602082019050919050565b62000c1c8162000f29565b82525050565b600060408201905062000c39600083018562000bd9565b62000c48602083018462000bd9565b9392505050565b6000602082019050818103600083015262000c6a8162000bea565b9050919050565b600060208201905062000c88600083018462000c11565b92915050565b600082825260208201905092915050565b600062000cac8262000f29565b915062000cb98362000f29565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000cf15762000cf062000f69565b5b828201905092915050565b6000808291508390505b600185111562000d4e5780860481111562000d265762000d2562000f69565b5b600185161562000d365780820291505b808102905062000d468562000fcc565b945062000d06565b94509492505050565b600062000d648262000f29565b915062000d718362000f29565b925062000da07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000da8565b905092915050565b60008262000dba576001905062000e8d565b8162000dca576000905062000e8d565b816001811462000de3576002811462000dee5762000e24565b600191505062000e8d565b60ff84111562000e035762000e0262000f69565b5b8360020a91508482111562000e1d5762000e1c62000f69565b5b5062000e8d565b5060208310610133831016604e8410600b841016171562000e5e5782820a90508381111562000e585762000e5762000f69565b5b62000e8d565b62000e6d848484600162000cfc565b9250905081840481111562000e875762000e8662000f69565b5b81810290505b9392505050565b600062000ea18262000f29565b915062000eae8362000f29565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000eea5762000ee962000f69565b5b828202905092915050565b600062000f028262000f09565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000600282049050600182168062000f4c57607f821691505b6020821081141562000f635762000f6262000f98565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b60008160011c9050919050565b7f5643473a206d696e7420746f20746865207a65726f2061646472657373000000600082015250565b6200100d8162000ef5565b81146200101957600080fd5b50565b613c3d806200102c6000396000f3fe60806040526004361061021e5760003560e01c80638da5cb5b11610123578063b85d5572116100ab578063dd62ed3e1161006f578063dd62ed3e146107e0578063e751d5081461081d578063edae876f14610848578063f066c01714610873578063f2fde38b1461089e57610225565b8063b85d55721461070b578063bc8bde6414610734578063c7c00b141461075f578063ce845d1d1461078a578063d8306786146107b557610225565b8063a457c2d7116100f2578063a457c2d714610610578063a9059cbb1461064d578063aa98e1631461068a578063b2bdfa7b146106b5578063b51449bb146106e057610225565b80638da5cb5b1461055457806391eb89d31461057f57806395d89b41146105a8578063a2736b46146105d357610225565b8063313ce567116101a65780634b7ef48e116101755780634b7ef48e1461048357806356bb77b9146104ac57806370a08231146104d5578063715018a6146105125780638b7afe2e1461052957610225565b8063313ce567146103b557806339509351146103e05780633f87d2041461041d5780634aaec75f1461045a57610225565b80630f3d9c9f116101ed5780630f3d9c9f146102e4578063137a4052146102fb57806318160ddd1461032457806323b872dd1461034f5780632e5bb6ff1461038c57610225565b806306fdde031461022a57806308695b411461025557806308c1a2d51461027e578063095ea7b3146102a757610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f6108c7565b60405161024c919061320d565b60405180910390f35b34801561026157600080fd5b5061027c60048036038101906102779190612d2e565b610959565b005b34801561028a57600080fd5b506102a560048036038101906102a09190612d2e565b610aca565b005b3480156102b357600080fd5b506102ce60048036038101906102c99190612dee565b610bed565b6040516102db91906131d7565b60405180910390f35b3480156102f057600080fd5b506102f9610c0b565b005b34801561030757600080fd5b50610322600480360381019061031d9190612d2e565b610d0b565b005b34801561033057600080fd5b50610339610e2e565b60405161034691906133af565b60405180910390f35b34801561035b57600080fd5b5061037660048036038101906103719190612d9b565b610e38565b60405161038391906131d7565b60405180910390f35b34801561039857600080fd5b506103b360048036038101906103ae9190612e2e565b611031565b005b3480156103c157600080fd5b506103ca6110b7565b6040516103d7919061344d565b60405180910390f35b3480156103ec57600080fd5b5061040760048036038101906104029190612dee565b6110ce565b60405161041491906131d7565b60405180910390f35b34801561042957600080fd5b50610444600480360381019061043f9190612d2e565b61117a565b60405161045191906131d7565b60405180910390f35b34801561046657600080fd5b50610481600480360381019061047c9190612e88565b61119a565b005b34801561048f57600080fd5b506104aa60048036038101906104a59190612e2e565b6112a9565b005b3480156104b857600080fd5b506104d360048036038101906104ce9190612d2e565b61132f565b005b3480156104e157600080fd5b506104fc60048036038101906104f79190612d2e565b61143b565b60405161050991906133af565b60405180910390f35b34801561051e57600080fd5b50610527611484565b005b34801561053557600080fd5b5061053e61150c565b60405161054b91906133af565b60405180910390f35b34801561056057600080fd5b50610569611514565b60405161057691906131bc565b60405180910390f35b34801561058b57600080fd5b506105a660048036038101906105a19190612e88565b61153d565b005b3480156105b457600080fd5b506105bd61164c565b6040516105ca919061320d565b60405180910390f35b3480156105df57600080fd5b506105fa60048036038101906105f59190612d2e565b6116de565b60405161060791906131d7565b60405180910390f35b34801561061c57600080fd5b5061063760048036038101906106329190612dee565b6116fe565b60405161064491906131d7565b60405180910390f35b34801561065957600080fd5b50610674600480360381019061066f9190612dee565b6117e9565b60405161068191906131d7565b60405180910390f35b34801561069657600080fd5b5061069f611808565b6040516106ac91906133af565b60405180910390f35b3480156106c157600080fd5b506106ca61192b565b6040516106d791906131bc565b60405180910390f35b3480156106ec57600080fd5b506106f561194f565b60405161070291906131bc565b60405180910390f35b34801561071757600080fd5b50610732600480360381019061072d9190612e88565b611975565b005b34801561074057600080fd5b50610749611a84565b60405161075691906131bc565b60405180910390f35b34801561076b57600080fd5b50610774611aaa565b60405161078191906133af565b60405180910390f35b34801561079657600080fd5b5061079f611ab0565b6040516107ac91906133af565b60405180910390f35b3480156107c157600080fd5b506107ca611ac0565b6040516107d791906131d7565b60405180910390f35b3480156107ec57600080fd5b5061080760048036038101906108029190612d5b565b611ad3565b60405161081491906133af565b60405180910390f35b34801561082957600080fd5b50610832611b5a565b60405161083f91906133af565b60405180910390f35b34801561085457600080fd5b5061085d611b60565b60405161086a91906131f2565b60405180910390f35b34801561087f57600080fd5b50610888611b86565b60405161089591906131bc565b60405180910390f35b3480156108aa57600080fd5b506108c560048036038101906108c09190612d2e565b611bac565b005b6060600280546108d6906136b7565b80601f0160208091040260200160405190810160405280929190818152602001828054610902906136b7565b801561094f5780601f106109245761010080835404028352916020019161094f565b820191906000526020600020905b81548152906001019060200180831161093257829003601f168201915b5050505050905090565b610961611ca4565b73ffffffffffffffffffffffffffffffffffffffff1661097f611514565b73ffffffffffffffffffffffffffffffffffffffff16146109d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cc9061334f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610a45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3c906132cf565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610ad2611ca4565b73ffffffffffffffffffffffffffffffffffffffff16610af0611514565b73ffffffffffffffffffffffffffffffffffffffff1614610b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3d9061334f565b60405180910390fd5b601360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610c01610bfa611ca4565b8484611cac565b6001905092915050565b610c13611ca4565b73ffffffffffffffffffffffffffffffffffffffff16610c31611514565b73ffffffffffffffffffffffffffffffffffffffff1614610c87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7e9061334f565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e4fc6b6d6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610cf157600080fd5b505af1158015610d05573d6000803e3d6000fd5b50505050565b610d13611ca4565b73ffffffffffffffffffffffffffffffffffffffff16610d31611514565b73ffffffffffffffffffffffffffffffffffffffff1614610d87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7e9061334f565b60405180910390fd5b601260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600554905090565b60008019601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610e85611ca4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461101a57610f92826040518060400160405280601781526020017f496e73756666696369656e7420616c6c6f77616e63652e000000000000000000815250601160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610f48611ca4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e779092919063ffffffff16565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610fdb611ca4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611025848484611edb565b50600190509392505050565b611039611ca4565b73ffffffffffffffffffffffffffffffffffffffff16611057611514565b73ffffffffffffffffffffffffffffffffffffffff16146110ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a49061334f565b60405180910390fd5b8060068190555050565b6000600460009054906101000a900460ff16905090565b60006111706110db611ca4565b8484601160006110e9611ca4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461116b91906134d2565b611cac565b6001905092915050565b60136020528060005260406000206000915054906101000a900460ff1681565b6111a2611ca4565b73ffffffffffffffffffffffffffffffffffffffff166111c0611514565b73ffffffffffffffffffffffffffffffffffffffff1614611216576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120d9061334f565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630d771b0a83836040518363ffffffff1660e01b81526004016112739291906133ca565b600060405180830381600087803b15801561128d57600080fd5b505af11580156112a1573d6000803e3d6000fd5b505050505050565b6112b1611ca4565b73ffffffffffffffffffffffffffffffffffffffff166112cf611514565b73ffffffffffffffffffffffffffffffffffffffff1614611325576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131c9061334f565b60405180910390fd5b8060078190555050565b611337611ca4565b73ffffffffffffffffffffffffffffffffffffffff16611355611514565b73ffffffffffffffffffffffffffffffffffffffff16146113ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a29061334f565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2fde38b826040518263ffffffff1660e01b815260040161140691906131bc565b600060405180830381600087803b15801561142057600080fd5b505af1158015611434573d6000803e3d6000fd5b5050505050565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61148c611ca4565b73ffffffffffffffffffffffffffffffffffffffff166114aa611514565b73ffffffffffffffffffffffffffffffffffffffff1614611500576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f79061334f565b60405180910390fd5b61150a6000612337565b565b600047905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611545611ca4565b73ffffffffffffffffffffffffffffffffffffffff16611563611514565b73ffffffffffffffffffffffffffffffffffffffff16146115b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b09061334f565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637c02554b83836040518363ffffffff1660e01b81526004016116169291906133ca565b600060405180830381600087803b15801561163057600080fd5b505af1158015611644573d6000803e3d6000fd5b505050505050565b60606003805461165b906136b7565b80601f0160208091040260200160405190810160405280929190818152602001828054611687906136b7565b80156116d45780601f106116a9576101008083540402835291602001916116d4565b820191906000526020600020905b8154815290600101906020018083116116b757829003601f168201915b5050505050905090565b60126020528060005260406000206000915054906101000a900460ff1681565b6000806011600061170d611ca4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156117ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c19061326f565b60405180910390fd5b6117de6117d5611ca4565b85858403611cac565b600191505092915050565b60006117fd6117f6611ca4565b8484611edb565b506001905092915050565b6000611812611ca4565b73ffffffffffffffffffffffffffffffffffffffff16611830611514565b73ffffffffffffffffffffffffffffffffffffffff1614611886576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187d9061334f565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166312065fe06040518163ffffffff1660e01b815260040160206040518083038186803b1580156118ee57600080fd5b505afa158015611902573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119269190612e5b565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61197d611ca4565b73ffffffffffffffffffffffffffffffffffffffff1661199b611514565b73ffffffffffffffffffffffffffffffffffffffff16146119f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e89061334f565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663debe386c83836040518363ffffffff1660e01b8152600401611a4e9291906133ca565b600060405180830381600087803b158015611a6857600080fd5b505af1158015611a7c573d6000803e3d6000fd5b505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b6000611abb3061143b565b905090565b600f60149054906101000a900460ff1681565b6000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60065481565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611bb4611ca4565b73ffffffffffffffffffffffffffffffffffffffff16611bd2611514565b73ffffffffffffffffffffffffffffffffffffffff1614611c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1f9061334f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8f9061322f565b60405180910390fd5b611ca181612337565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d139061332f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d839061336f565b60405180910390fd5b80601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e6a91906133af565b60405180910390a3505050565b6000838311158290611ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb6919061320d565b60405180910390fd5b5060008385611ece91906135b3565b9050809150509392505050565b6000600f60149054906101000a900460ff1615611f0457611efd8484846123fb565b9050612330565b6000829050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141561208d57611fe8836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250601060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e779092919063ffffffff16565b601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166120885761208583612670565b90505b612230565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156122195761216c836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250601060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e779092919063ffffffff16565b601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166122145761220983612670565b905061221361274e565b5b61222f565b6122248585856123fb565b506001915050612330565b5b61228281601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1f90919063ffffffff16565b601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161232291906133af565b60405180910390a360019150505b9392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561246c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612463906132af565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156124dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d39061328f565b60405180910390fd5b6000601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015612563576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255a906132ef565b60405180910390fd5b828103601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125f891906134d2565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161265c91906133af565b60405180910390a360019150509392505050565b60008061269c60075461268e85600654612b7d90919063ffffffff16565b612bf890919063ffffffff16565b90506126f081601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1f90919063ffffffff16565b601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127468184612c4290919063ffffffff16565b915050919050565b6001600f60146101000a81548160ff0219169083151502179055506000601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115612b01576000600267ffffffffffffffff811115612812576128116137d6565b5b6040519080825280602002602001820160405280156128405781602001602082028036833780820191505090505b5090503081600081518110612858576128576137a7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106128c9576128c86137a7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040161296c9594939291906133f3565b600060405180830381600087803b15801561298657600080fd5b505af1925050508015612997575060015b612a11576129a3613805565b806308c379a01415612a0057506129b8613b43565b806129c35750612a02565b7f0b22adbae9d6a14c2e1d6cdb3a761c3c3c537758be8421630a25425a13ff0dcf816040516129f2919061320d565b60405180910390a150612a0c565b505b3d6000803e3d6000fd5b612afe565b6000612a268247612c4290919063ffffffff16565b90506000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051612a74906131a7565b600060405180830381858888f193505050503d8060008114612ab2576040519150601f19603f3d011682016040523d82523d6000602084013e612ab7565b606091505b5050905080612afb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af29061338f565b60405180910390fd5b50505b50505b506000600f60146101000a81548160ff021916908315150217905550565b6000808284612b2e91906134d2565b905083811015612b73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6a9061324f565b60405180910390fd5b8091505092915050565b600080831415612b905760009050612bf2565b60008284612b9e9190613559565b9050828482612bad9190613528565b14612bed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612be49061330f565b60405180910390fd5b809150505b92915050565b6000612c3a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612c8c565b905092915050565b6000612c8483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e77565b905092915050565b60008083118290612cd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cca919061320d565b60405180910390fd5b5060008385612ce29190613528565b9050809150509392505050565b600081359050612cfe81613bd9565b92915050565b600081359050612d1381613bf0565b92915050565b600081519050612d2881613bf0565b92915050565b600060208284031215612d4457612d43613827565b5b6000612d5284828501612cef565b91505092915050565b60008060408385031215612d7257612d71613827565b5b6000612d8085828601612cef565b9250506020612d9185828601612cef565b9150509250929050565b600080600060608486031215612db457612db3613827565b5b6000612dc286828701612cef565b9350506020612dd386828701612cef565b9250506040612de486828701612d04565b9150509250925092565b60008060408385031215612e0557612e04613827565b5b6000612e1385828601612cef565b9250506020612e2485828601612d04565b9150509250929050565b600060208284031215612e4457612e43613827565b5b6000612e5284828501612d04565b91505092915050565b600060208284031215612e7157612e70613827565b5b6000612e7f84828501612d19565b91505092915050565b60008060408385031215612e9f57612e9e613827565b5b6000612ead85828601612d04565b9250506020612ebe85828601612cef565b9150509250929050565b6000612ed48383612ee0565b60208301905092915050565b612ee9816135e7565b82525050565b612ef8816135e7565b82525050565b6000612f0982613482565b612f1381856134a5565b9350612f1e83613472565b8060005b83811015612f4f578151612f368882612ec8565b9750612f4183613498565b925050600181019050612f22565b5085935050505092915050565b612f65816135f9565b82525050565b612f748161363c565b82525050565b612f838161364e565b82525050565b6000612f948261348d565b612f9e81856134c1565b9350612fae818560208601613684565b612fb78161382c565b840191505092915050565b6000612fcf6026836134c1565b9150612fda8261384a565b604082019050919050565b6000612ff2601b836134c1565b9150612ffd82613899565b602082019050919050565b60006130156023836134c1565b9150613020826138c2565b604082019050919050565b60006130386021836134c1565b915061304382613911565b604082019050919050565b600061305b6023836134c1565b915061306682613960565b604082019050919050565b600061307e600d836134c1565b9150613089826139af565b602082019050919050565b60006130a16029836134c1565b91506130ac826139d8565b604082019050919050565b60006130c46021836134c1565b91506130cf82613a27565b604082019050919050565b60006130e76022836134c1565b91506130f282613a76565b604082019050919050565b600061310a6020836134c1565b915061311582613ac5565b602082019050919050565b600061312d6000836134b6565b915061313882613aee565b600082019050919050565b60006131506020836134c1565b915061315b82613af1565b602082019050919050565b6000613173600f836134c1565b915061317e82613b1a565b602082019050919050565b61319281613625565b82525050565b6131a18161362f565b82525050565b60006131b282613120565b9150819050919050565b60006020820190506131d16000830184612eef565b92915050565b60006020820190506131ec6000830184612f5c565b92915050565b60006020820190506132076000830184612f6b565b92915050565b600060208201905081810360008301526132278184612f89565b905092915050565b6000602082019050818103600083015261324881612fc2565b9050919050565b6000602082019050818103600083015261326881612fe5565b9050919050565b6000602082019050818103600083015261328881613008565b9050919050565b600060208201905081810360008301526132a88161302b565b9050919050565b600060208201905081810360008301526132c88161304e565b9050919050565b600060208201905081810360008301526132e881613071565b9050919050565b6000602082019050818103600083015261330881613094565b9050919050565b60006020820190508181036000830152613328816130b7565b9050919050565b60006020820190508181036000830152613348816130da565b9050919050565b60006020820190508181036000830152613368816130fd565b9050919050565b6000602082019050818103600083015261338881613143565b9050919050565b600060208201905081810360008301526133a881613166565b9050919050565b60006020820190506133c46000830184613189565b92915050565b60006040820190506133df6000830185613189565b6133ec6020830184612eef565b9392505050565b600060a0820190506134086000830188613189565b6134156020830187612f7a565b81810360408301526134278186612efe565b90506134366060830185612eef565b6134436080830184613189565b9695505050505050565b60006020820190506134626000830184613198565b92915050565b6000604051905090565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006134dd82613625565b91506134e883613625565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561351d5761351c61371a565b5b828201905092915050565b600061353382613625565b915061353e83613625565b92508261354e5761354d613749565b5b828204905092915050565b600061356482613625565b915061356f83613625565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156135a8576135a761371a565b5b828202905092915050565b60006135be82613625565b91506135c983613625565b9250828210156135dc576135db61371a565b5b828203905092915050565b60006135f282613605565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061364782613660565b9050919050565b600061365982613625565b9050919050565b600061366b82613672565b9050919050565b600061367d82613605565b9050919050565b60005b838110156136a2578082015181840152602081019050613687565b838111156136b1576000848401525b50505050565b600060028204905060018216806136cf57607f821691505b602082108114156136e3576136e2613778565b5b50919050565b6136f28261382c565b810181811067ffffffffffffffff82111715613711576137106137d6565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060033d11156138245760046000803e61382160005161383d565b90505b90565b600080fd5b6000601f19601f8301169050919050565b60008160e01c9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5643473a2064656372656173656420616c6c6f77616e63652062656c6f77207a60008201527f65726f0000000000000000000000000000000000000000000000000000000000602082015250565b7f5643473a207472616e7366657220746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f5643473a207472616e736665722066726f6d20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f5a65726f20416464726573732e00000000000000000000000000000000000000600082015250565b7f45564347524332303a207472616e7366657220616d6f756e742065786365656460008201527f732062616c616e63650000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f5643473a20617070726f76652066726f6d20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f5643473a20617070726f766520746f20746865207a65726f2061646472657373600082015250565b7f5472616e73666572206572726f722e0000000000000000000000000000000000600082015250565b600060443d1015613b5357613bd6565b613b5b613468565b60043d036004823e80513d602482011167ffffffffffffffff82111715613b83575050613bd6565b808201805167ffffffffffffffff811115613ba15750505050613bd6565b80602083010160043d038501811115613bbe575050505050613bd6565b613bcd826020018501866136e9565b82955050505050505b90565b613be2816135e7565b8114613bed57600080fd5b50565b613bf981613625565b8114613c0457600080fd5b5056fea2646970667358221220318d547942b9afe68e7e6afe239223779da54949c130aa51944a8f67cfa2077064736f6c63430008070033
Deployed Bytecode
0x60806040526004361061021e5760003560e01c80638da5cb5b11610123578063b85d5572116100ab578063dd62ed3e1161006f578063dd62ed3e146107e0578063e751d5081461081d578063edae876f14610848578063f066c01714610873578063f2fde38b1461089e57610225565b8063b85d55721461070b578063bc8bde6414610734578063c7c00b141461075f578063ce845d1d1461078a578063d8306786146107b557610225565b8063a457c2d7116100f2578063a457c2d714610610578063a9059cbb1461064d578063aa98e1631461068a578063b2bdfa7b146106b5578063b51449bb146106e057610225565b80638da5cb5b1461055457806391eb89d31461057f57806395d89b41146105a8578063a2736b46146105d357610225565b8063313ce567116101a65780634b7ef48e116101755780634b7ef48e1461048357806356bb77b9146104ac57806370a08231146104d5578063715018a6146105125780638b7afe2e1461052957610225565b8063313ce567146103b557806339509351146103e05780633f87d2041461041d5780634aaec75f1461045a57610225565b80630f3d9c9f116101ed5780630f3d9c9f146102e4578063137a4052146102fb57806318160ddd1461032457806323b872dd1461034f5780632e5bb6ff1461038c57610225565b806306fdde031461022a57806308695b411461025557806308c1a2d51461027e578063095ea7b3146102a757610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f6108c7565b60405161024c919061320d565b60405180910390f35b34801561026157600080fd5b5061027c60048036038101906102779190612d2e565b610959565b005b34801561028a57600080fd5b506102a560048036038101906102a09190612d2e565b610aca565b005b3480156102b357600080fd5b506102ce60048036038101906102c99190612dee565b610bed565b6040516102db91906131d7565b60405180910390f35b3480156102f057600080fd5b506102f9610c0b565b005b34801561030757600080fd5b50610322600480360381019061031d9190612d2e565b610d0b565b005b34801561033057600080fd5b50610339610e2e565b60405161034691906133af565b60405180910390f35b34801561035b57600080fd5b5061037660048036038101906103719190612d9b565b610e38565b60405161038391906131d7565b60405180910390f35b34801561039857600080fd5b506103b360048036038101906103ae9190612e2e565b611031565b005b3480156103c157600080fd5b506103ca6110b7565b6040516103d7919061344d565b60405180910390f35b3480156103ec57600080fd5b5061040760048036038101906104029190612dee565b6110ce565b60405161041491906131d7565b60405180910390f35b34801561042957600080fd5b50610444600480360381019061043f9190612d2e565b61117a565b60405161045191906131d7565b60405180910390f35b34801561046657600080fd5b50610481600480360381019061047c9190612e88565b61119a565b005b34801561048f57600080fd5b506104aa60048036038101906104a59190612e2e565b6112a9565b005b3480156104b857600080fd5b506104d360048036038101906104ce9190612d2e565b61132f565b005b3480156104e157600080fd5b506104fc60048036038101906104f79190612d2e565b61143b565b60405161050991906133af565b60405180910390f35b34801561051e57600080fd5b50610527611484565b005b34801561053557600080fd5b5061053e61150c565b60405161054b91906133af565b60405180910390f35b34801561056057600080fd5b50610569611514565b60405161057691906131bc565b60405180910390f35b34801561058b57600080fd5b506105a660048036038101906105a19190612e88565b61153d565b005b3480156105b457600080fd5b506105bd61164c565b6040516105ca919061320d565b60405180910390f35b3480156105df57600080fd5b506105fa60048036038101906105f59190612d2e565b6116de565b60405161060791906131d7565b60405180910390f35b34801561061c57600080fd5b5061063760048036038101906106329190612dee565b6116fe565b60405161064491906131d7565b60405180910390f35b34801561065957600080fd5b50610674600480360381019061066f9190612dee565b6117e9565b60405161068191906131d7565b60405180910390f35b34801561069657600080fd5b5061069f611808565b6040516106ac91906133af565b60405180910390f35b3480156106c157600080fd5b506106ca61192b565b6040516106d791906131bc565b60405180910390f35b3480156106ec57600080fd5b506106f561194f565b60405161070291906131bc565b60405180910390f35b34801561071757600080fd5b50610732600480360381019061072d9190612e88565b611975565b005b34801561074057600080fd5b50610749611a84565b60405161075691906131bc565b60405180910390f35b34801561076b57600080fd5b50610774611aaa565b60405161078191906133af565b60405180910390f35b34801561079657600080fd5b5061079f611ab0565b6040516107ac91906133af565b60405180910390f35b3480156107c157600080fd5b506107ca611ac0565b6040516107d791906131d7565b60405180910390f35b3480156107ec57600080fd5b5061080760048036038101906108029190612d5b565b611ad3565b60405161081491906133af565b60405180910390f35b34801561082957600080fd5b50610832611b5a565b60405161083f91906133af565b60405180910390f35b34801561085457600080fd5b5061085d611b60565b60405161086a91906131f2565b60405180910390f35b34801561087f57600080fd5b50610888611b86565b60405161089591906131bc565b60405180910390f35b3480156108aa57600080fd5b506108c560048036038101906108c09190612d2e565b611bac565b005b6060600280546108d6906136b7565b80601f0160208091040260200160405190810160405280929190818152602001828054610902906136b7565b801561094f5780601f106109245761010080835404028352916020019161094f565b820191906000526020600020905b81548152906001019060200180831161093257829003601f168201915b5050505050905090565b610961611ca4565b73ffffffffffffffffffffffffffffffffffffffff1661097f611514565b73ffffffffffffffffffffffffffffffffffffffff16146109d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cc9061334f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610a45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3c906132cf565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610ad2611ca4565b73ffffffffffffffffffffffffffffffffffffffff16610af0611514565b73ffffffffffffffffffffffffffffffffffffffff1614610b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3d9061334f565b60405180910390fd5b601360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610c01610bfa611ca4565b8484611cac565b6001905092915050565b610c13611ca4565b73ffffffffffffffffffffffffffffffffffffffff16610c31611514565b73ffffffffffffffffffffffffffffffffffffffff1614610c87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7e9061334f565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e4fc6b6d6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610cf157600080fd5b505af1158015610d05573d6000803e3d6000fd5b50505050565b610d13611ca4565b73ffffffffffffffffffffffffffffffffffffffff16610d31611514565b73ffffffffffffffffffffffffffffffffffffffff1614610d87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7e9061334f565b60405180910390fd5b601260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600554905090565b60008019601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610e85611ca4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461101a57610f92826040518060400160405280601781526020017f496e73756666696369656e7420616c6c6f77616e63652e000000000000000000815250601160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610f48611ca4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e779092919063ffffffff16565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610fdb611ca4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611025848484611edb565b50600190509392505050565b611039611ca4565b73ffffffffffffffffffffffffffffffffffffffff16611057611514565b73ffffffffffffffffffffffffffffffffffffffff16146110ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a49061334f565b60405180910390fd5b8060068190555050565b6000600460009054906101000a900460ff16905090565b60006111706110db611ca4565b8484601160006110e9611ca4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461116b91906134d2565b611cac565b6001905092915050565b60136020528060005260406000206000915054906101000a900460ff1681565b6111a2611ca4565b73ffffffffffffffffffffffffffffffffffffffff166111c0611514565b73ffffffffffffffffffffffffffffffffffffffff1614611216576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120d9061334f565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630d771b0a83836040518363ffffffff1660e01b81526004016112739291906133ca565b600060405180830381600087803b15801561128d57600080fd5b505af11580156112a1573d6000803e3d6000fd5b505050505050565b6112b1611ca4565b73ffffffffffffffffffffffffffffffffffffffff166112cf611514565b73ffffffffffffffffffffffffffffffffffffffff1614611325576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131c9061334f565b60405180910390fd5b8060078190555050565b611337611ca4565b73ffffffffffffffffffffffffffffffffffffffff16611355611514565b73ffffffffffffffffffffffffffffffffffffffff16146113ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a29061334f565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2fde38b826040518263ffffffff1660e01b815260040161140691906131bc565b600060405180830381600087803b15801561142057600080fd5b505af1158015611434573d6000803e3d6000fd5b5050505050565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61148c611ca4565b73ffffffffffffffffffffffffffffffffffffffff166114aa611514565b73ffffffffffffffffffffffffffffffffffffffff1614611500576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f79061334f565b60405180910390fd5b61150a6000612337565b565b600047905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611545611ca4565b73ffffffffffffffffffffffffffffffffffffffff16611563611514565b73ffffffffffffffffffffffffffffffffffffffff16146115b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b09061334f565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637c02554b83836040518363ffffffff1660e01b81526004016116169291906133ca565b600060405180830381600087803b15801561163057600080fd5b505af1158015611644573d6000803e3d6000fd5b505050505050565b60606003805461165b906136b7565b80601f0160208091040260200160405190810160405280929190818152602001828054611687906136b7565b80156116d45780601f106116a9576101008083540402835291602001916116d4565b820191906000526020600020905b8154815290600101906020018083116116b757829003601f168201915b5050505050905090565b60126020528060005260406000206000915054906101000a900460ff1681565b6000806011600061170d611ca4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156117ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c19061326f565b60405180910390fd5b6117de6117d5611ca4565b85858403611cac565b600191505092915050565b60006117fd6117f6611ca4565b8484611edb565b506001905092915050565b6000611812611ca4565b73ffffffffffffffffffffffffffffffffffffffff16611830611514565b73ffffffffffffffffffffffffffffffffffffffff1614611886576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187d9061334f565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166312065fe06040518163ffffffff1660e01b815260040160206040518083038186803b1580156118ee57600080fd5b505afa158015611902573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119269190612e5b565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61197d611ca4565b73ffffffffffffffffffffffffffffffffffffffff1661199b611514565b73ffffffffffffffffffffffffffffffffffffffff16146119f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e89061334f565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663debe386c83836040518363ffffffff1660e01b8152600401611a4e9291906133ca565b600060405180830381600087803b158015611a6857600080fd5b505af1158015611a7c573d6000803e3d6000fd5b505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b6000611abb3061143b565b905090565b600f60149054906101000a900460ff1681565b6000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60065481565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611bb4611ca4565b73ffffffffffffffffffffffffffffffffffffffff16611bd2611514565b73ffffffffffffffffffffffffffffffffffffffff1614611c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1f9061334f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8f9061322f565b60405180910390fd5b611ca181612337565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d139061332f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d839061336f565b60405180910390fd5b80601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e6a91906133af565b60405180910390a3505050565b6000838311158290611ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb6919061320d565b60405180910390fd5b5060008385611ece91906135b3565b9050809150509392505050565b6000600f60149054906101000a900460ff1615611f0457611efd8484846123fb565b9050612330565b6000829050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141561208d57611fe8836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250601060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e779092919063ffffffff16565b601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166120885761208583612670565b90505b612230565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156122195761216c836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250601060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e779092919063ffffffff16565b601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166122145761220983612670565b905061221361274e565b5b61222f565b6122248585856123fb565b506001915050612330565b5b61228281601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1f90919063ffffffff16565b601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161232291906133af565b60405180910390a360019150505b9392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561246c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612463906132af565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156124dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d39061328f565b60405180910390fd5b6000601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015612563576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255a906132ef565b60405180910390fd5b828103601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125f891906134d2565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161265c91906133af565b60405180910390a360019150509392505050565b60008061269c60075461268e85600654612b7d90919063ffffffff16565b612bf890919063ffffffff16565b90506126f081601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1f90919063ffffffff16565b601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127468184612c4290919063ffffffff16565b915050919050565b6001600f60146101000a81548160ff0219169083151502179055506000601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115612b01576000600267ffffffffffffffff811115612812576128116137d6565b5b6040519080825280602002602001820160405280156128405781602001602082028036833780820191505090505b5090503081600081518110612858576128576137a7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106128c9576128c86137a7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040161296c9594939291906133f3565b600060405180830381600087803b15801561298657600080fd5b505af1925050508015612997575060015b612a11576129a3613805565b806308c379a01415612a0057506129b8613b43565b806129c35750612a02565b7f0b22adbae9d6a14c2e1d6cdb3a761c3c3c537758be8421630a25425a13ff0dcf816040516129f2919061320d565b60405180910390a150612a0c565b505b3d6000803e3d6000fd5b612afe565b6000612a268247612c4290919063ffffffff16565b90506000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051612a74906131a7565b600060405180830381858888f193505050503d8060008114612ab2576040519150601f19603f3d011682016040523d82523d6000602084013e612ab7565b606091505b5050905080612afb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af29061338f565b60405180910390fd5b50505b50505b506000600f60146101000a81548160ff021916908315150217905550565b6000808284612b2e91906134d2565b905083811015612b73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6a9061324f565b60405180910390fd5b8091505092915050565b600080831415612b905760009050612bf2565b60008284612b9e9190613559565b9050828482612bad9190613528565b14612bed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612be49061330f565b60405180910390fd5b809150505b92915050565b6000612c3a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612c8c565b905092915050565b6000612c8483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e77565b905092915050565b60008083118290612cd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cca919061320d565b60405180910390fd5b5060008385612ce29190613528565b9050809150509392505050565b600081359050612cfe81613bd9565b92915050565b600081359050612d1381613bf0565b92915050565b600081519050612d2881613bf0565b92915050565b600060208284031215612d4457612d43613827565b5b6000612d5284828501612cef565b91505092915050565b60008060408385031215612d7257612d71613827565b5b6000612d8085828601612cef565b9250506020612d9185828601612cef565b9150509250929050565b600080600060608486031215612db457612db3613827565b5b6000612dc286828701612cef565b9350506020612dd386828701612cef565b9250506040612de486828701612d04565b9150509250925092565b60008060408385031215612e0557612e04613827565b5b6000612e1385828601612cef565b9250506020612e2485828601612d04565b9150509250929050565b600060208284031215612e4457612e43613827565b5b6000612e5284828501612d04565b91505092915050565b600060208284031215612e7157612e70613827565b5b6000612e7f84828501612d19565b91505092915050565b60008060408385031215612e9f57612e9e613827565b5b6000612ead85828601612d04565b9250506020612ebe85828601612cef565b9150509250929050565b6000612ed48383612ee0565b60208301905092915050565b612ee9816135e7565b82525050565b612ef8816135e7565b82525050565b6000612f0982613482565b612f1381856134a5565b9350612f1e83613472565b8060005b83811015612f4f578151612f368882612ec8565b9750612f4183613498565b925050600181019050612f22565b5085935050505092915050565b612f65816135f9565b82525050565b612f748161363c565b82525050565b612f838161364e565b82525050565b6000612f948261348d565b612f9e81856134c1565b9350612fae818560208601613684565b612fb78161382c565b840191505092915050565b6000612fcf6026836134c1565b9150612fda8261384a565b604082019050919050565b6000612ff2601b836134c1565b9150612ffd82613899565b602082019050919050565b60006130156023836134c1565b9150613020826138c2565b604082019050919050565b60006130386021836134c1565b915061304382613911565b604082019050919050565b600061305b6023836134c1565b915061306682613960565b604082019050919050565b600061307e600d836134c1565b9150613089826139af565b602082019050919050565b60006130a16029836134c1565b91506130ac826139d8565b604082019050919050565b60006130c46021836134c1565b91506130cf82613a27565b604082019050919050565b60006130e76022836134c1565b91506130f282613a76565b604082019050919050565b600061310a6020836134c1565b915061311582613ac5565b602082019050919050565b600061312d6000836134b6565b915061313882613aee565b600082019050919050565b60006131506020836134c1565b915061315b82613af1565b602082019050919050565b6000613173600f836134c1565b915061317e82613b1a565b602082019050919050565b61319281613625565b82525050565b6131a18161362f565b82525050565b60006131b282613120565b9150819050919050565b60006020820190506131d16000830184612eef565b92915050565b60006020820190506131ec6000830184612f5c565b92915050565b60006020820190506132076000830184612f6b565b92915050565b600060208201905081810360008301526132278184612f89565b905092915050565b6000602082019050818103600083015261324881612fc2565b9050919050565b6000602082019050818103600083015261326881612fe5565b9050919050565b6000602082019050818103600083015261328881613008565b9050919050565b600060208201905081810360008301526132a88161302b565b9050919050565b600060208201905081810360008301526132c88161304e565b9050919050565b600060208201905081810360008301526132e881613071565b9050919050565b6000602082019050818103600083015261330881613094565b9050919050565b60006020820190508181036000830152613328816130b7565b9050919050565b60006020820190508181036000830152613348816130da565b9050919050565b60006020820190508181036000830152613368816130fd565b9050919050565b6000602082019050818103600083015261338881613143565b9050919050565b600060208201905081810360008301526133a881613166565b9050919050565b60006020820190506133c46000830184613189565b92915050565b60006040820190506133df6000830185613189565b6133ec6020830184612eef565b9392505050565b600060a0820190506134086000830188613189565b6134156020830187612f7a565b81810360408301526134278186612efe565b90506134366060830185612eef565b6134436080830184613189565b9695505050505050565b60006020820190506134626000830184613198565b92915050565b6000604051905090565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006134dd82613625565b91506134e883613625565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561351d5761351c61371a565b5b828201905092915050565b600061353382613625565b915061353e83613625565b92508261354e5761354d613749565b5b828204905092915050565b600061356482613625565b915061356f83613625565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156135a8576135a761371a565b5b828202905092915050565b60006135be82613625565b91506135c983613625565b9250828210156135dc576135db61371a565b5b828203905092915050565b60006135f282613605565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061364782613660565b9050919050565b600061365982613625565b9050919050565b600061366b82613672565b9050919050565b600061367d82613605565b9050919050565b60005b838110156136a2578082015181840152602081019050613687565b838111156136b1576000848401525b50505050565b600060028204905060018216806136cf57607f821691505b602082108114156136e3576136e2613778565b5b50919050565b6136f28261382c565b810181811067ffffffffffffffff82111715613711576137106137d6565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060033d11156138245760046000803e61382160005161383d565b90505b90565b600080fd5b6000601f19601f8301169050919050565b60008160e01c9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5643473a2064656372656173656420616c6c6f77616e63652062656c6f77207a60008201527f65726f0000000000000000000000000000000000000000000000000000000000602082015250565b7f5643473a207472616e7366657220746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f5643473a207472616e736665722066726f6d20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f5a65726f20416464726573732e00000000000000000000000000000000000000600082015250565b7f45564347524332303a207472616e7366657220616d6f756e742065786365656460008201527f732062616c616e63650000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f5643473a20617070726f76652066726f6d20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f5643473a20617070726f766520746f20746865207a65726f2061646472657373600082015250565b7f5472616e73666572206572726f722e0000000000000000000000000000000000600082015250565b600060443d1015613b5357613bd6565b613b5b613468565b60043d036004823e80513d602482011167ffffffffffffffff82111715613b83575050613bd6565b808201805167ffffffffffffffff811115613ba15750505050613bd6565b80602083010160043d038501811115613bbe575050505050613bd6565b613bcd826020018501866136e9565b82955050505050505b90565b613be2816135e7565b8114613bed57600080fd5b50565b613bf981613625565b8114613c0457600080fd5b5056fea2646970667358221220318d547942b9afe68e7e6afe239223779da54949c130aa51944a8f67cfa2077064736f6c63430008070033
Deployed Bytecode Sourcemap
9699:8679:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11930:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10202:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11169:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13591:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12851:73;;;;;;;;;;;;;:::i;:::-;;11047:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12204:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13754:389;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10046:67;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12114:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14147:205;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10994:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13184:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10117:81;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13303:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12302:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2098:97;;;;;;;;;;;;;:::i;:::-;;12655:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1895:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13049:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12020:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10942:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14356:381;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13419:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12748:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1656:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10684:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12928:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1682:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9976:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12560:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10736:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12419:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9948:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10709:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10013:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2201:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11930:86;11984:13;12008:5;12001:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11930:86;:::o;10202:193::-;2029:12;:10;:12::i;:::-;2018:23;;:7;:5;:7::i;:::-;:23;;;2010:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10294:1:::1;10276:20;;:6;:20;;;;10268:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;10338:6;10322:13;;:22;;;;;;;;;;;;;;;;;;10382:6;10352:13;;:37;;;;;;;;;;;;;;;;;;10202:193:::0;:::o;11169:121::-;2029:12;:10;:12::i;:::-;2018:23;;:7;:5;:7::i;:::-;:23;;;2010:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11263:16:::1;:24;11280:6;11263:24;;;;;;;;;;;;;;;;;;;;;;;;;11262:25;11235:16;:24;11252:6;11235:24;;;;;;;;;;;;;;;;:52;;;;;;;;;;;;;;;;;;11169:121:::0;:::o;13591:159::-;13674:4;13687:39;13696:12;:10;:12::i;:::-;13710:7;13719:6;13687:8;:39::i;:::-;13740:4;13733:11;;13591:159;;;;:::o;12851:73::-;2029:12;:10;:12::i;:::-;2018:23;;:7;:5;:7::i;:::-;:23;;;2010:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12895:13:::1;;;;;;;;;;;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12851:73::o:0;11047:118::-;2029:12;:10;:12::i;:::-;2018:23;;:7;:5;:7::i;:::-;:23;;;2010:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11139:15:::1;:23;11155:6;11139:23;;;;;;;;;;;;;;;;;;;;;;;;;11138:24;11112:15;:23;11128:6;11112:23;;;;;;;;;;;;;;;;:50;;;;;;;;;;;;;;;;;;11047:118:::0;:::o;12204:94::-;12265:7;12283:12;;12276:19;;12204:94;:::o;13754:389::-;13880:4;13942:1;13933:11;13896;:19;13908:6;13896:19;;;;;;;;;;;;;;;:33;13916:12;:10;:12::i;:::-;13896:33;;;;;;;;;;;;;;;;:48;13893:177;;13990:72;14028:6;13990:72;;;;;;;;;;;;;;;;;:11;:19;14002:6;13990:19;;;;;;;;;;;;;;;:33;14010:12;:10;:12::i;:::-;13990:33;;;;;;;;;;;;;;;;:37;;:72;;;;;:::i;:::-;13954:11;:19;13966:6;13954:19;;;;;;;;;;;;;;;:33;13974:12;:10;:12::i;:::-;13954:33;;;;;;;;;;;;;;;:108;;;;13893:177;14078:39;14091:6;14099:9;14110:6;14078:12;:39::i;:::-;;14133:4;14126:11;;13754:389;;;;;:::o;10046:67::-;2029:12;:10;:12::i;:::-;2018:23;;:7;:5;:7::i;:::-;:23;;;2010:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10104:6:::1;10097:4;:13;;;;10046:67:::0;:::o;12114:86::-;12172:5;12188:9;;;;;;;;;;;12181:16;;12114:86;:::o;14147:205::-;14235:4;14248:80;14257:12;:10;:12::i;:::-;14271:7;14317:10;14280:11;:25;14292:12;:10;:12::i;:::-;14280:25;;;;;;;;;;;;;;;:34;14306:7;14280:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;14248:8;:80::i;:::-;14342:4;14335:11;;14147:205;;;;:::o;10994:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;13184:115::-;2029:12;:10;:12::i;:::-;2018:23;;:7;:5;:7::i;:::-;:23;;;2010:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13257:13:::1;;;;;;;;;;;:20;;;13278:8;13288:7;13257:39;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13184:115:::0;;:::o;10117:81::-;2029:12;:10;:12::i;:::-;2018:23;;:7;:5;:7::i;:::-;:23;;;2010:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10189:6:::1;10175:11;:20;;;;10117:81:::0;:::o;13303:112::-;2029:12;:10;:12::i;:::-;2018:23;;:7;:5;:7::i;:::-;:23;;;2010:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13370:13:::1;;;;;;;;;;;:31;;;13402:9;13370:42;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13303:112:::0;:::o;12302:113::-;12376:7;12394:9;:18;12404:7;12394:18;;;;;;;;;;;;;;;;12387:25;;12302:113;;;:::o;2098:97::-;2029:12;:10;:12::i;:::-;2018:23;;:7;:5;:7::i;:::-;:23;;;2010:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2159:30:::1;2186:1;2159:18;:30::i;:::-;2098:97::o:0;12655:89::-;12702:7;12720:21;12713:28;;12655:89;:::o;1895:81::-;1941:7;1964:6;;;;;;;;;;;1957:13;;1895:81;:::o;13049:131::-;2029:12;:10;:12::i;:::-;2018:23;;:7;:5;:7::i;:::-;:23;;;2010:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13130:13:::1;;;;;;;;;;;:28;;;13159:8;13169:7;13130:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13049:131:::0;;:::o;12020:90::-;12076:13;12100:7;12093:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12020:90;:::o;10942:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;14356:381::-;14449:4;14462:24;14489:11;:25;14501:12;:10;:12::i;:::-;14489:25;;;;;;;;;;;;;;;:34;14515:7;14489:34;;;;;;;;;;;;;;;;14462:61;;14558:15;14538:16;:35;;14530:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;14639:67;14648:12;:10;:12::i;:::-;14662:7;14690:15;14671:16;:34;14639:8;:67::i;:::-;14727:4;14720:11;;;14356:381;;;;:::o;13419:168::-;13505:4;13518:45;13531:12;:10;:12::i;:::-;13545:9;13556:6;13518:12;:45::i;:::-;;13577:4;13570:11;;13419:168;;;;:::o;12748:99::-;12800:7;2029:12;:10;:12::i;:::-;2018:23;;:7;:5;:7::i;:::-;:23;;;2010:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12818:13:::1;;;;;;;;;;;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12811:33;;12748:99:::0;:::o;1656:21::-;;;;;;;;;;;;:::o;10684:20::-;;;;;;;;;;;;;:::o;12928:117::-;2029:12;:10;:12::i;:::-;2018:23;;:7;:5;:7::i;:::-;:23;;;2010:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13002:13:::1;;;;;;;;;;;:21;;;13024:8;13034:7;13002:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12928:117:::0;;:::o;1682:23::-;;;;;;;;;;;;;:::o;9976:32::-;;;;:::o;12560:91::-;12606:7;12624:24;12642:4;12624:9;:24::i;:::-;12617:31;;12560:91;:::o;10736:18::-;;;;;;;;;;;;;:::o;12419:137::-;12508:7;12526:11;:18;12538:5;12526:18;;;;;;;;;;;;;;;:27;12545:7;12526:27;;;;;;;;;;;;;;;;12519:34;;12419:137;;;;:::o;9948:23::-;;;;:::o;10709:22::-;;;;;;;;;;;;;:::o;10013:28::-;;;;;;;;;;;;;:::o;2201:191::-;2029:12;:10;:12::i;:::-;2018:23;;:7;:5;:7::i;:::-;:23;;;2010:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2306:1:::1;2286:22;;:8;:22;;;;2278:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2358:28;2377:8;2358:18;:28::i;:::-;2201:191:::0;:::o;1441:84::-;1494:7;1512:10;1505:17;;1441:84;:::o;18031:344::-;18166:1;18149:19;;:5;:19;;;;18141:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;18241:1;18222:21;;:7;:21;;;;18214:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;18319:6;18289:11;:18;18301:5;18289:18;;;;;;;;;;;;;;;:27;18308:7;18289:27;;;;;;;;;;;;;;;:36;;;;18353:7;18337:32;;18346:5;18337:32;;;18362:6;18337:32;;;;;;:::i;:::-;;;;;;;;18031:344;;;:::o;6486:166::-;6572:7;6601:1;6596;:6;;6604:12;6588:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;6619:9;6635:1;6631;:5;;;;:::i;:::-;6619:17;;6645:1;6638:8;;;6486:166;;;;;:::o;15341:936::-;15432:4;15448:6;;;;;;;;;;;15445:54;;;15463:36;15473:6;15481:9;15492:6;15463:9;:36::i;:::-;15456:43;;;;15445:54;15508:22;15533:6;15508:31;;15562:5;;;;;;;;;;;15552:15;;:6;:15;;;15548:581;;;15613:53;15635:6;15613:53;;;;;;;;;;;;;;;;;:9;:17;15623:6;15613:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;15593:9;:17;15603:6;15593:17;;;;;;;;;;;;;;;:73;;;;15680:15;:26;15696:9;15680:26;;;;;;;;;;;;;;;;;;;;;;;;;15675:86;;15736:15;15744:6;15736:7;:15::i;:::-;15719:32;;15675:86;15548:581;;;15791:5;;;;;;;;;;;15778:18;;:9;:18;;;15774:355;;;15843:53;15865:6;15843:53;;;;;;;;;;;;;;;;;:9;:17;15853:6;15843:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;15823:9;:17;15833:6;15823:17;;;;;;;;;;;;;;;:73;;;;15910:16;:24;15927:6;15910:24;;;;;;;;;;;;;;;;;;;;;;;;;15905:110;;15964:15;15972:6;15964:7;:15::i;:::-;15947:32;;15990:15;:13;:15::i;:::-;15905:110;15774:355;;;16064:36;16074:6;16082:9;16093:6;16064:9;:36::i;:::-;;16117:4;16110:11;;;;;15774:355;15548:581;16158:40;16183:14;16158:9;:20;16168:9;16158:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;16135:9;:20;16145:9;16135:20;;;;;;;;;;;;;;;:63;;;;16227:9;16210:43;;16219:6;16210:43;;;16238:14;16210:43;;;;;;:::i;:::-;;;;;;;;16267:4;16260:11;;;15341:936;;;;;;:::o;2398:177::-;2468:16;2487:6;;;;;;;;;;;2468:25;;2509:8;2500:6;;:17;;;;;;;;;;;;;;;;;;2560:8;2529:40;;2550:8;2529:40;;;;;;;;;;;;2461:114;2398:177;:::o;14743:592::-;14858:4;14897:1;14879:20;;:6;:20;;;;14871:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14975:1;14954:23;;:9;:23;;;;14946:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;15022:21;15046:9;:17;15056:6;15046:17;;;;;;;;;;;;;;;;15022:41;;15095:6;15078:13;:23;;15070:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;15212:6;15196:13;:22;15176:9;:17;15186:6;15176:17;;;;;;;;;;;;;;;:42;;;;15258:6;15234:9;:20;15244:9;15234:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;15293:9;15276:35;;15285:6;15276:35;;;15304:6;15276:35;;;;;;:::i;:::-;;;;;;;;15325:4;15318:11;;;14743:592;;;;;:::o;16283:217::-;16334:7;16349:11;16363:34;16385:11;;16363:17;16372:7;16363:4;;:8;;:17;;;;:::i;:::-;:21;;:34;;;;:::i;:::-;16349:48;;16431:33;16460:3;16431:9;:24;16449:4;16431:24;;;;;;;;;;;;;;;;:28;;:33;;;;:::i;:::-;16404:9;:24;16422:4;16404:24;;;;;;;;;;;;;;;:60;;;;16478:16;16490:3;16478:7;:11;;:16;;;;:::i;:::-;16471:23;;;16283:217;;;:::o;16506:778::-;10790:4;10781:6;;:13;;;;;;;;;;;;;;;;;;16556:18:::1;16577:9;:24;16595:4;16577:24;;;;;;;;;;;;;;;;16556:45;;16645:1;16618:9;:24;16636:4;16618:24;;;;;;;;;;;;;;;;:28;16614:665;;;16657:21;16695:1;16681:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16657:40;;16724:4;16706;16711:1;16706:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;16756:4;;;;;;;;;;;16738;16743:1;16738:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;16778:25;16806:21;16778:49;;16840:7;;;;;;;;;;;:58;;;16909:10;16930:1;16942:4;16965;16981:15;16840:165;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;16836:436;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;17250:19;17267:1;17250:19;;;;;;:::i;:::-;;;;;;;;17214:58;16836:436;;;;;;;::::0;::::1;;;;;;;;17017:17;17037:44;17063:17;17037:21;:25;;:44;;;;:::i;:::-;17017:64;;17093:9;17116:13;;;;;;;;;;;17108:27;;17143:9;17159:5;17108:61;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17092:77;;;17179:4;17171:32;;;;;;;;;;;;:::i;:::-;;;;;;;;;17006:207;;16836:436;16648:631;;16614:665;16549:735;10808:5:::0;10799:6;;:14;;;;;;;;;;;;;;;;;;16506:778::o;6201:155::-;6259:7;6275:9;6291:1;6287;:5;;;;:::i;:::-;6275:17;;6307:1;6302;:6;;6294:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;6349:1;6342:8;;;6201:155;;;;:::o;6656:201::-;6714:7;6739:1;6734;:6;6730:25;;;6751:1;6744:8;;;;6730:25;6761:9;6777:1;6773;:5;;;;:::i;:::-;6761:17;;6797:1;6792;6788;:5;;;;:::i;:::-;:10;6780:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;6850:1;6843:8;;;6656:201;;;;;:::o;6861:118::-;6919:7;6937:39;6941:1;6944;6937:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;6930:46;;6861:118;;;;:::o;6360:122::-;6418:7;6436:43;6440:1;6443;6436:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;6429:50;;6360:122;;;;:::o;6983:165::-;7069:7;7097:1;7093;:5;7100:12;7085:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;7115:9;7131:1;7127;:5;;;;:::i;:::-;7115:17;;7141:1;7134:8;;;6983:165;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:::-;198:5;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;152:139;;;;:::o;297:143::-;354:5;385:6;379:13;370:22;;401:33;428:5;401:33;:::i;:::-;297:143;;;;:::o;446:329::-;505:6;554:2;542:9;533:7;529:23;525:32;522:119;;;560:79;;:::i;:::-;522:119;680:1;705:53;750:7;741:6;730:9;726:22;705:53;:::i;:::-;695:63;;651:117;446:329;;;;:::o;781:474::-;849:6;857;906:2;894:9;885:7;881:23;877:32;874:119;;;912:79;;:::i;:::-;874:119;1032:1;1057:53;1102:7;1093:6;1082:9;1078:22;1057:53;:::i;:::-;1047:63;;1003:117;1159:2;1185:53;1230:7;1221:6;1210:9;1206:22;1185:53;:::i;:::-;1175:63;;1130:118;781:474;;;;;:::o;1261:619::-;1338:6;1346;1354;1403:2;1391:9;1382:7;1378:23;1374:32;1371:119;;;1409:79;;:::i;:::-;1371:119;1529:1;1554:53;1599:7;1590:6;1579:9;1575:22;1554:53;:::i;:::-;1544:63;;1500:117;1656:2;1682:53;1727:7;1718:6;1707:9;1703:22;1682:53;:::i;:::-;1672:63;;1627:118;1784:2;1810:53;1855:7;1846:6;1835:9;1831:22;1810:53;:::i;:::-;1800:63;;1755:118;1261:619;;;;;:::o;1886:474::-;1954:6;1962;2011:2;1999:9;1990:7;1986:23;1982:32;1979:119;;;2017:79;;:::i;:::-;1979:119;2137:1;2162:53;2207:7;2198:6;2187:9;2183:22;2162:53;:::i;:::-;2152:63;;2108:117;2264:2;2290:53;2335:7;2326:6;2315:9;2311:22;2290:53;:::i;:::-;2280:63;;2235:118;1886:474;;;;;:::o;2366:329::-;2425:6;2474:2;2462:9;2453:7;2449:23;2445:32;2442:119;;;2480:79;;:::i;:::-;2442:119;2600:1;2625:53;2670:7;2661:6;2650:9;2646:22;2625:53;:::i;:::-;2615:63;;2571:117;2366:329;;;;:::o;2701:351::-;2771:6;2820:2;2808:9;2799:7;2795:23;2791:32;2788:119;;;2826:79;;:::i;:::-;2788:119;2946:1;2971:64;3027:7;3018:6;3007:9;3003:22;2971:64;:::i;:::-;2961:74;;2917:128;2701:351;;;;:::o;3058:474::-;3126:6;3134;3183:2;3171:9;3162:7;3158:23;3154:32;3151:119;;;3189:79;;:::i;:::-;3151:119;3309:1;3334:53;3379:7;3370:6;3359:9;3355:22;3334:53;:::i;:::-;3324:63;;3280:117;3436:2;3462:53;3507:7;3498:6;3487:9;3483:22;3462:53;:::i;:::-;3452:63;;3407:118;3058:474;;;;;:::o;3538:179::-;3607:10;3628:46;3670:3;3662:6;3628:46;:::i;:::-;3706:4;3701:3;3697:14;3683:28;;3538:179;;;;:::o;3723:108::-;3800:24;3818:5;3800:24;:::i;:::-;3795:3;3788:37;3723:108;;:::o;3837:118::-;3924:24;3942:5;3924:24;:::i;:::-;3919:3;3912:37;3837:118;;:::o;3991:732::-;4110:3;4139:54;4187:5;4139:54;:::i;:::-;4209:86;4288:6;4283:3;4209:86;:::i;:::-;4202:93;;4319:56;4369:5;4319:56;:::i;:::-;4398:7;4429:1;4414:284;4439:6;4436:1;4433:13;4414:284;;;4515:6;4509:13;4542:63;4601:3;4586:13;4542:63;:::i;:::-;4535:70;;4628:60;4681:6;4628:60;:::i;:::-;4618:70;;4474:224;4461:1;4458;4454:9;4449:14;;4414:284;;;4418:14;4714:3;4707:10;;4115:608;;;3991:732;;;;:::o;4729:109::-;4810:21;4825:5;4810:21;:::i;:::-;4805:3;4798:34;4729:109;;:::o;4844:161::-;4946:52;4992:5;4946:52;:::i;:::-;4941:3;4934:65;4844:161;;:::o;5011:147::-;5106:45;5145:5;5106:45;:::i;:::-;5101:3;5094:58;5011:147;;:::o;5164:364::-;5252:3;5280:39;5313:5;5280:39;:::i;:::-;5335:71;5399:6;5394:3;5335:71;:::i;:::-;5328:78;;5415:52;5460:6;5455:3;5448:4;5441:5;5437:16;5415:52;:::i;:::-;5492:29;5514:6;5492:29;:::i;:::-;5487:3;5483:39;5476:46;;5256:272;5164:364;;;;:::o;5534:366::-;5676:3;5697:67;5761:2;5756:3;5697:67;:::i;:::-;5690:74;;5773:93;5862:3;5773:93;:::i;:::-;5891:2;5886:3;5882:12;5875:19;;5534:366;;;:::o;5906:::-;6048:3;6069:67;6133:2;6128:3;6069:67;:::i;:::-;6062:74;;6145:93;6234:3;6145:93;:::i;:::-;6263:2;6258:3;6254:12;6247:19;;5906:366;;;:::o;6278:::-;6420:3;6441:67;6505:2;6500:3;6441:67;:::i;:::-;6434:74;;6517:93;6606:3;6517:93;:::i;:::-;6635:2;6630:3;6626:12;6619:19;;6278:366;;;:::o;6650:::-;6792:3;6813:67;6877:2;6872:3;6813:67;:::i;:::-;6806:74;;6889:93;6978:3;6889:93;:::i;:::-;7007:2;7002:3;6998:12;6991:19;;6650:366;;;:::o;7022:::-;7164:3;7185:67;7249:2;7244:3;7185:67;:::i;:::-;7178:74;;7261:93;7350:3;7261:93;:::i;:::-;7379:2;7374:3;7370:12;7363:19;;7022:366;;;:::o;7394:::-;7536:3;7557:67;7621:2;7616:3;7557:67;:::i;:::-;7550:74;;7633:93;7722:3;7633:93;:::i;:::-;7751:2;7746:3;7742:12;7735:19;;7394:366;;;:::o;7766:::-;7908:3;7929:67;7993:2;7988:3;7929:67;:::i;:::-;7922:74;;8005:93;8094:3;8005:93;:::i;:::-;8123:2;8118:3;8114:12;8107:19;;7766:366;;;:::o;8138:::-;8280:3;8301:67;8365:2;8360:3;8301:67;:::i;:::-;8294:74;;8377:93;8466:3;8377:93;:::i;:::-;8495:2;8490:3;8486:12;8479:19;;8138:366;;;:::o;8510:::-;8652:3;8673:67;8737:2;8732:3;8673:67;:::i;:::-;8666:74;;8749:93;8838:3;8749:93;:::i;:::-;8867:2;8862:3;8858:12;8851:19;;8510:366;;;:::o;8882:::-;9024:3;9045:67;9109:2;9104:3;9045:67;:::i;:::-;9038:74;;9121:93;9210:3;9121:93;:::i;:::-;9239:2;9234:3;9230:12;9223:19;;8882:366;;;:::o;9254:398::-;9413:3;9434:83;9515:1;9510:3;9434:83;:::i;:::-;9427:90;;9526:93;9615:3;9526:93;:::i;:::-;9644:1;9639:3;9635:11;9628:18;;9254:398;;;:::o;9658:366::-;9800:3;9821:67;9885:2;9880:3;9821:67;:::i;:::-;9814:74;;9897:93;9986:3;9897:93;:::i;:::-;10015:2;10010:3;10006:12;9999:19;;9658:366;;;:::o;10030:::-;10172:3;10193:67;10257:2;10252:3;10193:67;:::i;:::-;10186:74;;10269:93;10358:3;10269:93;:::i;:::-;10387:2;10382:3;10378:12;10371:19;;10030:366;;;:::o;10402:118::-;10489:24;10507:5;10489:24;:::i;:::-;10484:3;10477:37;10402:118;;:::o;10526:112::-;10609:22;10625:5;10609:22;:::i;:::-;10604:3;10597:35;10526:112;;:::o;10644:379::-;10828:3;10850:147;10993:3;10850:147;:::i;:::-;10843:154;;11014:3;11007:10;;10644:379;;;:::o;11029:222::-;11122:4;11160:2;11149:9;11145:18;11137:26;;11173:71;11241:1;11230:9;11226:17;11217:6;11173:71;:::i;:::-;11029:222;;;;:::o;11257:210::-;11344:4;11382:2;11371:9;11367:18;11359:26;;11395:65;11457:1;11446:9;11442:17;11433:6;11395:65;:::i;:::-;11257:210;;;;:::o;11473:252::-;11581:4;11619:2;11608:9;11604:18;11596:26;;11632:86;11715:1;11704:9;11700:17;11691:6;11632:86;:::i;:::-;11473:252;;;;:::o;11731:313::-;11844:4;11882:2;11871:9;11867:18;11859:26;;11931:9;11925:4;11921:20;11917:1;11906:9;11902:17;11895:47;11959:78;12032:4;12023:6;11959:78;:::i;:::-;11951:86;;11731:313;;;;:::o;12050:419::-;12216:4;12254:2;12243:9;12239:18;12231:26;;12303:9;12297:4;12293:20;12289:1;12278:9;12274:17;12267:47;12331:131;12457:4;12331:131;:::i;:::-;12323:139;;12050:419;;;:::o;12475:::-;12641:4;12679:2;12668:9;12664:18;12656:26;;12728:9;12722:4;12718:20;12714:1;12703:9;12699:17;12692:47;12756:131;12882:4;12756:131;:::i;:::-;12748:139;;12475:419;;;:::o;12900:::-;13066:4;13104:2;13093:9;13089:18;13081:26;;13153:9;13147:4;13143:20;13139:1;13128:9;13124:17;13117:47;13181:131;13307:4;13181:131;:::i;:::-;13173:139;;12900:419;;;:::o;13325:::-;13491:4;13529:2;13518:9;13514:18;13506:26;;13578:9;13572:4;13568:20;13564:1;13553:9;13549:17;13542:47;13606:131;13732:4;13606:131;:::i;:::-;13598:139;;13325:419;;;:::o;13750:::-;13916:4;13954:2;13943:9;13939:18;13931:26;;14003:9;13997:4;13993:20;13989:1;13978:9;13974:17;13967:47;14031:131;14157:4;14031:131;:::i;:::-;14023:139;;13750:419;;;:::o;14175:::-;14341:4;14379:2;14368:9;14364:18;14356:26;;14428:9;14422:4;14418:20;14414:1;14403:9;14399:17;14392:47;14456:131;14582:4;14456:131;:::i;:::-;14448:139;;14175:419;;;:::o;14600:::-;14766:4;14804:2;14793:9;14789:18;14781:26;;14853:9;14847:4;14843:20;14839:1;14828:9;14824:17;14817:47;14881:131;15007:4;14881:131;:::i;:::-;14873:139;;14600:419;;;:::o;15025:::-;15191:4;15229:2;15218:9;15214:18;15206:26;;15278:9;15272:4;15268:20;15264:1;15253:9;15249:17;15242:47;15306:131;15432:4;15306:131;:::i;:::-;15298:139;;15025:419;;;:::o;15450:::-;15616:4;15654:2;15643:9;15639:18;15631:26;;15703:9;15697:4;15693:20;15689:1;15678:9;15674:17;15667:47;15731:131;15857:4;15731:131;:::i;:::-;15723:139;;15450:419;;;:::o;15875:::-;16041:4;16079:2;16068:9;16064:18;16056:26;;16128:9;16122:4;16118:20;16114:1;16103:9;16099:17;16092:47;16156:131;16282:4;16156:131;:::i;:::-;16148:139;;15875:419;;;:::o;16300:::-;16466:4;16504:2;16493:9;16489:18;16481:26;;16553:9;16547:4;16543:20;16539:1;16528:9;16524:17;16517:47;16581:131;16707:4;16581:131;:::i;:::-;16573:139;;16300:419;;;:::o;16725:::-;16891:4;16929:2;16918:9;16914:18;16906:26;;16978:9;16972:4;16968:20;16964:1;16953:9;16949:17;16942:47;17006:131;17132:4;17006:131;:::i;:::-;16998:139;;16725:419;;;:::o;17150:222::-;17243:4;17281:2;17270:9;17266:18;17258:26;;17294:71;17362:1;17351:9;17347:17;17338:6;17294:71;:::i;:::-;17150:222;;;;:::o;17378:332::-;17499:4;17537:2;17526:9;17522:18;17514:26;;17550:71;17618:1;17607:9;17603:17;17594:6;17550:71;:::i;:::-;17631:72;17699:2;17688:9;17684:18;17675:6;17631:72;:::i;:::-;17378:332;;;;;:::o;17716:831::-;17979:4;18017:3;18006:9;18002:19;17994:27;;18031:71;18099:1;18088:9;18084:17;18075:6;18031:71;:::i;:::-;18112:80;18188:2;18177:9;18173:18;18164:6;18112:80;:::i;:::-;18239:9;18233:4;18229:20;18224:2;18213:9;18209:18;18202:48;18267:108;18370:4;18361:6;18267:108;:::i;:::-;18259:116;;18385:72;18453:2;18442:9;18438:18;18429:6;18385:72;:::i;:::-;18467:73;18535:3;18524:9;18520:19;18511:6;18467:73;:::i;:::-;17716:831;;;;;;;;:::o;18553:214::-;18642:4;18680:2;18669:9;18665:18;18657:26;;18693:67;18757:1;18746:9;18742:17;18733:6;18693:67;:::i;:::-;18553:214;;;;:::o;18773:75::-;18806:6;18839:2;18833:9;18823:19;;18773:75;:::o;18854:132::-;18921:4;18944:3;18936:11;;18974:4;18969:3;18965:14;18957:22;;18854:132;;;:::o;18992:114::-;19059:6;19093:5;19087:12;19077:22;;18992:114;;;:::o;19112:99::-;19164:6;19198:5;19192:12;19182:22;;19112:99;;;:::o;19217:113::-;19287:4;19319;19314:3;19310:14;19302:22;;19217:113;;;:::o;19336:184::-;19435:11;19469:6;19464:3;19457:19;19509:4;19504:3;19500:14;19485:29;;19336:184;;;;:::o;19526:147::-;19627:11;19664:3;19649:18;;19526:147;;;;:::o;19679:169::-;19763:11;19797:6;19792:3;19785:19;19837:4;19832:3;19828:14;19813:29;;19679:169;;;;:::o;19854:305::-;19894:3;19913:20;19931:1;19913:20;:::i;:::-;19908:25;;19947:20;19965:1;19947:20;:::i;:::-;19942:25;;20101:1;20033:66;20029:74;20026:1;20023:81;20020:107;;;20107:18;;:::i;:::-;20020:107;20151:1;20148;20144:9;20137:16;;19854:305;;;;:::o;20165:185::-;20205:1;20222:20;20240:1;20222:20;:::i;:::-;20217:25;;20256:20;20274:1;20256:20;:::i;:::-;20251:25;;20295:1;20285:35;;20300:18;;:::i;:::-;20285:35;20342:1;20339;20335:9;20330:14;;20165:185;;;;:::o;20356:348::-;20396:7;20419:20;20437:1;20419:20;:::i;:::-;20414:25;;20453:20;20471:1;20453:20;:::i;:::-;20448:25;;20641:1;20573:66;20569:74;20566:1;20563:81;20558:1;20551:9;20544:17;20540:105;20537:131;;;20648:18;;:::i;:::-;20537:131;20696:1;20693;20689:9;20678:20;;20356:348;;;;:::o;20710:191::-;20750:4;20770:20;20788:1;20770:20;:::i;:::-;20765:25;;20804:20;20822:1;20804:20;:::i;:::-;20799:25;;20843:1;20840;20837:8;20834:34;;;20848:18;;:::i;:::-;20834:34;20893:1;20890;20886:9;20878:17;;20710:191;;;;:::o;20907:96::-;20944:7;20973:24;20991:5;20973:24;:::i;:::-;20962:35;;20907:96;;;:::o;21009:90::-;21043:7;21086:5;21079:13;21072:21;21061:32;;21009:90;;;:::o;21105:126::-;21142:7;21182:42;21175:5;21171:54;21160:65;;21105:126;;;:::o;21237:77::-;21274:7;21303:5;21292:16;;21237:77;;;:::o;21320:86::-;21355:7;21395:4;21388:5;21384:16;21373:27;;21320:86;;;:::o;21412:141::-;21477:9;21510:37;21541:5;21510:37;:::i;:::-;21497:50;;21412:141;;;:::o;21559:121::-;21617:9;21650:24;21668:5;21650:24;:::i;:::-;21637:37;;21559:121;;;:::o;21686:126::-;21736:9;21769:37;21800:5;21769:37;:::i;:::-;21756:50;;21686:126;;;:::o;21818:113::-;21868:9;21901:24;21919:5;21901:24;:::i;:::-;21888:37;;21818:113;;;:::o;21937:307::-;22005:1;22015:113;22029:6;22026:1;22023:13;22015:113;;;22114:1;22109:3;22105:11;22099:18;22095:1;22090:3;22086:11;22079:39;22051:2;22048:1;22044:10;22039:15;;22015:113;;;22146:6;22143:1;22140:13;22137:101;;;22226:1;22217:6;22212:3;22208:16;22201:27;22137:101;21986:258;21937:307;;;:::o;22250:320::-;22294:6;22331:1;22325:4;22321:12;22311:22;;22378:1;22372:4;22368:12;22399:18;22389:81;;22455:4;22447:6;22443:17;22433:27;;22389:81;22517:2;22509:6;22506:14;22486:18;22483:38;22480:84;;;22536:18;;:::i;:::-;22480:84;22301:269;22250:320;;;:::o;22576:281::-;22659:27;22681:4;22659:27;:::i;:::-;22651:6;22647:40;22789:6;22777:10;22774:22;22753:18;22741:10;22738:34;22735:62;22732:88;;;22800:18;;:::i;:::-;22732:88;22840:10;22836:2;22829:22;22619:238;22576:281;;:::o;22863:180::-;22911:77;22908:1;22901:88;23008:4;23005:1;22998:15;23032:4;23029:1;23022:15;23049:180;23097:77;23094:1;23087:88;23194:4;23191:1;23184:15;23218:4;23215:1;23208:15;23235:180;23283:77;23280:1;23273:88;23380:4;23377:1;23370:15;23404:4;23401:1;23394:15;23421:180;23469:77;23466:1;23459:88;23566:4;23563:1;23556:15;23590:4;23587:1;23580:15;23607:180;23655:77;23652:1;23645:88;23752:4;23749:1;23742:15;23776:4;23773:1;23766:15;23793:183;23828:3;23866:1;23848:16;23845:23;23842:128;;;23904:1;23901;23898;23883:23;23926:34;23957:1;23951:8;23926:34;:::i;:::-;23919:41;;23842:128;23793:183;:::o;24105:117::-;24214:1;24211;24204:12;24228:102;24269:6;24320:2;24316:7;24311:2;24304:5;24300:14;24296:28;24286:38;;24228:102;;;:::o;24336:106::-;24380:8;24429:5;24424:3;24420:15;24399:36;;24336:106;;;:::o;24448:225::-;24588:34;24584:1;24576:6;24572:14;24565:58;24657:8;24652:2;24644:6;24640:15;24633:33;24448:225;:::o;24679:177::-;24819:29;24815:1;24807:6;24803:14;24796:53;24679:177;:::o;24862:222::-;25002:34;24998:1;24990:6;24986:14;24979:58;25071:5;25066:2;25058:6;25054:15;25047:30;24862:222;:::o;25090:220::-;25230:34;25226:1;25218:6;25214:14;25207:58;25299:3;25294:2;25286:6;25282:15;25275:28;25090:220;:::o;25316:222::-;25456:34;25452:1;25444:6;25440:14;25433:58;25525:5;25520:2;25512:6;25508:15;25501:30;25316:222;:::o;25544:163::-;25684:15;25680:1;25672:6;25668:14;25661:39;25544:163;:::o;25713:228::-;25853:34;25849:1;25841:6;25837:14;25830:58;25922:11;25917:2;25909:6;25905:15;25898:36;25713:228;:::o;25947:220::-;26087:34;26083:1;26075:6;26071:14;26064:58;26156:3;26151:2;26143:6;26139:15;26132:28;25947:220;:::o;26173:221::-;26313:34;26309:1;26301:6;26297:14;26290:58;26382:4;26377:2;26369:6;26365:15;26358:29;26173:221;:::o;26400:182::-;26540:34;26536:1;26528:6;26524:14;26517:58;26400:182;:::o;26588:114::-;;:::o;26708:182::-;26848:34;26844:1;26836:6;26832:14;26825:58;26708:182;:::o;26896:165::-;27036:17;27032:1;27024:6;27020:14;27013:41;26896:165;:::o;27067:711::-;27106:3;27144:4;27126:16;27123:26;27120:39;;;27152:5;;27120:39;27181:20;;:::i;:::-;27256:1;27238:16;27234:24;27231:1;27225:4;27210:49;27289:4;27283:11;27388:16;27381:4;27373:6;27369:17;27366:39;27333:18;27325:6;27322:30;27306:113;27303:146;;;27434:5;;;;27303:146;27480:6;27474:4;27470:17;27516:3;27510:10;27543:18;27535:6;27532:30;27529:43;;;27565:5;;;;;;27529:43;27613:6;27606:4;27601:3;27597:14;27593:27;27672:1;27654:16;27650:24;27644:4;27640:35;27635:3;27632:44;27629:57;;;27679:5;;;;;;;27629:57;27696;27744:6;27738:4;27734:17;27726:6;27722:30;27716:4;27696:57;:::i;:::-;27769:3;27762:10;;27110:668;;;;;27067:711;;:::o;27784:122::-;27857:24;27875:5;27857:24;:::i;:::-;27850:5;27847:35;27837:63;;27896:1;27893;27886:12;27837:63;27784:122;:::o;27912:::-;27985:24;28003:5;27985:24;:::i;:::-;27978:5;27975:35;27965:63;;28024:1;28021;28014:12;27965:63;27912:122;:::o
Swarm Source
ipfs://318d547942b9afe68e7e6afe239223779da54949c130aa51944a8f67cfa20770
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.