ERC-20
Overview
Max Total Supply
200,000,000 UNITED
Holders
403
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
20,025 UNITEDValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
unitedDegens
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-03-14 */ //SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.4; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract unitedDegens is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "United Degens";// string private constant _symbol = "UNITED";// uint8 private constant _decimals = 9; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant _tTotal = 200000000 * 10 ** 9; uint256 public launchBlock; //Liquidity Fee Buy uint256 private _liquidityFeeBuy = 2; //Liquidity Fee Buy uint256 private _devFeeBuy = 1; //Liquidity Fee Marketing uint256 private _marketingFeeBuy = 8; //Liquidity Fee Sell uint256 private _liquidityFeeSell = 5; //Liquidity Fee Buy uint256 private _devFeeSell = 1; //Liquidity Fee Marketing uint256 private _marketingFeeSell = 9; //Buy Fee uint256 private _taxFeeOnBuy = _liquidityFeeBuy + _devFeeBuy + _marketingFeeBuy;// //Sell Fee uint256 private _taxFeeOnSell = 99;// //Original Fee uint256 private _taxFee = _taxFeeOnSell; uint256 private _previoustaxFee = _taxFee; mapping(address => bool) public bots; address payable private _developmentAddress = payable(0xFFE15d77C78FBD20c4571064e161A22c4114aab3);// address payable private _marketingAddress = payable(0x6173868A5e412129F5EC7f6f1116Abf779ABa47f);// IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private inSend = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 1000000 * 10 ** 9; // uint256 public _maxWalletSize = 2000000 * 10 ** 9; // uint256 public _swapTokensAtAmount = 10000 * 10 ** 9; // event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } modifier lockTheSend { inSend = true; _; inSend = false; } constructor(address router) { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_developmentAddress] = true; _isExcludedFromFee[_marketingAddress] = true; bots[address(0x66f049111958809841Bbe4b81c034Da2D953AA0c)] = true; bots[address(0x000000005736775Feb0C8568e7DEe77222a26880)] = true; bots[address(0x34822A742BDE3beF13acabF14244869841f06A73)] = true; bots[address(0x69611A66d0CF67e5Ddd1957e6499b5C5A3E44845)] = true; bots[address(0x69611A66d0CF67e5Ddd1957e6499b5C5A3E44845)] = true; bots[address(0x8484eFcBDa76955463aa12e1d504D7C6C89321F8)] = true; bots[address(0xe5265ce4D0a3B191431e1bac056d72b2b9F0Fe44)] = true; bots[address(0x33F9Da98C57674B5FC5AE7349E3C732Cf2E6Ce5C)] = true; bots[address(0xc59a8E2d2c476BA9122aa4eC19B4c5E2BBAbbC28)] = true; bots[address(0x21053Ff2D9Fc37D4DB8687d48bD0b57581c1333D)] = true; bots[address(0x4dd6A0D3191A41522B84BC6b65d17f6f5e6a4192)] = true; _tOwned[_msgSender()] = _tTotal; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _tOwned[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function removeAllFee() private { if (_taxFee == 0) return; _previoustaxFee = _taxFee; _taxFee = 0; } function restoreAllFee() private { _taxFee = _previoustaxFee; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && to != owner()) { //Trade start check if (!tradingOpen) { require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled"); } require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!"); if (block.number <= launchBlock && from == uniswapV2Pair && to != address(uniswapV2Router) && to != address(this)) { bots[to] = true; } if (to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance * 10 ** 9 >= _swapTokensAtAmount; if (contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapAndLiquidate(contractTokenBalance); } } bool takeFee = true; //Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { //Set Fee for Buys if (from == uniswapV2Pair && to != address(uniswapV2Router)) { _taxFee = _taxFeeOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } function swapAndLiquidate(uint256 contractTokenBalance) private lockTheSwap { uint256 devTokens = contractTokenBalance.mul(_devFeeBuy + _devFeeSell).div(_taxFeeOnBuy + _taxFeeOnSell); uint256 marketingTokens = contractTokenBalance.mul(_marketingFeeBuy + _marketingFeeSell).div(_taxFeeOnBuy + _taxFeeOnSell); uint256 initialBalance = address(this).balance; swapTokensForEth(devTokens + marketingTokens); uint256 diffBalance = address(this).balance.sub(initialBalance); uint256 devShare = diffBalance.mul(_devFeeBuy + _devFeeSell).div(_devFeeBuy + _devFeeSell + _marketingFeeBuy + _marketingFeeSell); uint256 marketingShare = diffBalance.sub(devShare); _developmentAddress.transfer(devShare); _marketingAddress.transfer(marketingShare); uint256 tokensForLiquidity = contractTokenBalance.sub(devTokens).sub(marketingTokens); uint256 half = tokensForLiquidity.div(2); uint256 otherHalf = tokensForLiquidity.sub(half); initialBalance = address(this).balance; swapTokensForEth(half); diffBalance = address(this).balance.sub(initialBalance); addLiquidity(otherHalf, diffBalance); } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value : ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), block.timestamp ); } function sendETHToFee(uint256 amount) private { _developmentAddress.transfer(amount.div(2)); _marketingAddress.transfer(amount.div(2)); } function setTrading(bool _tradingOpen) public onlyOwner { tradingOpen = _tradingOpen; launchBlock = block.number; } function manualswap() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractBalance = balanceOf(address(this)); swapAndLiquidate(contractBalance); } function manualsend() external lockTheSend { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractETHBalance = address(this).balance; uint256 devShare = contractETHBalance.mul(_devFeeBuy + _devFeeSell).div(_devFeeBuy + _devFeeSell + _marketingFeeBuy + _marketingFeeSell); uint256 marketingShare = contractETHBalance.sub(devShare); _developmentAddress.transfer(devShare); _marketingAddress.transfer(marketingShare); } function blockBots(address[] memory bots_) public onlyOwner { for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function unblockBot(address notbot) public onlyOwner { bots[notbot] = false; } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 tTransferAmount, uint256 tTeam ) = _getValues(tAmount); _tOwned[sender] = _tOwned[sender].sub(tTransferAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _tOwned[address(this)] = _tOwned[address(this)].add(tTeam); emit Transfer(sender, recipient, tTransferAmount); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256 ) { (uint256 tTransferAmount, uint256 tTeam) = _getTValues(tAmount, _taxFee); return (tTransferAmount, tTeam); } function _getTValues( uint256 tAmount, uint256 taxFee ) private pure returns ( uint256, uint256 ) { uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tTeam); return (tTransferAmount, tTeam); } function setFee(uint256 liquidityFeeBuy, uint256 marketingFeeBuy, uint256 liquidityFeeSell, uint256 marketingFeeSell) public onlyOwner { _liquidityFeeBuy = liquidityFeeBuy; _marketingFeeBuy = marketingFeeBuy; _liquidityFeeSell = liquidityFeeSell; _marketingFeeSell = marketingFeeSell; _taxFeeOnSell = _liquidityFeeSell + _devFeeSell + _marketingFeeSell; } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } //Set maximum transaction function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for (uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } function isExcludedFromFee(address account) public onlyOwner view returns (bool) { return _isExcludedFromFee[account]; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"router","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityFeeBuy","type":"uint256"},{"internalType":"uint256","name":"marketingFeeBuy","type":"uint256"},{"internalType":"uint256","name":"liquidityFeeSell","type":"uint256"},{"internalType":"uint256","name":"marketingFeeSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600260065560016007556008805560056009556001600a556009600b5560085460075460065462000036919062000c84565b62000042919062000c84565b600c556063600d55600d54600e55600e54600f5573ffe15d77c78fbd20c4571064e161a22c4114aab3601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550736173868a5e412129f5ec7f6f1116abf779aba47f601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601460156101000a81548160ff0219169083151502179055506000601460166101000a81548160ff0219169083151502179055506001601460176101000a81548160ff02191690831515021790555066038d7ea4c6800060155566071afd498d00006016556509184e72a0006017553480156200017e57600080fd5b5060405162004fc338038062004fc38339818101604052810190620001a4919062000bec565b6000620001b662000ba460201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600081905080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002e157600080fd5b505afa158015620002f6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031c919062000bec565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200037f57600080fd5b505afa15801562000394573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ba919062000bec565b6040518363ffffffff1660e01b8152600401620003d992919062000c3a565b602060405180830381600087803b158015620003f457600080fd5b505af115801562000409573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200042f919062000bec565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600460006200048562000bac60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060007366f049111958809841bbe4b81c034da2d953aa0c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060006f5736775feb0c8568e7dee77222a2688073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060007334822a742bde3bef13acabf14244869841f06a7373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060007369611a66d0cf67e5ddd1957e6499b5c5a3e4484573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060007369611a66d0cf67e5ddd1957e6499b5c5a3e4484573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000738484efcbda76955463aa12e1d504d7c6c89321f873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073e5265ce4d0a3b191431e1bac056d72b2b9f0fe4473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060007333f9da98c57674b5fc5ae7349e3c732cf2e6ce5c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073c59a8e2d2c476ba9122aa4ec19b4c5e2bbabbc2873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060007321053ff2d9fc37d4db8687d48bd0b57581c1333d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000734dd6a0d3191a41522b84bc6b65d17f6f5e6a419273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506702c68af0bb1400006002600062000adf62000ba460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000b2d62000ba460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6702c68af0bb14000060405162000b94919062000c67565b60405180910390a3505062000d68565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008151905062000be68162000d4e565b92915050565b60006020828403121562000bff57600080fd5b600062000c0f8482850162000bd5565b91505092915050565b62000c238162000ce1565b82525050565b62000c348162000d15565b82525050565b600060408201905062000c51600083018562000c18565b62000c60602083018462000c18565b9392505050565b600060208201905062000c7e600083018462000c29565b92915050565b600062000c918262000d15565b915062000c9e8362000d15565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000cd65762000cd562000d1f565b5b828201905092915050565b600062000cee8262000cf5565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b62000d598162000ce1565b811462000d6557600080fd5b50565b61424b8062000d786000396000f3fe6080604052600436106101db5760003560e01c806374010ece11610102578063a9059cbb11610095578063d00efb2f11610064578063d00efb2f14610690578063dd62ed3e146106bb578063ea1644d5146106f8578063f2fde38b14610721576101e2565b8063a9059cbb146105d6578063bfd7928414610613578063c3c8cd8014610650578063c492f04614610667576101e2565b80638f9a55c0116100d15780638f9a55c01461052e57806395d89b411461055957806398a5c31514610584578063a2a957bb146105ad576101e2565b806374010ece146104865780637d1db4a5146104af5780638da5cb5b146104da5780638f70ccf714610505576101e2565b8063313ce5671161017a5780636d8aa8f8116101495780636d8aa8f8146103f25780636fc3eaec1461041b57806370a0823114610432578063715018a61461046f576101e2565b8063313ce5671461033657806349bd5a5e146103615780635342acb41461038c5780636b999053146103c9576101e2565b80631694505e116101b65780631694505e1461027857806318160ddd146102a357806323b872dd146102ce5780632fd689e31461030b576101e2565b8062b8cf2a146101e757806306fdde0314610210578063095ea7b31461023b576101e2565b366101e257005b600080fd5b3480156101f357600080fd5b5061020e6004803603810190610209919061335e565b61074a565b005b34801561021c57600080fd5b5061022561089a565b6040516102329190613834565b60405180910390f35b34801561024757600080fd5b50610262600480360381019061025d91906132ca565b6108d7565b60405161026f91906137fe565b60405180910390f35b34801561028457600080fd5b5061028d6108f5565b60405161029a9190613819565b60405180910390f35b3480156102af57600080fd5b506102b861091b565b6040516102c591906139f6565b60405180910390f35b3480156102da57600080fd5b506102f560048036038101906102f0919061327b565b61092b565b60405161030291906137fe565b60405180910390f35b34801561031757600080fd5b50610320610a04565b60405161032d91906139f6565b60405180910390f35b34801561034257600080fd5b5061034b610a0a565b6040516103589190613a6b565b60405180910390f35b34801561036d57600080fd5b50610376610a13565b6040516103839190613782565b60405180910390f35b34801561039857600080fd5b506103b360048036038101906103ae91906131ed565b610a39565b6040516103c091906137fe565b60405180910390f35b3480156103d557600080fd5b506103f060048036038101906103eb91906131ed565b610b24565b005b3480156103fe57600080fd5b506104196004803603810190610414919061339f565b610c14565b005b34801561042757600080fd5b50610430610cc6565b005b34801561043e57600080fd5b50610459600480360381019061045491906131ed565b610f10565b60405161046691906139f6565b60405180910390f35b34801561047b57600080fd5b50610484610f59565b005b34801561049257600080fd5b506104ad60048036038101906104a891906133c8565b6110ac565b005b3480156104bb57600080fd5b506104c461114b565b6040516104d191906139f6565b60405180910390f35b3480156104e657600080fd5b506104ef611151565b6040516104fc9190613782565b60405180910390f35b34801561051157600080fd5b5061052c6004803603810190610527919061339f565b61117a565b005b34801561053a57600080fd5b50610543611232565b60405161055091906139f6565b60405180910390f35b34801561056557600080fd5b5061056e611238565b60405161057b9190613834565b60405180910390f35b34801561059057600080fd5b506105ab60048036038101906105a691906133c8565b611275565b005b3480156105b957600080fd5b506105d460048036038101906105cf9190613440565b611314565b005b3480156105e257600080fd5b506105fd60048036038101906105f891906132ca565b6113ee565b60405161060a91906137fe565b60405180910390f35b34801561061f57600080fd5b5061063a600480360381019061063591906131ed565b61140c565b60405161064791906137fe565b60405180910390f35b34801561065c57600080fd5b5061066561142c565b005b34801561067357600080fd5b5061068e60048036038101906106899190613306565b611505565b005b34801561069c57600080fd5b506106a5611665565b6040516106b291906139f6565b60405180910390f35b3480156106c757600080fd5b506106e260048036038101906106dd919061323f565b61166b565b6040516106ef91906139f6565b60405180910390f35b34801561070457600080fd5b5061071f600480360381019061071a91906133c8565b6116f2565b005b34801561072d57600080fd5b50610748600480360381019061074391906131ed565b611791565b005b610752611953565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d690613956565b60405180910390fd5b60005b81518110156108965760016010600084848151811061082a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061088e90613d30565b9150506107e2565b5050565b60606040518060400160405280600d81526020017f556e6974656420446567656e7300000000000000000000000000000000000000815250905090565b60006108eb6108e4611953565b848461195b565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006702c68af0bb140000905090565b6000610938848484611b26565b6109f984610944611953565b6109f4856040518060600160405280602881526020016141ee60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109aa611953565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124de9092919063ffffffff16565b61195b565b600190509392505050565b60175481565b60006009905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610a43611953565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac790613956565b60405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610b2c611953565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb090613956565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610c1c611953565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca090613956565b60405180910390fd5b80601460176101000a81548160ff02191690831515021790555050565b6001601460166101000a81548160ff021916908315150217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d22611953565b73ffffffffffffffffffffffffffffffffffffffff161480610d985750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d80611953565b73ffffffffffffffffffffffffffffffffffffffff16145b610da157600080fd5b60004790506000610e05600b54600854600a54600754610dc19190613b2c565b610dcb9190613b2c565b610dd59190613b2c565b610df7600a54600754610de89190613b2c565b8561254290919063ffffffff16565b6125bd90919063ffffffff16565b90506000610e1c828461260790919063ffffffff16565b9050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015610e86573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610eef573d6000803e3d6000fd5b505050506000601460166101000a81548160ff021916908315150217905550565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f61611953565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe590613956565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6110b4611953565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611141576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113890613956565b60405180910390fd5b8060158190555050565b60155481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611182611953565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461120f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120690613956565b60405180910390fd5b806014806101000a81548160ff0219169083151502179055504360058190555050565b60165481565b60606040518060400160405280600681526020017f554e495445440000000000000000000000000000000000000000000000000000815250905090565b61127d611953565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461130a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130190613956565b60405180910390fd5b8060178190555050565b61131c611953565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a090613956565b60405180910390fd5b83600681905550826008819055508160098190555080600b81905550600b54600a546009546113d89190613b2c565b6113e29190613b2c565b600d8190555050505050565b60006114026113fb611953565b8484611b26565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661146d611953565b73ffffffffffffffffffffffffffffffffffffffff1614806114e35750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114cb611953565b73ffffffffffffffffffffffffffffffffffffffff16145b6114ec57600080fd5b60006114f730610f10565b905061150281612651565b50565b61150d611953565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461159a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159190613956565b60405180910390fd5b60005b8383905081101561165f5781600460008686858181106115e6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906115fb91906131ed565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061165790613d30565b91505061159d565b50505050565b60055481565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6116fa611953565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611787576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177e90613956565b60405180910390fd5b8060168190555050565b611799611953565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611826576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181d90613956565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611896576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188d906138b6565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156119cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c2906139d6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a32906138d6565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b1991906139f6565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8d90613996565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfd90613856565b60405180910390fd5b60008111611c49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4090613976565b60405180910390fd5b611c51611151565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611cbf5750611c8f611151565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156121ef5760148054906101000a900460ff16611d4c57611cde611151565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611d4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4290613876565b60405180910390fd5b5b601554811115611d91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8890613896565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e355750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611e74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6b906138f6565b60405180910390fd5b6005544311158015611ed35750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8015611f2d5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f6557503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611fc3576001601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612070576016548161202584610f10565b61202f9190613b2c565b1061206f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612066906139b6565b60405180910390fd5b5b600061207b30610f10565b90506000601754633b9aca00836120929190613bb3565b1015905060155482106120a55760155491505b8080156120bf5750601460159054906101000a900460ff16155b80156121195750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156121315750601460179054906101000a900460ff165b80156121875750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121dd5750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121ec576121eb82612651565b5b50505b600060019050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122965750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806123495750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156123485750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561235757600090506124cc565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156124025750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561241157600c54600e819055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156124bc5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156124cb57600d54600e819055505b5b6124d88484848461291e565b50505050565b6000838311158290612526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161251d9190613834565b60405180910390fd5b50600083856125359190613c0d565b9050809150509392505050565b60008083141561255557600090506125b7565b600082846125639190613bb3565b90508284826125729190613b82565b146125b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a990613936565b60405180910390fd5b809150505b92915050565b60006125ff83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061294b565b905092915050565b600061264983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506124de565b905092915050565b6001601460156101000a81548160ff02191690831515021790555060006126b1600d54600c546126819190613b2c565b6126a3600a546007546126949190613b2c565b8561254290919063ffffffff16565b6125bd90919063ffffffff16565b905060006126f8600d54600c546126c89190613b2c565b6126ea600b546008546126db9190613b2c565b8661254290919063ffffffff16565b6125bd90919063ffffffff16565b90506000479050612713828461270e9190613b2c565b6129ae565b6000612728824761260790919063ffffffff16565b90506000612789600b54600854600a546007546127459190613b2c565b61274f9190613b2c565b6127599190613b2c565b61277b600a5460075461276c9190613b2c565b8561254290919063ffffffff16565b6125bd90919063ffffffff16565b905060006127a0828461260790919063ffffffff16565b9050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015801561280a573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612873573d6000803e3d6000fd5b50600061289b8661288d898b61260790919063ffffffff16565b61260790919063ffffffff16565b905060006128b36002836125bd90919063ffffffff16565b905060006128ca828461260790919063ffffffff16565b90504796506128d8826129ae565b6128eb874761260790919063ffffffff16565b95506128f78187612c72565b5050505050505050506000601460156101000a81548160ff02191690831515021790555050565b8061292c5761292b612d66565b5b612937848484612d8a565b8061294557612944612fc5565b5b50505050565b60008083118290612992576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129899190613834565b60405180910390fd5b50600083856129a19190613b82565b9050809150509392505050565b6000600267ffffffffffffffff8111156129f1577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015612a1f5781602001602082028036833780820191505090505b5090503081600081518110612a5d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612aff57600080fd5b505afa158015612b13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b379190613216565b81600181518110612b71577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612bd830601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461195b565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612c3c959493929190613a11565b600060405180830381600087803b158015612c5657600080fd5b505af1158015612c6a573d6000803e3d6000fd5b505050505050565b612c9f30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461195b565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080612ceb611151565b426040518863ffffffff1660e01b8152600401612d0d9695949392919061379d565b6060604051808303818588803b158015612d2657600080fd5b505af1158015612d3a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612d5f91906133f1565b5050505050565b6000600e541415612d7657612d88565b600e54600f819055506000600e819055505b565b600080612d9683612fd0565b91509150612dec82600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461260790919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e8182600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ff390919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f1681600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ff390919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612fb691906139f6565b60405180910390a35050505050565b600f54600e81905550565b600080600080612fe285600e54613051565b915091508181935093505050915091565b60008082846130029190613b2c565b905083811015613047576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161303e90613916565b60405180910390fd5b8091505092915050565b600080600061307c606461306e868861254290919063ffffffff16565b6125bd90919063ffffffff16565b90506000613093828761260790919063ffffffff16565b905080829350935050509250929050565b60006130b76130b284613aab565b613a86565b905080838252602082019050828560208602820111156130d657600080fd5b60005b8581101561310657816130ec8882613110565b8452602084019350602083019250506001810190506130d9565b5050509392505050565b60008135905061311f816141a8565b92915050565b600081519050613134816141a8565b92915050565b60008083601f84011261314c57600080fd5b8235905067ffffffffffffffff81111561316557600080fd5b60208301915083602082028301111561317d57600080fd5b9250929050565b600082601f83011261319557600080fd5b81356131a58482602086016130a4565b91505092915050565b6000813590506131bd816141bf565b92915050565b6000813590506131d2816141d6565b92915050565b6000815190506131e7816141d6565b92915050565b6000602082840312156131ff57600080fd5b600061320d84828501613110565b91505092915050565b60006020828403121561322857600080fd5b600061323684828501613125565b91505092915050565b6000806040838503121561325257600080fd5b600061326085828601613110565b925050602061327185828601613110565b9150509250929050565b60008060006060848603121561329057600080fd5b600061329e86828701613110565b93505060206132af86828701613110565b92505060406132c0868287016131c3565b9150509250925092565b600080604083850312156132dd57600080fd5b60006132eb85828601613110565b92505060206132fc858286016131c3565b9150509250929050565b60008060006040848603121561331b57600080fd5b600084013567ffffffffffffffff81111561333557600080fd5b6133418682870161313a565b93509350506020613354868287016131ae565b9150509250925092565b60006020828403121561337057600080fd5b600082013567ffffffffffffffff81111561338a57600080fd5b61339684828501613184565b91505092915050565b6000602082840312156133b157600080fd5b60006133bf848285016131ae565b91505092915050565b6000602082840312156133da57600080fd5b60006133e8848285016131c3565b91505092915050565b60008060006060848603121561340657600080fd5b6000613414868287016131d8565b9350506020613425868287016131d8565b9250506040613436868287016131d8565b9150509250925092565b6000806000806080858703121561345657600080fd5b6000613464878288016131c3565b9450506020613475878288016131c3565b9350506040613486878288016131c3565b9250506060613497878288016131c3565b91505092959194509250565b60006134af83836134bb565b60208301905092915050565b6134c481613c41565b82525050565b6134d381613c41565b82525050565b60006134e482613ae7565b6134ee8185613b0a565b93506134f983613ad7565b8060005b8381101561352a57815161351188826134a3565b975061351c83613afd565b9250506001810190506134fd565b5085935050505092915050565b61354081613c53565b82525050565b61354f81613c96565b82525050565b61355e81613cba565b82525050565b600061356f82613af2565b6135798185613b1b565b9350613589818560208601613ccc565b61359281613e06565b840191505092915050565b60006135aa602383613b1b565b91506135b582613e17565b604082019050919050565b60006135cd603f83613b1b565b91506135d882613e66565b604082019050919050565b60006135f0601c83613b1b565b91506135fb82613eb5565b602082019050919050565b6000613613602683613b1b565b915061361e82613ede565b604082019050919050565b6000613636602283613b1b565b915061364182613f2d565b604082019050919050565b6000613659602383613b1b565b915061366482613f7c565b604082019050919050565b600061367c601b83613b1b565b915061368782613fcb565b602082019050919050565b600061369f602183613b1b565b91506136aa82613ff4565b604082019050919050565b60006136c2602083613b1b565b91506136cd82614043565b602082019050919050565b60006136e5602983613b1b565b91506136f08261406c565b604082019050919050565b6000613708602583613b1b565b9150613713826140bb565b604082019050919050565b600061372b602383613b1b565b91506137368261410a565b604082019050919050565b600061374e602483613b1b565b915061375982614159565b604082019050919050565b61376d81613c7f565b82525050565b61377c81613c89565b82525050565b600060208201905061379760008301846134ca565b92915050565b600060c0820190506137b260008301896134ca565b6137bf6020830188613764565b6137cc6040830187613555565b6137d96060830186613555565b6137e660808301856134ca565b6137f360a0830184613764565b979650505050505050565b60006020820190506138136000830184613537565b92915050565b600060208201905061382e6000830184613546565b92915050565b6000602082019050818103600083015261384e8184613564565b905092915050565b6000602082019050818103600083015261386f8161359d565b9050919050565b6000602082019050818103600083015261388f816135c0565b9050919050565b600060208201905081810360008301526138af816135e3565b9050919050565b600060208201905081810360008301526138cf81613606565b9050919050565b600060208201905081810360008301526138ef81613629565b9050919050565b6000602082019050818103600083015261390f8161364c565b9050919050565b6000602082019050818103600083015261392f8161366f565b9050919050565b6000602082019050818103600083015261394f81613692565b9050919050565b6000602082019050818103600083015261396f816136b5565b9050919050565b6000602082019050818103600083015261398f816136d8565b9050919050565b600060208201905081810360008301526139af816136fb565b9050919050565b600060208201905081810360008301526139cf8161371e565b9050919050565b600060208201905081810360008301526139ef81613741565b9050919050565b6000602082019050613a0b6000830184613764565b92915050565b600060a082019050613a266000830188613764565b613a336020830187613555565b8181036040830152613a4581866134d9565b9050613a5460608301856134ca565b613a616080830184613764565b9695505050505050565b6000602082019050613a806000830184613773565b92915050565b6000613a90613aa1565b9050613a9c8282613cff565b919050565b6000604051905090565b600067ffffffffffffffff821115613ac657613ac5613dd7565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613b3782613c7f565b9150613b4283613c7f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613b7757613b76613d79565b5b828201905092915050565b6000613b8d82613c7f565b9150613b9883613c7f565b925082613ba857613ba7613da8565b5b828204905092915050565b6000613bbe82613c7f565b9150613bc983613c7f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613c0257613c01613d79565b5b828202905092915050565b6000613c1882613c7f565b9150613c2383613c7f565b925082821015613c3657613c35613d79565b5b828203905092915050565b6000613c4c82613c5f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613ca182613ca8565b9050919050565b6000613cb382613c5f565b9050919050565b6000613cc582613c7f565b9050919050565b60005b83811015613cea578082015181840152602081019050613ccf565b83811115613cf9576000848401525b50505050565b613d0882613e06565b810181811067ffffffffffffffff82111715613d2757613d26613dd7565b5b80604052505050565b6000613d3b82613c7f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613d6e57613d6d613d79565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6141b181613c41565b81146141bc57600080fd5b50565b6141c881613c53565b81146141d357600080fd5b50565b6141df81613c7f565b81146141ea57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ad77aa782f0dfc895c1cfc97017876386c73a385da1136b8ca515fec1b209f3764736f6c634300080400330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Deployed Bytecode
0x6080604052600436106101db5760003560e01c806374010ece11610102578063a9059cbb11610095578063d00efb2f11610064578063d00efb2f14610690578063dd62ed3e146106bb578063ea1644d5146106f8578063f2fde38b14610721576101e2565b8063a9059cbb146105d6578063bfd7928414610613578063c3c8cd8014610650578063c492f04614610667576101e2565b80638f9a55c0116100d15780638f9a55c01461052e57806395d89b411461055957806398a5c31514610584578063a2a957bb146105ad576101e2565b806374010ece146104865780637d1db4a5146104af5780638da5cb5b146104da5780638f70ccf714610505576101e2565b8063313ce5671161017a5780636d8aa8f8116101495780636d8aa8f8146103f25780636fc3eaec1461041b57806370a0823114610432578063715018a61461046f576101e2565b8063313ce5671461033657806349bd5a5e146103615780635342acb41461038c5780636b999053146103c9576101e2565b80631694505e116101b65780631694505e1461027857806318160ddd146102a357806323b872dd146102ce5780632fd689e31461030b576101e2565b8062b8cf2a146101e757806306fdde0314610210578063095ea7b31461023b576101e2565b366101e257005b600080fd5b3480156101f357600080fd5b5061020e6004803603810190610209919061335e565b61074a565b005b34801561021c57600080fd5b5061022561089a565b6040516102329190613834565b60405180910390f35b34801561024757600080fd5b50610262600480360381019061025d91906132ca565b6108d7565b60405161026f91906137fe565b60405180910390f35b34801561028457600080fd5b5061028d6108f5565b60405161029a9190613819565b60405180910390f35b3480156102af57600080fd5b506102b861091b565b6040516102c591906139f6565b60405180910390f35b3480156102da57600080fd5b506102f560048036038101906102f0919061327b565b61092b565b60405161030291906137fe565b60405180910390f35b34801561031757600080fd5b50610320610a04565b60405161032d91906139f6565b60405180910390f35b34801561034257600080fd5b5061034b610a0a565b6040516103589190613a6b565b60405180910390f35b34801561036d57600080fd5b50610376610a13565b6040516103839190613782565b60405180910390f35b34801561039857600080fd5b506103b360048036038101906103ae91906131ed565b610a39565b6040516103c091906137fe565b60405180910390f35b3480156103d557600080fd5b506103f060048036038101906103eb91906131ed565b610b24565b005b3480156103fe57600080fd5b506104196004803603810190610414919061339f565b610c14565b005b34801561042757600080fd5b50610430610cc6565b005b34801561043e57600080fd5b50610459600480360381019061045491906131ed565b610f10565b60405161046691906139f6565b60405180910390f35b34801561047b57600080fd5b50610484610f59565b005b34801561049257600080fd5b506104ad60048036038101906104a891906133c8565b6110ac565b005b3480156104bb57600080fd5b506104c461114b565b6040516104d191906139f6565b60405180910390f35b3480156104e657600080fd5b506104ef611151565b6040516104fc9190613782565b60405180910390f35b34801561051157600080fd5b5061052c6004803603810190610527919061339f565b61117a565b005b34801561053a57600080fd5b50610543611232565b60405161055091906139f6565b60405180910390f35b34801561056557600080fd5b5061056e611238565b60405161057b9190613834565b60405180910390f35b34801561059057600080fd5b506105ab60048036038101906105a691906133c8565b611275565b005b3480156105b957600080fd5b506105d460048036038101906105cf9190613440565b611314565b005b3480156105e257600080fd5b506105fd60048036038101906105f891906132ca565b6113ee565b60405161060a91906137fe565b60405180910390f35b34801561061f57600080fd5b5061063a600480360381019061063591906131ed565b61140c565b60405161064791906137fe565b60405180910390f35b34801561065c57600080fd5b5061066561142c565b005b34801561067357600080fd5b5061068e60048036038101906106899190613306565b611505565b005b34801561069c57600080fd5b506106a5611665565b6040516106b291906139f6565b60405180910390f35b3480156106c757600080fd5b506106e260048036038101906106dd919061323f565b61166b565b6040516106ef91906139f6565b60405180910390f35b34801561070457600080fd5b5061071f600480360381019061071a91906133c8565b6116f2565b005b34801561072d57600080fd5b50610748600480360381019061074391906131ed565b611791565b005b610752611953565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d690613956565b60405180910390fd5b60005b81518110156108965760016010600084848151811061082a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061088e90613d30565b9150506107e2565b5050565b60606040518060400160405280600d81526020017f556e6974656420446567656e7300000000000000000000000000000000000000815250905090565b60006108eb6108e4611953565b848461195b565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006702c68af0bb140000905090565b6000610938848484611b26565b6109f984610944611953565b6109f4856040518060600160405280602881526020016141ee60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109aa611953565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124de9092919063ffffffff16565b61195b565b600190509392505050565b60175481565b60006009905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610a43611953565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac790613956565b60405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610b2c611953565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb090613956565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610c1c611953565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca090613956565b60405180910390fd5b80601460176101000a81548160ff02191690831515021790555050565b6001601460166101000a81548160ff021916908315150217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d22611953565b73ffffffffffffffffffffffffffffffffffffffff161480610d985750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d80611953565b73ffffffffffffffffffffffffffffffffffffffff16145b610da157600080fd5b60004790506000610e05600b54600854600a54600754610dc19190613b2c565b610dcb9190613b2c565b610dd59190613b2c565b610df7600a54600754610de89190613b2c565b8561254290919063ffffffff16565b6125bd90919063ffffffff16565b90506000610e1c828461260790919063ffffffff16565b9050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015610e86573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610eef573d6000803e3d6000fd5b505050506000601460166101000a81548160ff021916908315150217905550565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f61611953565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe590613956565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6110b4611953565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611141576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113890613956565b60405180910390fd5b8060158190555050565b60155481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611182611953565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461120f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120690613956565b60405180910390fd5b806014806101000a81548160ff0219169083151502179055504360058190555050565b60165481565b60606040518060400160405280600681526020017f554e495445440000000000000000000000000000000000000000000000000000815250905090565b61127d611953565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461130a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130190613956565b60405180910390fd5b8060178190555050565b61131c611953565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a090613956565b60405180910390fd5b83600681905550826008819055508160098190555080600b81905550600b54600a546009546113d89190613b2c565b6113e29190613b2c565b600d8190555050505050565b60006114026113fb611953565b8484611b26565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661146d611953565b73ffffffffffffffffffffffffffffffffffffffff1614806114e35750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114cb611953565b73ffffffffffffffffffffffffffffffffffffffff16145b6114ec57600080fd5b60006114f730610f10565b905061150281612651565b50565b61150d611953565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461159a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159190613956565b60405180910390fd5b60005b8383905081101561165f5781600460008686858181106115e6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906115fb91906131ed565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061165790613d30565b91505061159d565b50505050565b60055481565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6116fa611953565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611787576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177e90613956565b60405180910390fd5b8060168190555050565b611799611953565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611826576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181d90613956565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611896576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188d906138b6565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156119cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c2906139d6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a32906138d6565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b1991906139f6565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8d90613996565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfd90613856565b60405180910390fd5b60008111611c49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4090613976565b60405180910390fd5b611c51611151565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611cbf5750611c8f611151565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156121ef5760148054906101000a900460ff16611d4c57611cde611151565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611d4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4290613876565b60405180910390fd5b5b601554811115611d91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8890613896565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e355750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611e74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6b906138f6565b60405180910390fd5b6005544311158015611ed35750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8015611f2d5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f6557503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611fc3576001601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612070576016548161202584610f10565b61202f9190613b2c565b1061206f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612066906139b6565b60405180910390fd5b5b600061207b30610f10565b90506000601754633b9aca00836120929190613bb3565b1015905060155482106120a55760155491505b8080156120bf5750601460159054906101000a900460ff16155b80156121195750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156121315750601460179054906101000a900460ff165b80156121875750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121dd5750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121ec576121eb82612651565b5b50505b600060019050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122965750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806123495750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156123485750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561235757600090506124cc565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156124025750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561241157600c54600e819055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156124bc5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156124cb57600d54600e819055505b5b6124d88484848461291e565b50505050565b6000838311158290612526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161251d9190613834565b60405180910390fd5b50600083856125359190613c0d565b9050809150509392505050565b60008083141561255557600090506125b7565b600082846125639190613bb3565b90508284826125729190613b82565b146125b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a990613936565b60405180910390fd5b809150505b92915050565b60006125ff83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061294b565b905092915050565b600061264983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506124de565b905092915050565b6001601460156101000a81548160ff02191690831515021790555060006126b1600d54600c546126819190613b2c565b6126a3600a546007546126949190613b2c565b8561254290919063ffffffff16565b6125bd90919063ffffffff16565b905060006126f8600d54600c546126c89190613b2c565b6126ea600b546008546126db9190613b2c565b8661254290919063ffffffff16565b6125bd90919063ffffffff16565b90506000479050612713828461270e9190613b2c565b6129ae565b6000612728824761260790919063ffffffff16565b90506000612789600b54600854600a546007546127459190613b2c565b61274f9190613b2c565b6127599190613b2c565b61277b600a5460075461276c9190613b2c565b8561254290919063ffffffff16565b6125bd90919063ffffffff16565b905060006127a0828461260790919063ffffffff16565b9050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015801561280a573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612873573d6000803e3d6000fd5b50600061289b8661288d898b61260790919063ffffffff16565b61260790919063ffffffff16565b905060006128b36002836125bd90919063ffffffff16565b905060006128ca828461260790919063ffffffff16565b90504796506128d8826129ae565b6128eb874761260790919063ffffffff16565b95506128f78187612c72565b5050505050505050506000601460156101000a81548160ff02191690831515021790555050565b8061292c5761292b612d66565b5b612937848484612d8a565b8061294557612944612fc5565b5b50505050565b60008083118290612992576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129899190613834565b60405180910390fd5b50600083856129a19190613b82565b9050809150509392505050565b6000600267ffffffffffffffff8111156129f1577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015612a1f5781602001602082028036833780820191505090505b5090503081600081518110612a5d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612aff57600080fd5b505afa158015612b13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b379190613216565b81600181518110612b71577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612bd830601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461195b565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612c3c959493929190613a11565b600060405180830381600087803b158015612c5657600080fd5b505af1158015612c6a573d6000803e3d6000fd5b505050505050565b612c9f30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461195b565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080612ceb611151565b426040518863ffffffff1660e01b8152600401612d0d9695949392919061379d565b6060604051808303818588803b158015612d2657600080fd5b505af1158015612d3a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612d5f91906133f1565b5050505050565b6000600e541415612d7657612d88565b600e54600f819055506000600e819055505b565b600080612d9683612fd0565b91509150612dec82600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461260790919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e8182600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ff390919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f1681600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ff390919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612fb691906139f6565b60405180910390a35050505050565b600f54600e81905550565b600080600080612fe285600e54613051565b915091508181935093505050915091565b60008082846130029190613b2c565b905083811015613047576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161303e90613916565b60405180910390fd5b8091505092915050565b600080600061307c606461306e868861254290919063ffffffff16565b6125bd90919063ffffffff16565b90506000613093828761260790919063ffffffff16565b905080829350935050509250929050565b60006130b76130b284613aab565b613a86565b905080838252602082019050828560208602820111156130d657600080fd5b60005b8581101561310657816130ec8882613110565b8452602084019350602083019250506001810190506130d9565b5050509392505050565b60008135905061311f816141a8565b92915050565b600081519050613134816141a8565b92915050565b60008083601f84011261314c57600080fd5b8235905067ffffffffffffffff81111561316557600080fd5b60208301915083602082028301111561317d57600080fd5b9250929050565b600082601f83011261319557600080fd5b81356131a58482602086016130a4565b91505092915050565b6000813590506131bd816141bf565b92915050565b6000813590506131d2816141d6565b92915050565b6000815190506131e7816141d6565b92915050565b6000602082840312156131ff57600080fd5b600061320d84828501613110565b91505092915050565b60006020828403121561322857600080fd5b600061323684828501613125565b91505092915050565b6000806040838503121561325257600080fd5b600061326085828601613110565b925050602061327185828601613110565b9150509250929050565b60008060006060848603121561329057600080fd5b600061329e86828701613110565b93505060206132af86828701613110565b92505060406132c0868287016131c3565b9150509250925092565b600080604083850312156132dd57600080fd5b60006132eb85828601613110565b92505060206132fc858286016131c3565b9150509250929050565b60008060006040848603121561331b57600080fd5b600084013567ffffffffffffffff81111561333557600080fd5b6133418682870161313a565b93509350506020613354868287016131ae565b9150509250925092565b60006020828403121561337057600080fd5b600082013567ffffffffffffffff81111561338a57600080fd5b61339684828501613184565b91505092915050565b6000602082840312156133b157600080fd5b60006133bf848285016131ae565b91505092915050565b6000602082840312156133da57600080fd5b60006133e8848285016131c3565b91505092915050565b60008060006060848603121561340657600080fd5b6000613414868287016131d8565b9350506020613425868287016131d8565b9250506040613436868287016131d8565b9150509250925092565b6000806000806080858703121561345657600080fd5b6000613464878288016131c3565b9450506020613475878288016131c3565b9350506040613486878288016131c3565b9250506060613497878288016131c3565b91505092959194509250565b60006134af83836134bb565b60208301905092915050565b6134c481613c41565b82525050565b6134d381613c41565b82525050565b60006134e482613ae7565b6134ee8185613b0a565b93506134f983613ad7565b8060005b8381101561352a57815161351188826134a3565b975061351c83613afd565b9250506001810190506134fd565b5085935050505092915050565b61354081613c53565b82525050565b61354f81613c96565b82525050565b61355e81613cba565b82525050565b600061356f82613af2565b6135798185613b1b565b9350613589818560208601613ccc565b61359281613e06565b840191505092915050565b60006135aa602383613b1b565b91506135b582613e17565b604082019050919050565b60006135cd603f83613b1b565b91506135d882613e66565b604082019050919050565b60006135f0601c83613b1b565b91506135fb82613eb5565b602082019050919050565b6000613613602683613b1b565b915061361e82613ede565b604082019050919050565b6000613636602283613b1b565b915061364182613f2d565b604082019050919050565b6000613659602383613b1b565b915061366482613f7c565b604082019050919050565b600061367c601b83613b1b565b915061368782613fcb565b602082019050919050565b600061369f602183613b1b565b91506136aa82613ff4565b604082019050919050565b60006136c2602083613b1b565b91506136cd82614043565b602082019050919050565b60006136e5602983613b1b565b91506136f08261406c565b604082019050919050565b6000613708602583613b1b565b9150613713826140bb565b604082019050919050565b600061372b602383613b1b565b91506137368261410a565b604082019050919050565b600061374e602483613b1b565b915061375982614159565b604082019050919050565b61376d81613c7f565b82525050565b61377c81613c89565b82525050565b600060208201905061379760008301846134ca565b92915050565b600060c0820190506137b260008301896134ca565b6137bf6020830188613764565b6137cc6040830187613555565b6137d96060830186613555565b6137e660808301856134ca565b6137f360a0830184613764565b979650505050505050565b60006020820190506138136000830184613537565b92915050565b600060208201905061382e6000830184613546565b92915050565b6000602082019050818103600083015261384e8184613564565b905092915050565b6000602082019050818103600083015261386f8161359d565b9050919050565b6000602082019050818103600083015261388f816135c0565b9050919050565b600060208201905081810360008301526138af816135e3565b9050919050565b600060208201905081810360008301526138cf81613606565b9050919050565b600060208201905081810360008301526138ef81613629565b9050919050565b6000602082019050818103600083015261390f8161364c565b9050919050565b6000602082019050818103600083015261392f8161366f565b9050919050565b6000602082019050818103600083015261394f81613692565b9050919050565b6000602082019050818103600083015261396f816136b5565b9050919050565b6000602082019050818103600083015261398f816136d8565b9050919050565b600060208201905081810360008301526139af816136fb565b9050919050565b600060208201905081810360008301526139cf8161371e565b9050919050565b600060208201905081810360008301526139ef81613741565b9050919050565b6000602082019050613a0b6000830184613764565b92915050565b600060a082019050613a266000830188613764565b613a336020830187613555565b8181036040830152613a4581866134d9565b9050613a5460608301856134ca565b613a616080830184613764565b9695505050505050565b6000602082019050613a806000830184613773565b92915050565b6000613a90613aa1565b9050613a9c8282613cff565b919050565b6000604051905090565b600067ffffffffffffffff821115613ac657613ac5613dd7565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613b3782613c7f565b9150613b4283613c7f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613b7757613b76613d79565b5b828201905092915050565b6000613b8d82613c7f565b9150613b9883613c7f565b925082613ba857613ba7613da8565b5b828204905092915050565b6000613bbe82613c7f565b9150613bc983613c7f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613c0257613c01613d79565b5b828202905092915050565b6000613c1882613c7f565b9150613c2383613c7f565b925082821015613c3657613c35613d79565b5b828203905092915050565b6000613c4c82613c5f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613ca182613ca8565b9050919050565b6000613cb382613c5f565b9050919050565b6000613cc582613c7f565b9050919050565b60005b83811015613cea578082015181840152602081019050613ccf565b83811115613cf9576000848401525b50505050565b613d0882613e06565b810181811067ffffffffffffffff82111715613d2757613d26613dd7565b5b80604052505050565b6000613d3b82613c7f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613d6e57613d6d613d79565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6141b181613c41565b81146141bc57600080fd5b50565b6141c881613c53565b81146141d357600080fd5b50565b6141df81613c7f565b81146141ea57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ad77aa782f0dfc895c1cfc97017876386c73a385da1136b8ca515fec1b209f3764736f6c63430008040033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
-----Decoded View---------------
Arg [0] : router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Deployed Bytecode Sourcemap
4035:14413:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15317:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7618:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8494:181;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5528:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7895:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8683:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5868:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7804:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5576:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18311:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15494:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17687:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14786:523;;;;;;;;;;;;;:::i;:::-;;7998:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1558:148;;;;;;;;;;;;;:::i;:::-;;17829:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5752:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1344:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14396:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5809:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7709:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17496:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17037:407;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8123:187;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5271:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14542:236;;;;;;;;;;;;;:::i;:::-;;18068:235;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4524:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8318:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17945:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1714:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15317:169;1481:12;:10;:12::i;:::-;1471:22;;:6;;;;;;;;;;:22;;;1463:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15393:9:::1;15388:91;15412:5;:12;15408:1;:16;15388:91;;;15463:4;15446;:14;15451:5;15457:1;15451:8;;;;;;;;;;;;;;;;;;;;;;15446:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;15426:3;;;;;:::i;:::-;;;;15388:91;;;;15317:169:::0;:::o;7618:83::-;7655:13;7688:5;;;;;;;;;;;;;;;;;7681:12;;7618:83;:::o;8494:181::-;8584:4;8606:39;8615:12;:10;:12::i;:::-;8629:7;8638:6;8606:8;:39::i;:::-;8663:4;8656:11;;8494:181;;;;:::o;5528:41::-;;;;;;;;;;;;;:::o;7895:95::-;7948:7;4498:19;7968:14;;7895:95;:::o;8683:446::-;8815:4;8832:36;8842:6;8850:9;8861:6;8832:9;:36::i;:::-;8879:220;8902:6;8923:12;:10;:12::i;:::-;8950:138;9006:6;8950:138;;;;;;;;;;;;;;;;;:11;:19;8962:6;8950:19;;;;;;;;;;;;;;;:33;8970:12;:10;:12::i;:::-;8950:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8879:8;:220::i;:::-;9117:4;9110:11;;8683:446;;;;;:::o;5868:52::-;;;;:::o;7804:83::-;7845:5;4271:1;7863:16;;7804:83;:::o;5576:28::-;;;;;;;;;;;;;:::o;18311:134::-;18386:4;1481:12;:10;:12::i;:::-;1471:22;;:6;;;;;;;;;;:22;;;1463:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18410:18:::1;:27;18429:7;18410:27;;;;;;;;;;;;;;;;;;;;;;;;;18403:34;;18311:134:::0;;;:::o;15494:92::-;1481:12;:10;:12::i;:::-;1471:22;;:6;;;;;;;;;;:22;;;1463:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15573:5:::1;15558:4;:12;15563:6;15558:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;15494:92:::0;:::o;17687:101::-;1481:12;:10;:12::i;:::-;1471:22;;:6;;;;;;;;;;:22;;;1463:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17768:12:::1;17754:11;;:26;;;;;;;;;;;;;;;;;;17687:101:::0;:::o;14786:523::-;6124:4;6115:6;;:13;;;;;;;;;;;;;;;;;;14864:19:::1;;;;;;;;;;;14848:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;14903:17;;;;;;;;;;;14887:33;;:12;:10;:12::i;:::-;:33;;;14848:72;14840:81;;;::::0;::::1;;14932:26;14961:21;14932:50;;14995:16;15014:117;15113:17;;15094:16;;15080:11;;15067:10;;:24;;;;:::i;:::-;:43;;;;:::i;:::-;:63;;;;:::i;:::-;15014:48;15050:11;;15037:10;;:24;;;;:::i;:::-;15014:18;:22;;:48;;;;:::i;:::-;:52;;:117;;;;:::i;:::-;14995:136;;15142:22;15167:32;15190:8;15167:18;:22;;:32;;;;:::i;:::-;15142:57;;15210:19;;;;;;;;;;;:28;;:38;15239:8;15210:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;15259:17;;;;;;;;;;;:26;;:42;15286:14;15259:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;6139:1;;;6160:5:::0;6151:6;;:14;;;;;;;;;;;;;;;;;;14786:523::o;7998:117::-;8064:7;8091;:16;8099:7;8091:16;;;;;;;;;;;;;;;;8084:23;;7998:117;;;:::o;1558:148::-;1481:12;:10;:12::i;:::-;1471:22;;:6;;;;;;;;;;:22;;;1463:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1665:1:::1;1628:40;;1649:6;::::0;::::1;;;;;;;;1628:40;;;;;;;;;;;;1696:1;1679:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1558:148::o:0;17829:108::-;1481:12;:10;:12::i;:::-;1471:22;;:6;;;;;;;;;;:22;;;1463:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17918:11:::1;17903:12;:26;;;;17829:108:::0;:::o;5752:47::-;;;;:::o;1344:79::-;1382:7;1409:6;;;;;;;;;;;1402:13;;1344:79;:::o;14396:138::-;1481:12;:10;:12::i;:::-;1471:22;;:6;;;;;;;;;;:22;;;1463:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14477:12:::1;14463:11;::::0;:26:::1;;;;;;;;;;;;;;;;;;14514:12;14500:11;:26;;;;14396:138:::0;:::o;5809:49::-;;;;:::o;7709:87::-;7748:13;7781:7;;;;;;;;;;;;;;;;;7774:14;;7709:87;:::o;17496:139::-;1481:12;:10;:12::i;:::-;1471:22;;:6;;;;;;;;;;:22;;;1463:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17609:18:::1;17587:19;:40;;;;17496:139:::0;:::o;17037:407::-;1481:12;:10;:12::i;:::-;1471:22;;:6;;;;;;;;;;:22;;;1463:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17202:15:::1;17183:16;:34;;;;17247:15;17228:16;:34;;;;17293:16;17273:17;:36;;;;17340:16;17320:17;:36;;;;17419:17;;17405:11;;17385:17;;:31;;;;:::i;:::-;:51;;;;:::i;:::-;17369:13;:67;;;;17037:407:::0;;;;:::o;8123:187::-;8216:4;8238:42;8248:12;:10;:12::i;:::-;8262:9;8273:6;8238:9;:42::i;:::-;8298:4;8291:11;;8123:187;;;;:::o;5271:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;14542:236::-;14608:19;;;;;;;;;;;14592:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;14647:17;;;;;;;;;;;14631:33;;:12;:10;:12::i;:::-;:33;;;14592:72;14584:81;;;;;;14676:23;14702:24;14720:4;14702:9;:24::i;:::-;14676:50;;14737:33;14754:15;14737:16;:33::i;:::-;14542:236;:::o;18068:235::-;1481:12;:10;:12::i;:::-;1471:22;;:6;;;;;;;;;;:22;;;1463:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18186:9:::1;18181:115;18205:8;;:15;;18201:1;:19;18181:115;;;18276:8;18242:18;:31;18261:8;;18270:1;18261:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18242:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;18222:3;;;;;:::i;:::-;;;;18181:115;;;;18068:235:::0;;;:::o;4524:26::-;;;;:::o;8318:168::-;8419:7;8451:11;:18;8463:5;8451:18;;;;;;;;;;;;;;;:27;8470:7;8451:27;;;;;;;;;;;;;;;;8444:34;;8318:168;;;;:::o;17945:115::-;1481:12;:10;:12::i;:::-;1471:22;;:6;;;;;;;;;;:22;;;1463:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18039:13:::1;18022:14;:30;;;;17945:115:::0;:::o;1714:244::-;1481:12;:10;:12::i;:::-;1471:22;;:6;;;;;;;;;;:22;;;1463:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1823:1:::1;1803:22;;:8;:22;;;;1795:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1913:8;1884:38;;1905:6;::::0;::::1;;;;;;;;1884:38;;;;;;;;;;;;1942:8;1933:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1714:244:::0;:::o;101:98::-;154:7;181:10;174:17;;101:98;:::o;9367:369::-;9511:1;9494:19;;:5;:19;;;;9486:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9592:1;9573:21;;:7;:21;;;;9565:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9674:6;9644:11;:18;9656:5;9644:18;;;;;;;;;;;;;;;:27;9663:7;9644:27;;;;;;;;;;;;;;;:36;;;;9712:7;9696:32;;9705:5;9696:32;;;9721:6;9696:32;;;;;;:::i;:::-;;;;;;;;9367:369;;;:::o;9744:2238::-;9882:1;9866:18;;:4;:18;;;;9858:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9959:1;9945:16;;:2;:16;;;;9937:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10029:1;10020:6;:10;10012:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10101:7;:5;:7::i;:::-;10093:15;;:4;:15;;;;:32;;;;;10118:7;:5;:7::i;:::-;10112:13;;:2;:13;;;;10093:32;10089:1259;;;10182:11;;;;;;;;;;10177:144;;10230:7;:5;:7::i;:::-;10222:15;;:4;:15;;;10214:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;10177:144;10355:12;;10345:6;:22;;10337:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10424:4;:10;10429:4;10424:10;;;;;;;;;;;;;;;;;;;;;;;;;10423:11;:24;;;;;10439:4;:8;10444:2;10439:8;;;;;;;;;;;;;;;;;;;;;;;;;10438:9;10423:24;10415:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10524:11;;10508:12;:27;;:52;;;;;10547:13;;;;;;;;;;;10539:21;;:4;:21;;;10508:52;:86;;;;;10578:15;;;;;;;;;;;10564:30;;:2;:30;;;;10508:86;:109;;;;;10612:4;10598:19;;:2;:19;;;;10508:109;10504:165;;;10649:4;10638;:8;10643:2;10638:8;;;;;;;;;;;;;;;;:15;;;;;;;;;;;;;;;;;;10504:165;10695:13;;;;;;;;;;;10689:19;;:2;:19;;;10685:147;;10762:14;;10753:6;10737:13;10747:2;10737:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10729:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10685:147;10848:28;10879:24;10897:4;10879:9;:24::i;:::-;10848:55;;10918:12;10967:19;;10956:7;10933:20;:30;;;;:::i;:::-;:53;;10918:68;;11031:12;;11007:20;:36;11003:125;;11100:12;;11077:35;;11003:125;11148:7;:18;;;;;11160:6;;;;;;;;;;;11159:7;11148:18;:43;;;;;11178:13;;;;;;;;;;;11170:21;;:4;:21;;;;11148:43;:58;;;;;11195:11;;;;;;;;;;;11148:58;:87;;;;;11211:18;:24;11230:4;11211:24;;;;;;;;;;;;;;;;;;;;;;;;;11210:25;11148:87;:114;;;;;11240:18;:22;11259:2;11240:22;;;;;;;;;;;;;;;;;;;;;;;;;11239:23;11148:114;11144:193;;;11283:38;11300:20;11283:16;:38::i;:::-;11144:193;10089:1259;;;11360:12;11375:4;11360:19;;11424:18;:24;11443:4;11424:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11452:18;:22;11471:2;11452:22;;;;;;;;;;;;;;;;;;;;;;;;;11424:50;11423:102;;;;11488:13;;;;;;;;;;;11480:21;;:4;:21;;;;:44;;;;;11511:13;;;;;;;;;;;11505:19;;:2;:19;;;;11480:44;11423:102;11419:502;;;11552:5;11542:15;;11419:502;;;11636:13;;;;;;;;;;;11628:21;;:4;:21;;;:55;;;;;11667:15;;;;;;;;;;;11653:30;;:2;:30;;;;11628:55;11624:118;;;11714:12;;11704:7;:22;;;;11624:118;11801:13;;;;;;;;;;;11795:19;;:2;:19;;;:55;;;;;11834:15;;;;;;;;;;;11818:32;;:4;:32;;;;11795:55;11791:119;;;11881:13;;11871:7;:23;;;;11791:119;11419:502;11933:41;11948:4;11954:2;11958:6;11966:7;11933:14;:41::i;:::-;9744:2238;;;;:::o;2322:224::-;2442:7;2475:1;2470;:6;;2478:12;2462:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2502:9;2518:1;2514;:5;;;;:::i;:::-;2502:17;;2537:1;2530:8;;;2322:224;;;;;:::o;2554:246::-;2612:7;2641:1;2636;:6;2632:47;;;2666:1;2659:8;;;;2632:47;2689:9;2705:1;2701;:5;;;;:::i;:::-;2689:17;;2734:1;2729;2725;:5;;;;:::i;:::-;:10;2717:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2791:1;2784:8;;;2554:246;;;;;:::o;2808:132::-;2866:7;2893:39;2897:1;2900;2893:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2886:46;;2808:132;;;;:::o;2178:136::-;2236:7;2263:43;2267:1;2270;2263:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2256:50;;2178:136;;;;:::o;11990:1229::-;6026:4;6017:6;;:13;;;;;;;;;;;;;;;;;;12077:17:::1;12097:84;12167:13;;12152:12;;:28;;;;:::i;:::-;12097:50;12135:11;;12122:10;;:24;;;;:::i;:::-;12097:20;:24;;:50;;;;:::i;:::-;:54;;:84;;;;:::i;:::-;12077:104;;12192:23;12218:96;12300:13;;12285:12;;:28;;;;:::i;:::-;12218:62;12262:17;;12243:16;;:36;;;;:::i;:::-;12218:20;:24;;:62;;;;:::i;:::-;:66;;:96;;;;:::i;:::-;12192:122;;12327:22;12352:21;12327:46;;12384:45;12413:15;12401:9;:27;;;;:::i;:::-;12384:16;:45::i;:::-;12440:19;12462:41;12488:14;12462:21;:25;;:41;;;;:::i;:::-;12440:63;;12514:16;12533:110;12625:17;;12606:16;;12592:11;;12579:10;;:24;;;;:::i;:::-;:43;;;;:::i;:::-;:63;;;;:::i;:::-;12533:41;12562:11;;12549:10;;:24;;;;:::i;:::-;12533:11;:15;;:41;;;;:::i;:::-;:45;;:110;;;;:::i;:::-;12514:129;;12654:22;12679:25;12695:8;12679:11;:15;;:25;;;;:::i;:::-;12654:50;;12715:19;;;;;;;;;;;:28;;:38;12744:8;12715:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12764:17;;;;;;;;;;;:26;;:42;12791:14;12764:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12819:26;12848:56;12888:15;12848:35;12873:9;12848:20;:24;;:35;;;;:::i;:::-;:39;;:56;;;;:::i;:::-;12819:85;;12915:12;12930:25;12953:1;12930:18;:22;;:25;;;;:::i;:::-;12915:40;;12966:17;12986:28;13009:4;12986:18;:22;;:28;;;;:::i;:::-;12966:48;;13044:21;13027:38;;13076:22;13093:4;13076:16;:22::i;:::-;13123:41;13149:14;13123:21;:25;;:41;;;;:::i;:::-;13109:55;;13175:36;13188:9;13199:11;13175:12;:36::i;:::-;6041:1;;;;;;;;;6062:5:::0;6053:6;;:14;;;;;;;;;;;;;;;;;;11990:1229;:::o;15594:282::-;15750:7;15745:28;;15759:14;:12;:14::i;:::-;15745:28;15784:44;15802:6;15810:9;15821:6;15784:17;:44::i;:::-;15844:7;15839:29;;15853:15;:13;:15::i;:::-;15839:29;15594:282;;;;:::o;2948:223::-;3068:7;3100:1;3096;:5;3103:12;3088:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3127:9;3143:1;3139;:5;;;;:::i;:::-;3127:17;;3162:1;3155:8;;;2948:223;;;;;:::o;13227:471::-;13293:21;13331:1;13317:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13293:40;;13362:4;13344;13349:1;13344:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;13388:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13378:4;13383:1;13378:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;;13421:62;13438:4;13453:15;;;;;;;;;;;13471:11;13421:8;:62::i;:::-;13494:15;;;;;;;;;;;:66;;;13575:11;13601:1;13617:4;13644;13664:15;13494:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13227:471;;:::o;13706:514::-;13854:62;13871:4;13886:15;;;;;;;;;;;13904:11;13854:8;:62::i;:::-;13959:15;;;;;;;;;;;:31;;;13999:9;14032:4;14052:11;14078:1;14121;14164:7;:5;:7::i;:::-;14186:15;13959:253;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13706:514;;:::o;9139:135::-;9197:1;9186:7;;:12;9182:25;;;9200:7;;9182:25;9237:7;;9219:15;:25;;;;9265:1;9255:7;:11;;;;9139:135;:::o;15884:496::-;16027:23;16061:13;16088:19;16099:7;16088:10;:19::i;:::-;16016:91;;;;16136:36;16156:15;16136:7;:15;16144:6;16136:15;;;;;;;;;;;;;;;;:19;;:36;;;;:::i;:::-;16118:7;:15;16126:6;16118:15;;;;;;;;;;;;;;;:54;;;;16204:39;16227:15;16204:7;:18;16212:9;16204:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;16183:7;:18;16191:9;16183:18;;;;;;;;;;;;;;;:60;;;;16279:33;16306:5;16279:7;:22;16295:4;16279:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;16254:7;:22;16270:4;16254:22;;;;;;;;;;;;;;;:58;;;;16345:9;16328:44;;16337:6;16328:44;;;16356:15;16328:44;;;;;;:::i;:::-;;;;;;;;15884:496;;;;;:::o;9282:77::-;9336:15;;9326:7;:25;;;;9282:77::o;16427:268::-;16511:7;16529;16563:23;16588:13;16614:29;16626:7;16635;;16614:11;:29::i;:::-;16562:81;;;;16664:15;16681:5;16656:31;;;;;;16427:268;;;:::o;1991:179::-;2049:7;2069:9;2085:1;2081;:5;;;;:::i;:::-;2069:17;;2110:1;2105;:6;;2097:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2161:1;2154:8;;;1991:179;;;;:::o;16703:326::-;16829:7;16847;16878:13;16894:28;16918:3;16894:19;16906:6;16894:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16878:44;;16933:23;16959:18;16971:5;16959:7;:11;;:18;;;;:::i;:::-;16933:44;;16998:15;17015:5;16990:31;;;;;;16703:326;;;;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:139::-;731:5;769:6;756:20;747:29;;785:33;812:5;785:33;:::i;:::-;737:87;;;;:::o;830:143::-;887:5;918:6;912:13;903:22;;934:33;961:5;934:33;:::i;:::-;893:80;;;;:::o;996:367::-;1069:8;1079:6;1129:3;1122:4;1114:6;1110:17;1106:27;1096:2;;1147:1;1144;1137:12;1096:2;1183:6;1170:20;1160:30;;1213:18;1205:6;1202:30;1199:2;;;1245:1;1242;1235:12;1199:2;1282:4;1274:6;1270:17;1258:29;;1336:3;1328:4;1320:6;1316:17;1306:8;1302:32;1299:41;1296:2;;;1353:1;1350;1343:12;1296:2;1086:277;;;;;:::o;1386:303::-;1457:5;1506:3;1499:4;1491:6;1487:17;1483:27;1473:2;;1524:1;1521;1514:12;1473:2;1564:6;1551:20;1589:94;1679:3;1671:6;1664:4;1656:6;1652:17;1589:94;:::i;:::-;1580:103;;1463:226;;;;;:::o;1695:133::-;1738:5;1776:6;1763:20;1754:29;;1792:30;1816:5;1792:30;:::i;:::-;1744:84;;;;:::o;1834:139::-;1880:5;1918:6;1905:20;1896:29;;1934:33;1961:5;1934:33;:::i;:::-;1886:87;;;;:::o;1979:143::-;2036:5;2067:6;2061:13;2052:22;;2083:33;2110:5;2083:33;:::i;:::-;2042:80;;;;:::o;2128:262::-;2187:6;2236:2;2224:9;2215:7;2211:23;2207:32;2204:2;;;2252:1;2249;2242:12;2204:2;2295:1;2320:53;2365:7;2356:6;2345:9;2341:22;2320:53;:::i;:::-;2310:63;;2266:117;2194:196;;;;:::o;2396:284::-;2466:6;2515:2;2503:9;2494:7;2490:23;2486:32;2483:2;;;2531:1;2528;2521:12;2483:2;2574:1;2599:64;2655:7;2646:6;2635:9;2631:22;2599:64;:::i;:::-;2589:74;;2545:128;2473:207;;;;:::o;2686:407::-;2754:6;2762;2811:2;2799:9;2790:7;2786:23;2782:32;2779:2;;;2827:1;2824;2817:12;2779:2;2870:1;2895:53;2940:7;2931:6;2920:9;2916:22;2895:53;:::i;:::-;2885:63;;2841:117;2997:2;3023:53;3068:7;3059:6;3048:9;3044:22;3023:53;:::i;:::-;3013:63;;2968:118;2769:324;;;;;:::o;3099:552::-;3176:6;3184;3192;3241:2;3229:9;3220:7;3216:23;3212:32;3209:2;;;3257:1;3254;3247:12;3209:2;3300:1;3325:53;3370:7;3361:6;3350:9;3346:22;3325:53;:::i;:::-;3315:63;;3271:117;3427:2;3453:53;3498:7;3489:6;3478:9;3474:22;3453:53;:::i;:::-;3443:63;;3398:118;3555:2;3581:53;3626:7;3617:6;3606:9;3602:22;3581:53;:::i;:::-;3571:63;;3526:118;3199:452;;;;;:::o;3657:407::-;3725:6;3733;3782:2;3770:9;3761:7;3757:23;3753:32;3750:2;;;3798:1;3795;3788:12;3750:2;3841:1;3866:53;3911:7;3902:6;3891:9;3887:22;3866:53;:::i;:::-;3856:63;;3812:117;3968:2;3994:53;4039:7;4030:6;4019:9;4015:22;3994:53;:::i;:::-;3984:63;;3939:118;3740:324;;;;;:::o;4070:564::-;4162:6;4170;4178;4227:2;4215:9;4206:7;4202:23;4198:32;4195:2;;;4243:1;4240;4233:12;4195:2;4314:1;4303:9;4299:17;4286:31;4344:18;4336:6;4333:30;4330:2;;;4376:1;4373;4366:12;4330:2;4412:80;4484:7;4475:6;4464:9;4460:22;4412:80;:::i;:::-;4394:98;;;;4257:245;4541:2;4567:50;4609:7;4600:6;4589:9;4585:22;4567:50;:::i;:::-;4557:60;;4512:115;4185:449;;;;;:::o;4640:405::-;4724:6;4773:2;4761:9;4752:7;4748:23;4744:32;4741:2;;;4789:1;4786;4779:12;4741:2;4860:1;4849:9;4845:17;4832:31;4890:18;4882:6;4879:30;4876:2;;;4922:1;4919;4912:12;4876:2;4950:78;5020:7;5011:6;5000:9;4996:22;4950:78;:::i;:::-;4940:88;;4803:235;4731:314;;;;:::o;5051:256::-;5107:6;5156:2;5144:9;5135:7;5131:23;5127:32;5124:2;;;5172:1;5169;5162:12;5124:2;5215:1;5240:50;5282:7;5273:6;5262:9;5258:22;5240:50;:::i;:::-;5230:60;;5186:114;5114:193;;;;:::o;5313:262::-;5372:6;5421:2;5409:9;5400:7;5396:23;5392:32;5389:2;;;5437:1;5434;5427:12;5389:2;5480:1;5505:53;5550:7;5541:6;5530:9;5526:22;5505:53;:::i;:::-;5495:63;;5451:117;5379:196;;;;:::o;5581:596::-;5669:6;5677;5685;5734:2;5722:9;5713:7;5709:23;5705:32;5702:2;;;5750:1;5747;5740:12;5702:2;5793:1;5818:64;5874:7;5865:6;5854:9;5850:22;5818:64;:::i;:::-;5808:74;;5764:128;5931:2;5957:64;6013:7;6004:6;5993:9;5989:22;5957:64;:::i;:::-;5947:74;;5902:129;6070:2;6096:64;6152:7;6143:6;6132:9;6128:22;6096:64;:::i;:::-;6086:74;;6041:129;5692:485;;;;;:::o;6183:698::-;6269:6;6277;6285;6293;6342:3;6330:9;6321:7;6317:23;6313:33;6310:2;;;6359:1;6356;6349:12;6310:2;6402:1;6427:53;6472:7;6463:6;6452:9;6448:22;6427:53;:::i;:::-;6417:63;;6373:117;6529:2;6555:53;6600:7;6591:6;6580:9;6576:22;6555:53;:::i;:::-;6545:63;;6500:118;6657:2;6683:53;6728:7;6719:6;6708:9;6704:22;6683:53;:::i;:::-;6673:63;;6628:118;6785:2;6811:53;6856:7;6847:6;6836:9;6832:22;6811:53;:::i;:::-;6801:63;;6756:118;6300:581;;;;;;;:::o;6887:179::-;6956:10;6977:46;7019:3;7011:6;6977:46;:::i;:::-;7055:4;7050:3;7046:14;7032:28;;6967:99;;;;:::o;7072:108::-;7149:24;7167:5;7149:24;:::i;:::-;7144:3;7137:37;7127:53;;:::o;7186:118::-;7273:24;7291:5;7273:24;:::i;:::-;7268:3;7261:37;7251:53;;:::o;7340:732::-;7459:3;7488:54;7536:5;7488:54;:::i;:::-;7558:86;7637:6;7632:3;7558:86;:::i;:::-;7551:93;;7668:56;7718:5;7668:56;:::i;:::-;7747:7;7778:1;7763:284;7788:6;7785:1;7782:13;7763:284;;;7864:6;7858:13;7891:63;7950:3;7935:13;7891:63;:::i;:::-;7884:70;;7977:60;8030:6;7977:60;:::i;:::-;7967:70;;7823:224;7810:1;7807;7803:9;7798:14;;7763:284;;;7767:14;8063:3;8056:10;;7464:608;;;;;;;:::o;8078:109::-;8159:21;8174:5;8159:21;:::i;:::-;8154:3;8147:34;8137:50;;:::o;8193:183::-;8306:63;8363:5;8306:63;:::i;:::-;8301:3;8294:76;8284:92;;:::o;8382:147::-;8477:45;8516:5;8477:45;:::i;:::-;8472:3;8465:58;8455:74;;:::o;8535:364::-;8623:3;8651:39;8684:5;8651:39;:::i;:::-;8706:71;8770:6;8765:3;8706:71;:::i;:::-;8699:78;;8786:52;8831:6;8826:3;8819:4;8812:5;8808:16;8786:52;:::i;:::-;8863:29;8885:6;8863:29;:::i;:::-;8858:3;8854:39;8847:46;;8627:272;;;;;:::o;8905:366::-;9047:3;9068:67;9132:2;9127:3;9068:67;:::i;:::-;9061:74;;9144:93;9233:3;9144:93;:::i;:::-;9262:2;9257:3;9253:12;9246:19;;9051:220;;;:::o;9277:366::-;9419:3;9440:67;9504:2;9499:3;9440:67;:::i;:::-;9433:74;;9516:93;9605:3;9516:93;:::i;:::-;9634:2;9629:3;9625:12;9618:19;;9423:220;;;:::o;9649:366::-;9791:3;9812:67;9876:2;9871:3;9812:67;:::i;:::-;9805:74;;9888:93;9977:3;9888:93;:::i;:::-;10006:2;10001:3;9997:12;9990:19;;9795:220;;;:::o;10021:366::-;10163:3;10184:67;10248:2;10243:3;10184:67;:::i;:::-;10177:74;;10260:93;10349:3;10260:93;:::i;:::-;10378:2;10373:3;10369:12;10362:19;;10167:220;;;:::o;10393:366::-;10535:3;10556:67;10620:2;10615:3;10556:67;:::i;:::-;10549:74;;10632:93;10721:3;10632:93;:::i;:::-;10750:2;10745:3;10741:12;10734:19;;10539:220;;;:::o;10765:366::-;10907:3;10928:67;10992:2;10987:3;10928:67;:::i;:::-;10921:74;;11004:93;11093:3;11004:93;:::i;:::-;11122:2;11117:3;11113:12;11106:19;;10911:220;;;:::o;11137:366::-;11279:3;11300:67;11364:2;11359:3;11300:67;:::i;:::-;11293:74;;11376:93;11465:3;11376:93;:::i;:::-;11494:2;11489:3;11485:12;11478:19;;11283:220;;;:::o;11509:366::-;11651:3;11672:67;11736:2;11731:3;11672:67;:::i;:::-;11665:74;;11748:93;11837:3;11748:93;:::i;:::-;11866:2;11861:3;11857:12;11850:19;;11655:220;;;:::o;11881:366::-;12023:3;12044:67;12108:2;12103:3;12044:67;:::i;:::-;12037:74;;12120:93;12209:3;12120:93;:::i;:::-;12238:2;12233:3;12229:12;12222:19;;12027:220;;;:::o;12253:366::-;12395:3;12416:67;12480:2;12475:3;12416:67;:::i;:::-;12409:74;;12492:93;12581:3;12492:93;:::i;:::-;12610:2;12605:3;12601:12;12594:19;;12399:220;;;:::o;12625:366::-;12767:3;12788:67;12852:2;12847:3;12788:67;:::i;:::-;12781:74;;12864:93;12953:3;12864:93;:::i;:::-;12982:2;12977:3;12973:12;12966:19;;12771:220;;;:::o;12997:366::-;13139:3;13160:67;13224:2;13219:3;13160:67;:::i;:::-;13153:74;;13236:93;13325:3;13236:93;:::i;:::-;13354:2;13349:3;13345:12;13338:19;;13143:220;;;:::o;13369:366::-;13511:3;13532:67;13596:2;13591:3;13532:67;:::i;:::-;13525:74;;13608:93;13697:3;13608:93;:::i;:::-;13726:2;13721:3;13717:12;13710:19;;13515:220;;;:::o;13741:118::-;13828:24;13846:5;13828:24;:::i;:::-;13823:3;13816:37;13806:53;;:::o;13865:112::-;13948:22;13964:5;13948:22;:::i;:::-;13943:3;13936:35;13926:51;;:::o;13983:222::-;14076:4;14114:2;14103:9;14099:18;14091:26;;14127:71;14195:1;14184:9;14180:17;14171:6;14127:71;:::i;:::-;14081:124;;;;:::o;14211:807::-;14460:4;14498:3;14487:9;14483:19;14475:27;;14512:71;14580:1;14569:9;14565:17;14556:6;14512:71;:::i;:::-;14593:72;14661:2;14650:9;14646:18;14637:6;14593:72;:::i;:::-;14675:80;14751:2;14740:9;14736:18;14727:6;14675:80;:::i;:::-;14765;14841:2;14830:9;14826:18;14817:6;14765:80;:::i;:::-;14855:73;14923:3;14912:9;14908:19;14899:6;14855:73;:::i;:::-;14938;15006:3;14995:9;14991:19;14982:6;14938:73;:::i;:::-;14465:553;;;;;;;;;:::o;15024:210::-;15111:4;15149:2;15138:9;15134:18;15126:26;;15162:65;15224:1;15213:9;15209:17;15200:6;15162:65;:::i;:::-;15116:118;;;;:::o;15240:274::-;15359:4;15397:2;15386:9;15382:18;15374:26;;15410:97;15504:1;15493:9;15489:17;15480:6;15410:97;:::i;:::-;15364:150;;;;:::o;15520:313::-;15633:4;15671:2;15660:9;15656:18;15648:26;;15720:9;15714:4;15710:20;15706:1;15695:9;15691:17;15684:47;15748:78;15821:4;15812:6;15748:78;:::i;:::-;15740:86;;15638:195;;;;:::o;15839:419::-;16005:4;16043:2;16032:9;16028:18;16020:26;;16092:9;16086:4;16082:20;16078:1;16067:9;16063:17;16056:47;16120:131;16246:4;16120:131;:::i;:::-;16112:139;;16010:248;;;:::o;16264:419::-;16430:4;16468:2;16457:9;16453:18;16445:26;;16517:9;16511:4;16507:20;16503:1;16492:9;16488:17;16481:47;16545:131;16671:4;16545:131;:::i;:::-;16537:139;;16435:248;;;:::o;16689:419::-;16855:4;16893:2;16882:9;16878:18;16870:26;;16942:9;16936:4;16932:20;16928:1;16917:9;16913:17;16906:47;16970:131;17096:4;16970:131;:::i;:::-;16962:139;;16860:248;;;:::o;17114:419::-;17280:4;17318:2;17307:9;17303:18;17295:26;;17367:9;17361:4;17357:20;17353:1;17342:9;17338:17;17331:47;17395:131;17521:4;17395:131;:::i;:::-;17387:139;;17285:248;;;:::o;17539:419::-;17705:4;17743:2;17732:9;17728:18;17720:26;;17792:9;17786:4;17782:20;17778:1;17767:9;17763:17;17756:47;17820:131;17946:4;17820:131;:::i;:::-;17812:139;;17710:248;;;:::o;17964:419::-;18130:4;18168:2;18157:9;18153:18;18145:26;;18217:9;18211:4;18207:20;18203:1;18192:9;18188:17;18181:47;18245:131;18371:4;18245:131;:::i;:::-;18237:139;;18135:248;;;:::o;18389:419::-;18555:4;18593:2;18582:9;18578:18;18570:26;;18642:9;18636:4;18632:20;18628:1;18617:9;18613:17;18606:47;18670:131;18796:4;18670:131;:::i;:::-;18662:139;;18560:248;;;:::o;18814:419::-;18980:4;19018:2;19007:9;19003:18;18995:26;;19067:9;19061:4;19057:20;19053:1;19042:9;19038:17;19031:47;19095:131;19221:4;19095:131;:::i;:::-;19087:139;;18985:248;;;:::o;19239:419::-;19405:4;19443:2;19432:9;19428:18;19420:26;;19492:9;19486:4;19482:20;19478:1;19467:9;19463:17;19456:47;19520:131;19646:4;19520:131;:::i;:::-;19512:139;;19410:248;;;:::o;19664:419::-;19830:4;19868:2;19857:9;19853:18;19845:26;;19917:9;19911:4;19907:20;19903:1;19892:9;19888:17;19881:47;19945:131;20071:4;19945:131;:::i;:::-;19937:139;;19835:248;;;:::o;20089:419::-;20255:4;20293:2;20282:9;20278:18;20270:26;;20342:9;20336:4;20332:20;20328:1;20317:9;20313:17;20306:47;20370:131;20496:4;20370:131;:::i;:::-;20362:139;;20260:248;;;:::o;20514:419::-;20680:4;20718:2;20707:9;20703:18;20695:26;;20767:9;20761:4;20757:20;20753:1;20742:9;20738:17;20731:47;20795:131;20921:4;20795:131;:::i;:::-;20787:139;;20685:248;;;:::o;20939:419::-;21105:4;21143:2;21132:9;21128:18;21120:26;;21192:9;21186:4;21182:20;21178:1;21167:9;21163:17;21156:47;21220:131;21346:4;21220:131;:::i;:::-;21212:139;;21110:248;;;:::o;21364:222::-;21457:4;21495:2;21484:9;21480:18;21472:26;;21508:71;21576:1;21565:9;21561:17;21552:6;21508:71;:::i;:::-;21462:124;;;;:::o;21592:831::-;21855:4;21893:3;21882:9;21878:19;21870:27;;21907:71;21975:1;21964:9;21960:17;21951:6;21907:71;:::i;:::-;21988:80;22064:2;22053:9;22049:18;22040:6;21988:80;:::i;:::-;22115:9;22109:4;22105:20;22100:2;22089:9;22085:18;22078:48;22143:108;22246:4;22237:6;22143:108;:::i;:::-;22135:116;;22261:72;22329:2;22318:9;22314:18;22305:6;22261:72;:::i;:::-;22343:73;22411:3;22400:9;22396:19;22387:6;22343:73;:::i;:::-;21860:563;;;;;;;;:::o;22429:214::-;22518:4;22556:2;22545:9;22541:18;22533:26;;22569:67;22633:1;22622:9;22618:17;22609:6;22569:67;:::i;:::-;22523:120;;;;:::o;22649:129::-;22683:6;22710:20;;:::i;:::-;22700:30;;22739:33;22767:4;22759:6;22739:33;:::i;:::-;22690:88;;;:::o;22784:75::-;22817:6;22850:2;22844:9;22834:19;;22824:35;:::o;22865:311::-;22942:4;23032:18;23024:6;23021:30;23018:2;;;23054:18;;:::i;:::-;23018:2;23104:4;23096:6;23092:17;23084:25;;23164:4;23158;23154:15;23146:23;;22947:229;;;:::o;23182:132::-;23249:4;23272:3;23264:11;;23302:4;23297:3;23293:14;23285:22;;23254:60;;;:::o;23320:114::-;23387:6;23421:5;23415:12;23405:22;;23394:40;;;:::o;23440:99::-;23492:6;23526:5;23520:12;23510:22;;23499:40;;;:::o;23545:113::-;23615:4;23647;23642:3;23638:14;23630:22;;23620:38;;;:::o;23664:184::-;23763:11;23797:6;23792:3;23785:19;23837:4;23832:3;23828:14;23813:29;;23775:73;;;;:::o;23854:169::-;23938:11;23972:6;23967:3;23960:19;24012:4;24007:3;24003:14;23988:29;;23950:73;;;;:::o;24029:305::-;24069:3;24088:20;24106:1;24088:20;:::i;:::-;24083:25;;24122:20;24140:1;24122:20;:::i;:::-;24117:25;;24276:1;24208:66;24204:74;24201:1;24198:81;24195:2;;;24282:18;;:::i;:::-;24195:2;24326:1;24323;24319:9;24312:16;;24073:261;;;;:::o;24340:185::-;24380:1;24397:20;24415:1;24397:20;:::i;:::-;24392:25;;24431:20;24449:1;24431:20;:::i;:::-;24426:25;;24470:1;24460:2;;24475:18;;:::i;:::-;24460:2;24517:1;24514;24510:9;24505:14;;24382:143;;;;:::o;24531:348::-;24571:7;24594:20;24612:1;24594:20;:::i;:::-;24589:25;;24628:20;24646:1;24628:20;:::i;:::-;24623:25;;24816:1;24748:66;24744:74;24741:1;24738:81;24733:1;24726:9;24719:17;24715:105;24712:2;;;24823:18;;:::i;:::-;24712:2;24871:1;24868;24864:9;24853:20;;24579:300;;;;:::o;24885:191::-;24925:4;24945:20;24963:1;24945:20;:::i;:::-;24940:25;;24979:20;24997:1;24979:20;:::i;:::-;24974:25;;25018:1;25015;25012:8;25009:2;;;25023:18;;:::i;:::-;25009:2;25068:1;25065;25061:9;25053:17;;24930:146;;;;:::o;25082:96::-;25119:7;25148:24;25166:5;25148:24;:::i;:::-;25137:35;;25127:51;;;:::o;25184:90::-;25218:7;25261:5;25254:13;25247:21;25236:32;;25226:48;;;:::o;25280:126::-;25317:7;25357:42;25350:5;25346:54;25335:65;;25325:81;;;:::o;25412:77::-;25449:7;25478:5;25467:16;;25457:32;;;:::o;25495:86::-;25530:7;25570:4;25563:5;25559:16;25548:27;;25538:43;;;:::o;25587:178::-;25663:9;25696:63;25753:5;25696:63;:::i;:::-;25683:76;;25673:92;;;:::o;25771:139::-;25847:9;25880:24;25898:5;25880:24;:::i;:::-;25867:37;;25857:53;;;:::o;25916:121::-;25974:9;26007:24;26025:5;26007:24;:::i;:::-;25994:37;;25984:53;;;:::o;26043:307::-;26111:1;26121:113;26135:6;26132:1;26129:13;26121:113;;;26220:1;26215:3;26211:11;26205:18;26201:1;26196:3;26192:11;26185:39;26157:2;26154:1;26150:10;26145:15;;26121:113;;;26252:6;26249:1;26246:13;26243:2;;;26332:1;26323:6;26318:3;26314:16;26307:27;26243:2;26092:258;;;;:::o;26356:281::-;26439:27;26461:4;26439:27;:::i;:::-;26431:6;26427:40;26569:6;26557:10;26554:22;26533:18;26521:10;26518:34;26515:62;26512:2;;;26580:18;;:::i;:::-;26512:2;26620:10;26616:2;26609:22;26399:238;;;:::o;26643:233::-;26682:3;26705:24;26723:5;26705:24;:::i;:::-;26696:33;;26751:66;26744:5;26741:77;26738:2;;;26821:18;;:::i;:::-;26738:2;26868:1;26861:5;26857:13;26850:20;;26686:190;;;:::o;26882:180::-;26930:77;26927:1;26920:88;27027:4;27024:1;27017:15;27051:4;27048:1;27041:15;27068:180;27116:77;27113:1;27106:88;27213:4;27210:1;27203:15;27237:4;27234:1;27227:15;27254:180;27302:77;27299:1;27292:88;27399:4;27396:1;27389:15;27423:4;27420:1;27413:15;27440:102;27481:6;27532:2;27528:7;27523:2;27516:5;27512:14;27508:28;27498:38;;27488:54;;;:::o;27548:222::-;27688:34;27684:1;27676:6;27672:14;27665:58;27757:5;27752:2;27744:6;27740:15;27733:30;27654:116;:::o;27776:250::-;27916:34;27912:1;27904:6;27900:14;27893:58;27985:33;27980:2;27972:6;27968:15;27961:58;27882:144;:::o;28032:178::-;28172:30;28168:1;28160:6;28156:14;28149:54;28138:72;:::o;28216:225::-;28356:34;28352:1;28344:6;28340:14;28333:58;28425:8;28420:2;28412:6;28408:15;28401:33;28322:119;:::o;28447:221::-;28587:34;28583:1;28575:6;28571:14;28564:58;28656:4;28651:2;28643:6;28639:15;28632:29;28553:115;:::o;28674:222::-;28814:34;28810:1;28802:6;28798:14;28791:58;28883:5;28878:2;28870:6;28866:15;28859:30;28780:116;:::o;28902:177::-;29042:29;29038:1;29030:6;29026:14;29019:53;29008:71;:::o;29085:220::-;29225:34;29221:1;29213:6;29209:14;29202:58;29294:3;29289:2;29281:6;29277:15;29270:28;29191:114;:::o;29311:182::-;29451:34;29447:1;29439:6;29435:14;29428:58;29417:76;:::o;29499:228::-;29639:34;29635:1;29627:6;29623:14;29616:58;29708:11;29703:2;29695:6;29691:15;29684:36;29605:122;:::o;29733:224::-;29873:34;29869:1;29861:6;29857:14;29850:58;29942:7;29937:2;29929:6;29925:15;29918:32;29839:118;:::o;29963:222::-;30103:34;30099:1;30091:6;30087:14;30080:58;30172:5;30167:2;30159:6;30155:15;30148:30;30069:116;:::o;30191:223::-;30331:34;30327:1;30319:6;30315:14;30308:58;30400:6;30395:2;30387:6;30383:15;30376:31;30297:117;:::o;30420:122::-;30493:24;30511:5;30493:24;:::i;:::-;30486:5;30483:35;30473:2;;30532:1;30529;30522:12;30473:2;30463:79;:::o;30548:116::-;30618:21;30633:5;30618:21;:::i;:::-;30611:5;30608:32;30598:2;;30654:1;30651;30644:12;30598:2;30588:76;:::o;30670:122::-;30743:24;30761:5;30743:24;:::i;:::-;30736:5;30733:35;30723:2;;30782:1;30779;30772:12;30723:2;30713:79;:::o
Swarm Source
ipfs://ad77aa782f0dfc895c1cfc97017876386c73a385da1136b8ca515fec1b209f37
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.