Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 250 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Update Tax | 19354285 | 171 days ago | IN | 0 ETH | 0.00169339 | ||||
Set Trading | 19340577 | 173 days ago | IN | 0 ETH | 0.00152054 | ||||
Approve | 19334223 | 174 days ago | IN | 0 ETH | 0.00324909 | ||||
Approve | 19332866 | 174 days ago | IN | 0 ETH | 0.00336236 | ||||
Transfer | 19187320 | 194 days ago | IN | 0 ETH | 0.00365196 | ||||
Approve | 19164229 | 197 days ago | IN | 0 ETH | 0.00101794 | ||||
Transfer | 19097523 | 207 days ago | IN | 0 ETH | 0.00064946 | ||||
Approve | 19094005 | 207 days ago | IN | 0 ETH | 0.00056164 | ||||
Approve | 19087855 | 208 days ago | IN | 0 ETH | 0.00105726 | ||||
Approve | 19029468 | 216 days ago | IN | 0 ETH | 0.00176096 | ||||
Approve | 18980075 | 223 days ago | IN | 0 ETH | 0.00242744 | ||||
Approve | 18906360 | 234 days ago | IN | 0 ETH | 0.00090446 | ||||
Approve | 18906283 | 234 days ago | IN | 0 ETH | 0.00074805 | ||||
Approve | 18723166 | 259 days ago | IN | 0 ETH | 0.00274129 | ||||
Approve | 18673491 | 266 days ago | IN | 0 ETH | 0.00155182 | ||||
Approve | 18673411 | 266 days ago | IN | 0 ETH | 0.0016822 | ||||
Approve | 18647724 | 270 days ago | IN | 0 ETH | 0.00114016 | ||||
Approve | 18589768 | 278 days ago | IN | 0 ETH | 0.00099749 | ||||
Approve | 18586664 | 278 days ago | IN | 0 ETH | 0.00208282 | ||||
Approve | 18579347 | 279 days ago | IN | 0 ETH | 0.00219699 | ||||
Approve | 18370171 | 309 days ago | IN | 0 ETH | 0.00037394 | ||||
Approve | 18370166 | 309 days ago | IN | 0 ETH | 0.00036497 | ||||
Transfer | 18359465 | 310 days ago | IN | 0 ETH | 0.00027881 | ||||
Approve | 18354375 | 311 days ago | IN | 0 ETH | 0.00028834 | ||||
Approve | 18344744 | 312 days ago | IN | 0 ETH | 0.00030464 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
Spiral
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-03-10 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.10; pragma experimental ABIEncoderV2; ////// lib/openzeppelin-contracts/contracts/utils/Context.sol // OpenZeppelin Contracts v4.4.0 (utils/Context.sol) /* pragma solidity ^0.8.0; */ /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } ////// lib/openzeppelin-contracts/contracts/access/Ownable.sol // OpenZeppelin Contracts v4.4.0 (access/Ownable.sol) /* pragma solidity ^0.8.0; */ /* import "../utils/Context.sol"; */ /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } ////// lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol // OpenZeppelin Contracts v4.4.0 (token/ERC20/IERC20.sol) /* pragma solidity ^0.8.0; */ /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); function createPair(address tokenA, address tokenB) external returns (address pair); function getPair(address tokenA, address tokenB) external view returns (address pair); } interface IUniswapV2Router02 { function factory() external pure returns (address); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } interface IUniswapV2Pair { function token0() external view returns (address); function token1() external view returns (address); } interface ITaxCalculator { function getTax(address from, address to, uint256 amount) external returns (uint256, uint256); } contract Spiral is Context, IERC20, Ownable { struct UserInfo { bool feesExcluded; bool isAMM; uint64 balances; } struct TransferInfo { bool swapEnabled; uint8 trading; uint8 buyTax; uint8 buyLP; uint8 sellTax; uint8 sellLP; uint32 swapTokensAtAmount; ITaxCalculator taxCalculator; } string private _name = 'Spiral'; string private _symbol = 'SPIRAL'; uint8 private _decimals = 9; uint256 private constant _totalSupply = 1e16; uint256 public constant maxFee = 200; TransferInfo public transferInfoStor; mapping(address => UserInfo) public userInfo; mapping (address => mapping (address => uint256)) private _allowances; IUniswapV2Router02 public mainRouter = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address public fundAddress; address public mainPair; address public pairedToken; event ExcludeFromFees(address indexed account, bool isExcluded); constructor (address _fundAddress, address _pairedToken) { userInfo[_msgSender()].balances = uint64(_totalSupply); mainPair = IUniswapV2Factory(mainRouter.factory()).createPair(address(this), _pairedToken); userInfo[mainPair].isAMM = true; transferInfoStor = TransferInfo(true,2,0,0,0,0,1e6,ITaxCalculator(address(0))); pairedToken = _pairedToken; fundAddress = _fundAddress; _approve(address(this), address(mainRouter), ~uint(256)); emit Transfer(address(0), _msgSender(), _totalSupply); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return userInfo[account].balances; } function isExcludedFromFees(address account) public view returns (bool) { return userInfo[account].feesExcluded; } function isAMM(address account) public view returns (bool) { return userInfo[account].isAMM; } 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) { require(_allowances[sender][_msgSender()]-amount >= 0, "ERC20: transfer amount exceeds allowance"); _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()]-amount); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } // change the minimum amount of tokens to sell from fees function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner { transferInfoStor.swapTokensAtAmount = uint32(newAmount); } // only use to disable contract sales if absolutely necessary (emergency use only) function updateSwapEnabled(bool enabled) external onlyOwner { transferInfoStor.swapEnabled = enabled; } function setTaxCalculator(ITaxCalculator taxCalculator) external onlyOwner { if (address(taxCalculator) != address(0)){ taxCalculator.getTax(address(0), address(0), 0); } transferInfoStor.taxCalculator = taxCalculator; } function excludeFromFees(address account, bool excluded) external onlyOwner { userInfo[account].feesExcluded = excluded; emit ExcludeFromFees(account, excluded); } function updateFundAddress(address _fundAddress) external onlyOwner { fundAddress = _fundAddress; } function setTrading(uint256 trading) external onlyOwner { require(trading < 2); transferInfoStor.trading = uint8(trading); } function updateTax(uint256 _buyLP, uint256 _buyTax, uint256 _sellLP, uint256 _sellTax) external onlyOwner { require (_buyTax <= maxFee); require (_sellTax <= maxFee); require (_buyLP <= _buyTax); require (_sellLP <= _sellTax); transferInfoStor.buyLP = uint8(_buyLP); transferInfoStor.buyTax = uint8(_buyTax); transferInfoStor.sellLP = uint8(_sellLP); transferInfoStor.sellTax = uint8(_sellTax); _approve(address(this), address(mainRouter), ~uint(256)); } function setAMMPairs(address pair, bool _isAMM) external onlyOwner { userInfo[pair].isAMM = _isAMM; } function setMainPair(address _pairedToken, IUniswapV2Router02 _mainRouter) external onlyOwner { address _mainPair = IUniswapV2Factory(_mainRouter.factory()).getPair(address(this), _pairedToken); require(userInfo[_mainPair].isAMM); pairedToken = _pairedToken; mainPair = _mainPair; mainRouter = _mainRouter; } function retrieveToken(IERC20 _token) public onlyOwner { uint256 contractBalance = _token.balanceOf(address(this)); _token.transfer(owner(), contractBalance); } function _transfer( address from, address to, uint256 amount ) internal { require(amount != 0); require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); if (from != owner() && to != owner() && from != address(this)) { TransferInfo memory transferInfo = transferInfoStor; UserInfo memory toUserInfo = userInfo[to]; UserInfo memory fromUserInfo = userInfo[from]; if (!fromUserInfo.feesExcluded && !toUserInfo.feesExcluded) { (uint256 fees, uint256 tokensForLiquidity) = (0, 0); bool externalTax = address(transferInfo.taxCalculator) != address(0); // on sell if (toUserInfo.isAMM) { require(transferInfo.trading < 2); if (externalTax) { (fees, tokensForLiquidity) = getTax(from, to, amount); } else { fees = amount*transferInfo.sellTax/1000; tokensForLiquidity = amount*transferInfo.sellLP/1000; } if (fees > 0) { _tokenTransfer(from, address(this), fees); if (tokensForLiquidity > 0) { _tokenTransfer(address(this), to, tokensForLiquidity); } } if (transferInfoStor.swapEnabled) { uint256 contractBalance = userInfo[address(this)].balances; uint256 swapTokensAtAmount = uint256(transferInfo.swapTokensAtAmount) * 1e6; if (contractBalance > swapTokensAtAmount) { if (contractBalance > swapTokensAtAmount * 20) { contractBalance = swapTokensAtAmount * 20; } swapBack(contractBalance); } } } // on buy else if (fromUserInfo.isAMM) { require(transferInfo.trading == 0); if (externalTax) { (fees, tokensForLiquidity) = getTax(from, to, amount); } else { fees = amount*transferInfo.buyTax/1000; tokensForLiquidity = amount*transferInfo.buyLP/1000; } if (fees > 0) { _tokenTransfer(from, address(this), fees - tokensForLiquidity); } } amount -= fees; } } _tokenTransfer(from, to, amount); } function _tokenTransfer(address from, address to, uint256 amount) internal { uint256 fromBalance = userInfo[from].balances; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { userInfo[from].balances = uint64(fromBalance - amount); userInfo[to].balances += uint64(amount); } emit Transfer(from, to, amount); } function getTax(address from, address to, uint256 amount) private returns (uint256, uint256) { try transferInfoStor.taxCalculator.getTax(from, to, amount) returns (uint256 fees, uint256 tokensForLiquidity) { return fees <= maxFee*amount/1000 && tokensForLiquidity <= fees ? (fees, tokensForLiquidity) : (0,0); } catch { return (0,0); } } function swapBack(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = pairedToken; mainRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens( tokenAmount, 0, path, fundAddress, block.timestamp ); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_fundAddress","type":"address"},{"internalType":"address","name":"_pairedToken","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":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fundAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isAMM","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mainPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mainRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairedToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"}],"name":"retrieveToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"_isAMM","type":"bool"}],"name":"setAMMPairs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pairedToken","type":"address"},{"internalType":"contract IUniswapV2Router02","name":"_mainRouter","type":"address"}],"name":"setMainPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ITaxCalculator","name":"taxCalculator","type":"address"}],"name":"setTaxCalculator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"trading","type":"uint256"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferInfoStor","outputs":[{"internalType":"bool","name":"swapEnabled","type":"bool"},{"internalType":"uint8","name":"trading","type":"uint8"},{"internalType":"uint8","name":"buyTax","type":"uint8"},{"internalType":"uint8","name":"buyLP","type":"uint8"},{"internalType":"uint8","name":"sellTax","type":"uint8"},{"internalType":"uint8","name":"sellLP","type":"uint8"},{"internalType":"uint32","name":"swapTokensAtAmount","type":"uint32"},{"internalType":"contract ITaxCalculator","name":"taxCalculator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_fundAddress","type":"address"}],"name":"updateFundAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyLP","type":"uint256"},{"internalType":"uint256","name":"_buyTax","type":"uint256"},{"internalType":"uint256","name":"_sellLP","type":"uint256"},{"internalType":"uint256","name":"_sellTax","type":"uint256"}],"name":"updateTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userInfo","outputs":[{"internalType":"bool","name":"feesExcluded","type":"bool"},{"internalType":"bool","name":"isAMM","type":"bool"},{"internalType":"uint64","name":"balances","type":"uint64"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040526040518060400160405280600681526020017f53706972616c0000000000000000000000000000000000000000000000000000815250600190816200004a919062000ba8565b506040518060400160405280600681526020017f53504952414c00000000000000000000000000000000000000000000000000008152506002908162000091919062000ba8565b506009600360006101000a81548160ff021916908360ff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200011057600080fd5b506040516200479e3803806200479e833981810160405281019062000136919062000cf9565b620001566200014a6200069160201b60201c565b6200069960201b60201c565b662386f26fc1000060056000620001726200069160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160026101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000243573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000269919062000d40565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630836040518363ffffffff1660e01b8152600401620002a592919062000d83565b6020604051808303816000875af1158015620002c5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002eb919062000d40565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160016101000a81548160ff021916908315150217905550604051806101000160405280600115158152602001600260ff168152602001600060ff168152602001600060ff168152602001600060ff168152602001600060ff168152602001620f424063ffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815250600460008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff16021790555060608201518160000160036101000a81548160ff021916908360ff16021790555060808201518160000160046101000a81548160ff021916908360ff16021790555060a08201518160000160056101000a81548160ff021916908360ff16021790555060c08201518160000160066101000a81548163ffffffff021916908363ffffffff16021790555060e082015181600001600a6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555090505080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200060b30600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610100196200075d60201b60201c565b6200061b6200069160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef662386f26fc1000060405162000681919062000dc1565b60405180910390a3505062000f1f565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620007cf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007c69062000e65565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000841576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008389062000efd565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000921919062000dc1565b60405180910390a3505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620009b057607f821691505b602082108103620009c657620009c562000968565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000a307fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620009f1565b62000a3c8683620009f1565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000a8962000a8362000a7d8462000a54565b62000a5e565b62000a54565b9050919050565b6000819050919050565b62000aa58362000a68565b62000abd62000ab48262000a90565b848454620009fe565b825550505050565b600090565b62000ad462000ac5565b62000ae181848462000a9a565b505050565b5b8181101562000b095762000afd60008262000aca565b60018101905062000ae7565b5050565b601f82111562000b585762000b2281620009cc565b62000b2d84620009e1565b8101602085101562000b3d578190505b62000b5562000b4c85620009e1565b83018262000ae6565b50505b505050565b600082821c905092915050565b600062000b7d6000198460080262000b5d565b1980831691505092915050565b600062000b98838362000b6a565b9150826002028217905092915050565b62000bb3826200092e565b67ffffffffffffffff81111562000bcf5762000bce62000939565b5b62000bdb825462000997565b62000be882828562000b0d565b600060209050601f83116001811462000c20576000841562000c0b578287015190505b62000c17858262000b8a565b86555062000c87565b601f19841662000c3086620009cc565b60005b8281101562000c5a5784890151825560018201915060208501945060208101905062000c33565b8683101562000c7a578489015162000c76601f89168262000b6a565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000cc18262000c94565b9050919050565b62000cd38162000cb4565b811462000cdf57600080fd5b50565b60008151905062000cf38162000cc8565b92915050565b6000806040838503121562000d135762000d1262000c8f565b5b600062000d238582860162000ce2565b925050602062000d368582860162000ce2565b9150509250929050565b60006020828403121562000d595762000d5862000c8f565b5b600062000d698482850162000ce2565b91505092915050565b62000d7d8162000cb4565b82525050565b600060408201905062000d9a600083018562000d72565b62000da9602083018462000d72565b9392505050565b62000dbb8162000a54565b82525050565b600060208201905062000dd8600083018462000db0565b92915050565b600082825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600062000e4d60248362000dde565b915062000e5a8262000def565b604082019050919050565b6000602082019050818103600083015262000e808162000e3e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600062000ee560228362000dde565b915062000ef28262000e87565b604082019050919050565b6000602082019050818103600083015262000f188162000ed6565b9050919050565b61386f8062000f2f6000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c806385af30c51161010f578063d257b34f116100a2578063e82bef2911610071578063e82bef2914610587578063f2fde38b146105a5578063fb522bbc146105c1578063ffc94f90146105dd576101e5565b8063d257b34f146104ef578063d46b6a301461050b578063dd62ed3e1461053b578063e2951ee61461056b576101e5565b806395d89b41116100de57806395d89b4114610467578063a9059cbb14610485578063c0246668146104b5578063cf188ad0146104d1576101e5565b806385af30c5146103f35780638da5cb5b14610411578063924de9b71461042f578063935ec5741461044b576101e5565b80632383eb8f1161018757806370a082311161015657806370a082311461037857806370e3e8b9146103a8578063715018a6146103c457806382595a05146103ce576101e5565b80632383eb8f146102de57806323b872dd146102fa578063313ce5671461032a5780634fbee19314610348576101e5565b806314127a3b116101c357806314127a3b1461025657806318160ddd146102725780631959a002146102905780631d5459f7146102c2576101e5565b806301f59d16146101ea57806306fdde0314610208578063095ea7b314610226575b600080fd5b6101f26105fb565b6040516101ff91906127ed565b60405180910390f35b610210610600565b60405161021d9190612898565b60405180910390f35b610240600480360381019061023b9190612949565b610692565b60405161024d91906129a4565b60405180910390f35b610270600480360381019061026b91906129fd565b6106b0565b005b61027a610834565b60405161028791906127ed565b60405180910390f35b6102aa60048036038101906102a59190612a2a565b610843565b6040516102b993929190612a7a565b60405180910390f35b6102dc60048036038101906102d79190612a2a565b61089b565b005b6102f860048036038101906102f39190612ab1565b61095b565b005b610314600480360381019061030f9190612ade565b610a05565b60405161032191906129a4565b60405180910390f35b610332610b8e565b60405161033f9190612b4d565b60405180910390f35b610362600480360381019061035d9190612a2a565b610ba5565b60405161036f91906129a4565b60405180910390f35b610392600480360381019061038d9190612a2a565b610bfe565b60405161039f91906127ed565b60405180910390f35b6103c260048036038101906103bd9190612b68565b610c68565b005b6103cc610dc8565b005b6103d6610e50565b6040516103ea989796959493929190612c4d565b60405180910390f35b6103fb610f04565b6040516104089190612cda565b60405180910390f35b610419610f2a565b6040516104269190612cda565b60405180910390f35b61044960048036038101906104449190612d21565b610f53565b005b61046560048036038101906104609190612d8c565b610fef565b005b61046f61127a565b60405161047c9190612898565b60405180910390f35b61049f600480360381019061049a9190612949565b61130c565b6040516104ac91906129a4565b60405180910390f35b6104cf60048036038101906104ca9190612dcc565b61132a565b005b6104d9611452565b6040516104e69190612e2d565b60405180910390f35b61050960048036038101906105049190612ab1565b611478565b005b61052560048036038101906105209190612a2a565b61151b565b60405161053291906129a4565b60405180910390f35b61055560048036038101906105509190612e48565b611574565b60405161056291906127ed565b60405180910390f35b61058560048036038101906105809190612ec6565b6115fb565b005b61058f611776565b60405161059c9190612cda565b60405180910390f35b6105bf60048036038101906105ba9190612a2a565b61179c565b005b6105db60048036038101906105d69190612dcc565b611893565b005b6105e561196d565b6040516105f29190612cda565b60405180910390f35b60c881565b60606001805461060f90612f22565b80601f016020809104026020016040519081016040528092919081815260200182805461063b90612f22565b80156106885780601f1061065d57610100808354040283529160200191610688565b820191906000526020600020905b81548152906001019060200180831161066b57829003601f168201915b5050505050905090565b60006106a661069f611993565b848461199b565b6001905092915050565b6106b8611993565b73ffffffffffffffffffffffffffffffffffffffff166106d6610f2a565b73ffffffffffffffffffffffffffffffffffffffff161461072c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072390612f9f565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107679190612cda565b602060405180830381865afa158015610784573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a89190612fd4565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6107ce610f2a565b836040518363ffffffff1660e01b81526004016107ec929190613001565b6020604051808303816000875af115801561080b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082f919061303f565b505050565b6000662386f26fc10000905090565b60056020528060005260406000206000915090508060000160009054906101000a900460ff16908060000160019054906101000a900460ff16908060000160029054906101000a900467ffffffffffffffff16905083565b6108a3611993565b73ffffffffffffffffffffffffffffffffffffffff166108c1610f2a565b73ffffffffffffffffffffffffffffffffffffffff1614610917576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090e90612f9f565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610963611993565b73ffffffffffffffffffffffffffffffffffffffff16610981610f2a565b73ffffffffffffffffffffffffffffffffffffffff16146109d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ce90612f9f565b60405180910390fd5b600281106109e457600080fd5b80600460000160016101000a81548160ff021916908360ff16021790555050565b60008082600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a52611993565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a97919061309b565b1015610ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acf90613141565b60405180910390fd5b610ae3848484611b64565b610b8384610aef611993565b84600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b39611993565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b7e919061309b565b61199b565b600190509392505050565b6000600360009054906101000a900460ff16905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff169050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160029054906101000a900467ffffffffffffffff1667ffffffffffffffff169050919050565b610c70611993565b73ffffffffffffffffffffffffffffffffffffffff16610c8e610f2a565b73ffffffffffffffffffffffffffffffffffffffff1614610ce4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdb90612f9f565b60405180910390fd5b60c8831115610cf257600080fd5b60c8811115610d0057600080fd5b82841115610d0d57600080fd5b80821115610d1a57600080fd5b83600460000160036101000a81548160ff021916908360ff16021790555082600460000160026101000a81548160ff021916908360ff16021790555081600460000160056101000a81548160ff021916908360ff16021790555080600460000160046101000a81548160ff021916908360ff160217905550610dc230600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166101001961199b565b50505050565b610dd0611993565b73ffffffffffffffffffffffffffffffffffffffff16610dee610f2a565b73ffffffffffffffffffffffffffffffffffffffff1614610e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3b90612f9f565b60405180910390fd5b610e4e600061224f565b565b60048060000160009054906101000a900460ff16908060000160019054906101000a900460ff16908060000160029054906101000a900460ff16908060000160039054906101000a900460ff16908060000160049054906101000a900460ff16908060000160059054906101000a900460ff16908060000160069054906101000a900463ffffffff169080600001600a9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905088565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610f5b611993565b73ffffffffffffffffffffffffffffffffffffffff16610f79610f2a565b73ffffffffffffffffffffffffffffffffffffffff1614610fcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc690612f9f565b60405180910390fd5b80600460000160006101000a81548160ff02191690831515021790555050565b610ff7611993565b73ffffffffffffffffffffffffffffffffffffffff16611015610f2a565b73ffffffffffffffffffffffffffffffffffffffff161461106b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106290612f9f565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110dc9190613176565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530856040518363ffffffff1660e01b81526004016111169291906131a3565b602060405180830381865afa158015611133573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111579190613176565b9050600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160019054906101000a900460ff166111b257600080fd5b82600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b60606002805461128990612f22565b80601f01602080910402602001604051908101604052809291908181526020018280546112b590612f22565b80156113025780601f106112d757610100808354040283529160200191611302565b820191906000526020600020905b8154815290600101906020018083116112e557829003601f168201915b5050505050905090565b6000611320611319611993565b8484611b64565b6001905092915050565b611332611993565b73ffffffffffffffffffffffffffffffffffffffff16611350610f2a565b73ffffffffffffffffffffffffffffffffffffffff16146113a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139d90612f9f565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161144691906129a4565b60405180910390a25050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611480611993565b73ffffffffffffffffffffffffffffffffffffffff1661149e610f2a565b73ffffffffffffffffffffffffffffffffffffffff16146114f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114eb90612f9f565b60405180910390fd5b80600460000160066101000a81548163ffffffff021916908363ffffffff16021790555050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160019054906101000a900460ff169050919050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611603611993565b73ffffffffffffffffffffffffffffffffffffffff16611621610f2a565b73ffffffffffffffffffffffffffffffffffffffff1614611677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166e90612f9f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461172f578073ffffffffffffffffffffffffffffffffffffffff1663d7ad21ac60008060006040518463ffffffff1660e01b81526004016116ea93929190613207565b60408051808303816000875af1158015611708573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172c919061323e565b50505b806004600001600a6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117a4611993565b73ffffffffffffffffffffffffffffffffffffffff166117c2610f2a565b73ffffffffffffffffffffffffffffffffffffffff1614611818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180f90612f9f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611887576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187e906132f0565b60405180910390fd5b6118908161224f565b50565b61189b611993565b73ffffffffffffffffffffffffffffffffffffffff166118b9610f2a565b73ffffffffffffffffffffffffffffffffffffffff161461190f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190690612f9f565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160016101000a81548160ff0219169083151502179055505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0190613382565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7090613414565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b5791906127ed565b60405180910390a3505050565b60008103611b7157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611be0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd7906134a6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4690613538565b60405180910390fd5b611c57610f2a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611cc55750611c95610f2a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611cfd57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561223f5760006004604051806101000160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff1681526020016000820160029054906101000a900460ff1660ff1660ff1681526020016000820160039054906101000a900460ff1660ff1660ff1681526020016000820160049054906101000a900460ff1660ff1660ff1681526020016000820160059054906101000a900460ff1660ff1660ff1681526020016000820160069054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200160008201600a9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152505090506000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff161515151581526020016000820160029054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff168152505090506000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff161515151581526020016000820160029054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff168152505090508060000151158015611fbc57508160000151155b1561223b576000806000809150915060008073ffffffffffffffffffffffffffffffffffffffff168660e0015173ffffffffffffffffffffffffffffffffffffffff1614159050846020015115612186576002866020015160ff161061202157600080fd5b801561203f57612032898989612313565b8093508194505050612084565b6103e8866080015160ff16886120559190613558565b61205f91906135c9565b92506103e88660a0015160ff16886120779190613558565b61208191906135c9565b91505b60008311156120ae5761209889308561240a565b60008211156120ad576120ac30898461240a565b5b5b600460000160009054906101000a900460ff1615612181576000600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160029054906101000a900467ffffffffffffffff1667ffffffffffffffff1690506000620f42408860c0015163ffffffff166121469190613558565b90508082111561217e5760148161215d9190613558565b821115612174576014816121719190613558565b91505b61217d8261260a565b5b50505b612229565b836020015115612228576000866020015160ff16146121a457600080fd5b80156121c2576121b5898989612313565b8093508194505050612207565b6103e8866040015160ff16886121d89190613558565b6121e291906135c9565b92506103e8866060015160ff16886121fa9190613558565b61220491906135c9565b91505b60008311156122275761222689308486612221919061309b565b61240a565b5b5b5b8287612235919061309b565b96505050505b5050505b61224a83838361240a565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000806004600001600a9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d7ad21ac8686866040518463ffffffff1660e01b8152600401612378939291906135fa565b60408051808303816000875af19250505080156123b357506040513d601f19601f820116820180604052508101906123b0919061323e565b60015b6123c35760008091509150612402565b6103e88560c86123d39190613558565b6123dd91906135c9565b82111580156123ec5750818111155b6123f8576000806123fb565b81815b9350935050505b935093915050565b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160029054906101000a900467ffffffffffffffff1667ffffffffffffffff169050818110156124b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a9906136a3565b60405180910390fd5b818103600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160026101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160028282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125fc91906127ed565b60405180910390a350505050565b6000600267ffffffffffffffff811115612627576126266136c3565b5b6040519080825280602002602001820160405280156126555781602001602082028036833780820191505090505b509050308160008151811061266d5761266c6136f2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106126de576126dd6136f2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d79583600084600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161279e9594939291906137df565b600060405180830381600087803b1580156127b857600080fd5b505af11580156127cc573d6000803e3d6000fd5b505050505050565b6000819050919050565b6127e7816127d4565b82525050565b600060208201905061280260008301846127de565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612842578082015181840152602081019050612827565b60008484015250505050565b6000601f19601f8301169050919050565b600061286a82612808565b6128748185612813565b9350612884818560208601612824565b61288d8161284e565b840191505092915050565b600060208201905081810360008301526128b2818461285f565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006128ea826128bf565b9050919050565b6128fa816128df565b811461290557600080fd5b50565b600081359050612917816128f1565b92915050565b612926816127d4565b811461293157600080fd5b50565b6000813590506129438161291d565b92915050565b600080604083850312156129605761295f6128ba565b5b600061296e85828601612908565b925050602061297f85828601612934565b9150509250929050565b60008115159050919050565b61299e81612989565b82525050565b60006020820190506129b96000830184612995565b92915050565b60006129ca826128df565b9050919050565b6129da816129bf565b81146129e557600080fd5b50565b6000813590506129f7816129d1565b92915050565b600060208284031215612a1357612a126128ba565b5b6000612a21848285016129e8565b91505092915050565b600060208284031215612a4057612a3f6128ba565b5b6000612a4e84828501612908565b91505092915050565b600067ffffffffffffffff82169050919050565b612a7481612a57565b82525050565b6000606082019050612a8f6000830186612995565b612a9c6020830185612995565b612aa96040830184612a6b565b949350505050565b600060208284031215612ac757612ac66128ba565b5b6000612ad584828501612934565b91505092915050565b600080600060608486031215612af757612af66128ba565b5b6000612b0586828701612908565b9350506020612b1686828701612908565b9250506040612b2786828701612934565b9150509250925092565b600060ff82169050919050565b612b4781612b31565b82525050565b6000602082019050612b626000830184612b3e565b92915050565b60008060008060808587031215612b8257612b816128ba565b5b6000612b9087828801612934565b9450506020612ba187828801612934565b9350506040612bb287828801612934565b9250506060612bc387828801612934565b91505092959194509250565b600063ffffffff82169050919050565b612be881612bcf565b82525050565b6000819050919050565b6000612c13612c0e612c09846128bf565b612bee565b6128bf565b9050919050565b6000612c2582612bf8565b9050919050565b6000612c3782612c1a565b9050919050565b612c4781612c2c565b82525050565b600061010082019050612c63600083018b612995565b612c70602083018a612b3e565b612c7d6040830189612b3e565b612c8a6060830188612b3e565b612c976080830187612b3e565b612ca460a0830186612b3e565b612cb160c0830185612bdf565b612cbe60e0830184612c3e565b9998505050505050505050565b612cd4816128df565b82525050565b6000602082019050612cef6000830184612ccb565b92915050565b612cfe81612989565b8114612d0957600080fd5b50565b600081359050612d1b81612cf5565b92915050565b600060208284031215612d3757612d366128ba565b5b6000612d4584828501612d0c565b91505092915050565b6000612d59826128df565b9050919050565b612d6981612d4e565b8114612d7457600080fd5b50565b600081359050612d8681612d60565b92915050565b60008060408385031215612da357612da26128ba565b5b6000612db185828601612908565b9250506020612dc285828601612d77565b9150509250929050565b60008060408385031215612de357612de26128ba565b5b6000612df185828601612908565b9250506020612e0285828601612d0c565b9150509250929050565b6000612e1782612c1a565b9050919050565b612e2781612e0c565b82525050565b6000602082019050612e426000830184612e1e565b92915050565b60008060408385031215612e5f57612e5e6128ba565b5b6000612e6d85828601612908565b9250506020612e7e85828601612908565b9150509250929050565b6000612e93826128df565b9050919050565b612ea381612e88565b8114612eae57600080fd5b50565b600081359050612ec081612e9a565b92915050565b600060208284031215612edc57612edb6128ba565b5b6000612eea84828501612eb1565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612f3a57607f821691505b602082108103612f4d57612f4c612ef3565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612f89602083612813565b9150612f9482612f53565b602082019050919050565b60006020820190508181036000830152612fb881612f7c565b9050919050565b600081519050612fce8161291d565b92915050565b600060208284031215612fea57612fe96128ba565b5b6000612ff884828501612fbf565b91505092915050565b60006040820190506130166000830185612ccb565b61302360208301846127de565b9392505050565b60008151905061303981612cf5565b92915050565b600060208284031215613055576130546128ba565b5b60006130638482850161302a565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006130a6826127d4565b91506130b1836127d4565b92508282039050818111156130c9576130c861306c565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061312b602883612813565b9150613136826130cf565b604082019050919050565b6000602082019050818103600083015261315a8161311e565b9050919050565b600081519050613170816128f1565b92915050565b60006020828403121561318c5761318b6128ba565b5b600061319a84828501613161565b91505092915050565b60006040820190506131b86000830185612ccb565b6131c56020830184612ccb565b9392505050565b6000819050919050565b60006131f16131ec6131e7846131cc565b612bee565b6127d4565b9050919050565b613201816131d6565b82525050565b600060608201905061321c6000830186612ccb565b6132296020830185612ccb565b61323660408301846131f8565b949350505050565b60008060408385031215613255576132546128ba565b5b600061326385828601612fbf565b925050602061327485828601612fbf565b9150509250929050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006132da602683612813565b91506132e58261327e565b604082019050919050565b60006020820190508181036000830152613309816132cd565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061336c602483612813565b915061337782613310565b604082019050919050565b6000602082019050818103600083015261339b8161335f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006133fe602283612813565b9150613409826133a2565b604082019050919050565b6000602082019050818103600083015261342d816133f1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613490602583612813565b915061349b82613434565b604082019050919050565b600060208201905081810360008301526134bf81613483565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613522602383612813565b915061352d826134c6565b604082019050919050565b6000602082019050818103600083015261355181613515565b9050919050565b6000613563826127d4565b915061356e836127d4565b925082820261357c816127d4565b915082820484148315176135935761359261306c565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006135d4826127d4565b91506135df836127d4565b9250826135ef576135ee61359a565b5b828204905092915050565b600060608201905061360f6000830186612ccb565b61361c6020830185612ccb565b61362960408301846127de565b949350505050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061368d602683612813565b915061369882613631565b604082019050919050565b600060208201905081810360008301526136bc81613680565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613756816128df565b82525050565b6000613768838361374d565b60208301905092915050565b6000602082019050919050565b600061378c82613721565b613796818561372c565b93506137a18361373d565b8060005b838110156137d25781516137b9888261375c565b97506137c483613774565b9250506001810190506137a5565b5085935050505092915050565b600060a0820190506137f460008301886127de565b61380160208301876131f8565b81810360408301526138138186613781565b90506138226060830185612ccb565b61382f60808301846127de565b969550505050505056fea2646970667358221220d107e44f4a514caa85ee9225eee0a8bc3a8d0df881befa2f0bfff9fa8a6366d864736f6c63430008110033000000000000000000000000b00fbeb88cbc45302b7a571400b3899d77afea2b000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101e55760003560e01c806385af30c51161010f578063d257b34f116100a2578063e82bef2911610071578063e82bef2914610587578063f2fde38b146105a5578063fb522bbc146105c1578063ffc94f90146105dd576101e5565b8063d257b34f146104ef578063d46b6a301461050b578063dd62ed3e1461053b578063e2951ee61461056b576101e5565b806395d89b41116100de57806395d89b4114610467578063a9059cbb14610485578063c0246668146104b5578063cf188ad0146104d1576101e5565b806385af30c5146103f35780638da5cb5b14610411578063924de9b71461042f578063935ec5741461044b576101e5565b80632383eb8f1161018757806370a082311161015657806370a082311461037857806370e3e8b9146103a8578063715018a6146103c457806382595a05146103ce576101e5565b80632383eb8f146102de57806323b872dd146102fa578063313ce5671461032a5780634fbee19314610348576101e5565b806314127a3b116101c357806314127a3b1461025657806318160ddd146102725780631959a002146102905780631d5459f7146102c2576101e5565b806301f59d16146101ea57806306fdde0314610208578063095ea7b314610226575b600080fd5b6101f26105fb565b6040516101ff91906127ed565b60405180910390f35b610210610600565b60405161021d9190612898565b60405180910390f35b610240600480360381019061023b9190612949565b610692565b60405161024d91906129a4565b60405180910390f35b610270600480360381019061026b91906129fd565b6106b0565b005b61027a610834565b60405161028791906127ed565b60405180910390f35b6102aa60048036038101906102a59190612a2a565b610843565b6040516102b993929190612a7a565b60405180910390f35b6102dc60048036038101906102d79190612a2a565b61089b565b005b6102f860048036038101906102f39190612ab1565b61095b565b005b610314600480360381019061030f9190612ade565b610a05565b60405161032191906129a4565b60405180910390f35b610332610b8e565b60405161033f9190612b4d565b60405180910390f35b610362600480360381019061035d9190612a2a565b610ba5565b60405161036f91906129a4565b60405180910390f35b610392600480360381019061038d9190612a2a565b610bfe565b60405161039f91906127ed565b60405180910390f35b6103c260048036038101906103bd9190612b68565b610c68565b005b6103cc610dc8565b005b6103d6610e50565b6040516103ea989796959493929190612c4d565b60405180910390f35b6103fb610f04565b6040516104089190612cda565b60405180910390f35b610419610f2a565b6040516104269190612cda565b60405180910390f35b61044960048036038101906104449190612d21565b610f53565b005b61046560048036038101906104609190612d8c565b610fef565b005b61046f61127a565b60405161047c9190612898565b60405180910390f35b61049f600480360381019061049a9190612949565b61130c565b6040516104ac91906129a4565b60405180910390f35b6104cf60048036038101906104ca9190612dcc565b61132a565b005b6104d9611452565b6040516104e69190612e2d565b60405180910390f35b61050960048036038101906105049190612ab1565b611478565b005b61052560048036038101906105209190612a2a565b61151b565b60405161053291906129a4565b60405180910390f35b61055560048036038101906105509190612e48565b611574565b60405161056291906127ed565b60405180910390f35b61058560048036038101906105809190612ec6565b6115fb565b005b61058f611776565b60405161059c9190612cda565b60405180910390f35b6105bf60048036038101906105ba9190612a2a565b61179c565b005b6105db60048036038101906105d69190612dcc565b611893565b005b6105e561196d565b6040516105f29190612cda565b60405180910390f35b60c881565b60606001805461060f90612f22565b80601f016020809104026020016040519081016040528092919081815260200182805461063b90612f22565b80156106885780601f1061065d57610100808354040283529160200191610688565b820191906000526020600020905b81548152906001019060200180831161066b57829003601f168201915b5050505050905090565b60006106a661069f611993565b848461199b565b6001905092915050565b6106b8611993565b73ffffffffffffffffffffffffffffffffffffffff166106d6610f2a565b73ffffffffffffffffffffffffffffffffffffffff161461072c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072390612f9f565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107679190612cda565b602060405180830381865afa158015610784573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a89190612fd4565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6107ce610f2a565b836040518363ffffffff1660e01b81526004016107ec929190613001565b6020604051808303816000875af115801561080b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082f919061303f565b505050565b6000662386f26fc10000905090565b60056020528060005260406000206000915090508060000160009054906101000a900460ff16908060000160019054906101000a900460ff16908060000160029054906101000a900467ffffffffffffffff16905083565b6108a3611993565b73ffffffffffffffffffffffffffffffffffffffff166108c1610f2a565b73ffffffffffffffffffffffffffffffffffffffff1614610917576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090e90612f9f565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610963611993565b73ffffffffffffffffffffffffffffffffffffffff16610981610f2a565b73ffffffffffffffffffffffffffffffffffffffff16146109d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ce90612f9f565b60405180910390fd5b600281106109e457600080fd5b80600460000160016101000a81548160ff021916908360ff16021790555050565b60008082600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a52611993565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a97919061309b565b1015610ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acf90613141565b60405180910390fd5b610ae3848484611b64565b610b8384610aef611993565b84600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b39611993565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b7e919061309b565b61199b565b600190509392505050565b6000600360009054906101000a900460ff16905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff169050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160029054906101000a900467ffffffffffffffff1667ffffffffffffffff169050919050565b610c70611993565b73ffffffffffffffffffffffffffffffffffffffff16610c8e610f2a565b73ffffffffffffffffffffffffffffffffffffffff1614610ce4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdb90612f9f565b60405180910390fd5b60c8831115610cf257600080fd5b60c8811115610d0057600080fd5b82841115610d0d57600080fd5b80821115610d1a57600080fd5b83600460000160036101000a81548160ff021916908360ff16021790555082600460000160026101000a81548160ff021916908360ff16021790555081600460000160056101000a81548160ff021916908360ff16021790555080600460000160046101000a81548160ff021916908360ff160217905550610dc230600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166101001961199b565b50505050565b610dd0611993565b73ffffffffffffffffffffffffffffffffffffffff16610dee610f2a565b73ffffffffffffffffffffffffffffffffffffffff1614610e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3b90612f9f565b60405180910390fd5b610e4e600061224f565b565b60048060000160009054906101000a900460ff16908060000160019054906101000a900460ff16908060000160029054906101000a900460ff16908060000160039054906101000a900460ff16908060000160049054906101000a900460ff16908060000160059054906101000a900460ff16908060000160069054906101000a900463ffffffff169080600001600a9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905088565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610f5b611993565b73ffffffffffffffffffffffffffffffffffffffff16610f79610f2a565b73ffffffffffffffffffffffffffffffffffffffff1614610fcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc690612f9f565b60405180910390fd5b80600460000160006101000a81548160ff02191690831515021790555050565b610ff7611993565b73ffffffffffffffffffffffffffffffffffffffff16611015610f2a565b73ffffffffffffffffffffffffffffffffffffffff161461106b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106290612f9f565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110dc9190613176565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530856040518363ffffffff1660e01b81526004016111169291906131a3565b602060405180830381865afa158015611133573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111579190613176565b9050600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160019054906101000a900460ff166111b257600080fd5b82600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b60606002805461128990612f22565b80601f01602080910402602001604051908101604052809291908181526020018280546112b590612f22565b80156113025780601f106112d757610100808354040283529160200191611302565b820191906000526020600020905b8154815290600101906020018083116112e557829003601f168201915b5050505050905090565b6000611320611319611993565b8484611b64565b6001905092915050565b611332611993565b73ffffffffffffffffffffffffffffffffffffffff16611350610f2a565b73ffffffffffffffffffffffffffffffffffffffff16146113a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139d90612f9f565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161144691906129a4565b60405180910390a25050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611480611993565b73ffffffffffffffffffffffffffffffffffffffff1661149e610f2a565b73ffffffffffffffffffffffffffffffffffffffff16146114f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114eb90612f9f565b60405180910390fd5b80600460000160066101000a81548163ffffffff021916908363ffffffff16021790555050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160019054906101000a900460ff169050919050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611603611993565b73ffffffffffffffffffffffffffffffffffffffff16611621610f2a565b73ffffffffffffffffffffffffffffffffffffffff1614611677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166e90612f9f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461172f578073ffffffffffffffffffffffffffffffffffffffff1663d7ad21ac60008060006040518463ffffffff1660e01b81526004016116ea93929190613207565b60408051808303816000875af1158015611708573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172c919061323e565b50505b806004600001600a6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117a4611993565b73ffffffffffffffffffffffffffffffffffffffff166117c2610f2a565b73ffffffffffffffffffffffffffffffffffffffff1614611818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180f90612f9f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611887576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187e906132f0565b60405180910390fd5b6118908161224f565b50565b61189b611993565b73ffffffffffffffffffffffffffffffffffffffff166118b9610f2a565b73ffffffffffffffffffffffffffffffffffffffff161461190f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190690612f9f565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160016101000a81548160ff0219169083151502179055505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0190613382565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7090613414565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b5791906127ed565b60405180910390a3505050565b60008103611b7157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611be0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd7906134a6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4690613538565b60405180910390fd5b611c57610f2a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611cc55750611c95610f2a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611cfd57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561223f5760006004604051806101000160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff1681526020016000820160029054906101000a900460ff1660ff1660ff1681526020016000820160039054906101000a900460ff1660ff1660ff1681526020016000820160049054906101000a900460ff1660ff1660ff1681526020016000820160059054906101000a900460ff1660ff1660ff1681526020016000820160069054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200160008201600a9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152505090506000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff161515151581526020016000820160029054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff168152505090506000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff161515151581526020016000820160029054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff168152505090508060000151158015611fbc57508160000151155b1561223b576000806000809150915060008073ffffffffffffffffffffffffffffffffffffffff168660e0015173ffffffffffffffffffffffffffffffffffffffff1614159050846020015115612186576002866020015160ff161061202157600080fd5b801561203f57612032898989612313565b8093508194505050612084565b6103e8866080015160ff16886120559190613558565b61205f91906135c9565b92506103e88660a0015160ff16886120779190613558565b61208191906135c9565b91505b60008311156120ae5761209889308561240a565b60008211156120ad576120ac30898461240a565b5b5b600460000160009054906101000a900460ff1615612181576000600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160029054906101000a900467ffffffffffffffff1667ffffffffffffffff1690506000620f42408860c0015163ffffffff166121469190613558565b90508082111561217e5760148161215d9190613558565b821115612174576014816121719190613558565b91505b61217d8261260a565b5b50505b612229565b836020015115612228576000866020015160ff16146121a457600080fd5b80156121c2576121b5898989612313565b8093508194505050612207565b6103e8866040015160ff16886121d89190613558565b6121e291906135c9565b92506103e8866060015160ff16886121fa9190613558565b61220491906135c9565b91505b60008311156122275761222689308486612221919061309b565b61240a565b5b5b5b8287612235919061309b565b96505050505b5050505b61224a83838361240a565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000806004600001600a9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d7ad21ac8686866040518463ffffffff1660e01b8152600401612378939291906135fa565b60408051808303816000875af19250505080156123b357506040513d601f19601f820116820180604052508101906123b0919061323e565b60015b6123c35760008091509150612402565b6103e88560c86123d39190613558565b6123dd91906135c9565b82111580156123ec5750818111155b6123f8576000806123fb565b81815b9350935050505b935093915050565b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160029054906101000a900467ffffffffffffffff1667ffffffffffffffff169050818110156124b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a9906136a3565b60405180910390fd5b818103600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160026101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160028282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125fc91906127ed565b60405180910390a350505050565b6000600267ffffffffffffffff811115612627576126266136c3565b5b6040519080825280602002602001820160405280156126555781602001602082028036833780820191505090505b509050308160008151811061266d5761266c6136f2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106126de576126dd6136f2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d79583600084600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161279e9594939291906137df565b600060405180830381600087803b1580156127b857600080fd5b505af11580156127cc573d6000803e3d6000fd5b505050505050565b6000819050919050565b6127e7816127d4565b82525050565b600060208201905061280260008301846127de565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612842578082015181840152602081019050612827565b60008484015250505050565b6000601f19601f8301169050919050565b600061286a82612808565b6128748185612813565b9350612884818560208601612824565b61288d8161284e565b840191505092915050565b600060208201905081810360008301526128b2818461285f565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006128ea826128bf565b9050919050565b6128fa816128df565b811461290557600080fd5b50565b600081359050612917816128f1565b92915050565b612926816127d4565b811461293157600080fd5b50565b6000813590506129438161291d565b92915050565b600080604083850312156129605761295f6128ba565b5b600061296e85828601612908565b925050602061297f85828601612934565b9150509250929050565b60008115159050919050565b61299e81612989565b82525050565b60006020820190506129b96000830184612995565b92915050565b60006129ca826128df565b9050919050565b6129da816129bf565b81146129e557600080fd5b50565b6000813590506129f7816129d1565b92915050565b600060208284031215612a1357612a126128ba565b5b6000612a21848285016129e8565b91505092915050565b600060208284031215612a4057612a3f6128ba565b5b6000612a4e84828501612908565b91505092915050565b600067ffffffffffffffff82169050919050565b612a7481612a57565b82525050565b6000606082019050612a8f6000830186612995565b612a9c6020830185612995565b612aa96040830184612a6b565b949350505050565b600060208284031215612ac757612ac66128ba565b5b6000612ad584828501612934565b91505092915050565b600080600060608486031215612af757612af66128ba565b5b6000612b0586828701612908565b9350506020612b1686828701612908565b9250506040612b2786828701612934565b9150509250925092565b600060ff82169050919050565b612b4781612b31565b82525050565b6000602082019050612b626000830184612b3e565b92915050565b60008060008060808587031215612b8257612b816128ba565b5b6000612b9087828801612934565b9450506020612ba187828801612934565b9350506040612bb287828801612934565b9250506060612bc387828801612934565b91505092959194509250565b600063ffffffff82169050919050565b612be881612bcf565b82525050565b6000819050919050565b6000612c13612c0e612c09846128bf565b612bee565b6128bf565b9050919050565b6000612c2582612bf8565b9050919050565b6000612c3782612c1a565b9050919050565b612c4781612c2c565b82525050565b600061010082019050612c63600083018b612995565b612c70602083018a612b3e565b612c7d6040830189612b3e565b612c8a6060830188612b3e565b612c976080830187612b3e565b612ca460a0830186612b3e565b612cb160c0830185612bdf565b612cbe60e0830184612c3e565b9998505050505050505050565b612cd4816128df565b82525050565b6000602082019050612cef6000830184612ccb565b92915050565b612cfe81612989565b8114612d0957600080fd5b50565b600081359050612d1b81612cf5565b92915050565b600060208284031215612d3757612d366128ba565b5b6000612d4584828501612d0c565b91505092915050565b6000612d59826128df565b9050919050565b612d6981612d4e565b8114612d7457600080fd5b50565b600081359050612d8681612d60565b92915050565b60008060408385031215612da357612da26128ba565b5b6000612db185828601612908565b9250506020612dc285828601612d77565b9150509250929050565b60008060408385031215612de357612de26128ba565b5b6000612df185828601612908565b9250506020612e0285828601612d0c565b9150509250929050565b6000612e1782612c1a565b9050919050565b612e2781612e0c565b82525050565b6000602082019050612e426000830184612e1e565b92915050565b60008060408385031215612e5f57612e5e6128ba565b5b6000612e6d85828601612908565b9250506020612e7e85828601612908565b9150509250929050565b6000612e93826128df565b9050919050565b612ea381612e88565b8114612eae57600080fd5b50565b600081359050612ec081612e9a565b92915050565b600060208284031215612edc57612edb6128ba565b5b6000612eea84828501612eb1565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612f3a57607f821691505b602082108103612f4d57612f4c612ef3565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612f89602083612813565b9150612f9482612f53565b602082019050919050565b60006020820190508181036000830152612fb881612f7c565b9050919050565b600081519050612fce8161291d565b92915050565b600060208284031215612fea57612fe96128ba565b5b6000612ff884828501612fbf565b91505092915050565b60006040820190506130166000830185612ccb565b61302360208301846127de565b9392505050565b60008151905061303981612cf5565b92915050565b600060208284031215613055576130546128ba565b5b60006130638482850161302a565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006130a6826127d4565b91506130b1836127d4565b92508282039050818111156130c9576130c861306c565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061312b602883612813565b9150613136826130cf565b604082019050919050565b6000602082019050818103600083015261315a8161311e565b9050919050565b600081519050613170816128f1565b92915050565b60006020828403121561318c5761318b6128ba565b5b600061319a84828501613161565b91505092915050565b60006040820190506131b86000830185612ccb565b6131c56020830184612ccb565b9392505050565b6000819050919050565b60006131f16131ec6131e7846131cc565b612bee565b6127d4565b9050919050565b613201816131d6565b82525050565b600060608201905061321c6000830186612ccb565b6132296020830185612ccb565b61323660408301846131f8565b949350505050565b60008060408385031215613255576132546128ba565b5b600061326385828601612fbf565b925050602061327485828601612fbf565b9150509250929050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006132da602683612813565b91506132e58261327e565b604082019050919050565b60006020820190508181036000830152613309816132cd565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061336c602483612813565b915061337782613310565b604082019050919050565b6000602082019050818103600083015261339b8161335f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006133fe602283612813565b9150613409826133a2565b604082019050919050565b6000602082019050818103600083015261342d816133f1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613490602583612813565b915061349b82613434565b604082019050919050565b600060208201905081810360008301526134bf81613483565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613522602383612813565b915061352d826134c6565b604082019050919050565b6000602082019050818103600083015261355181613515565b9050919050565b6000613563826127d4565b915061356e836127d4565b925082820261357c816127d4565b915082820484148315176135935761359261306c565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006135d4826127d4565b91506135df836127d4565b9250826135ef576135ee61359a565b5b828204905092915050565b600060608201905061360f6000830186612ccb565b61361c6020830185612ccb565b61362960408301846127de565b949350505050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061368d602683612813565b915061369882613631565b604082019050919050565b600060208201905081810360008301526136bc81613680565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613756816128df565b82525050565b6000613768838361374d565b60208301905092915050565b6000602082019050919050565b600061378c82613721565b613796818561372c565b93506137a18361373d565b8060005b838110156137d25781516137b9888261375c565b97506137c483613774565b9250506001810190506137a5565b5085935050505092915050565b600060a0820190506137f460008301886127de565b61380160208301876131f8565b81810360408301526138138186613781565b90506138226060830185612ccb565b61382f60808301846127de565b969550505050505056fea2646970667358221220d107e44f4a514caa85ee9225eee0a8bc3a8d0df881befa2f0bfff9fa8a6366d864736f6c63430008110033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000b00fbeb88cbc45302b7a571400b3899d77afea2b000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
-----Decoded View---------------
Arg [0] : _fundAddress (address): 0xB00fbeb88cbC45302B7A571400B3899D77AFea2b
Arg [1] : _pairedToken (address): 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000b00fbeb88cbc45302b7a571400b3899d77afea2b
Arg [1] : 000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
Deployed Bytecode Sourcemap
7498:10187:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8076:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9150:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10256:161;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13358:183;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9427:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8166:44;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;12045:113;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12166:147;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10425:373;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9336:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9678:128;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9543:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12321:540;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2766:103;;;:::i;:::-;;8121:36;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;8436:23;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2115:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11453:117;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12992:358;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9241:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9930:167;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11851:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8295:101;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11211:146;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9814:108;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10105:143;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11578:265;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8403:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3024:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12869:115;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8466:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8076:36;8109:3;8076:36;:::o;9150:83::-;9187:13;9220:5;9213:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9150:83;:::o;10256:161::-;10331:4;10348:39;10357:12;:10;:12::i;:::-;10371:7;10380:6;10348:8;:39::i;:::-;10405:4;10398:11;;10256:161;;;;:::o;13358:183::-;2346:12;:10;:12::i;:::-;2335:23;;:7;:5;:7::i;:::-;:23;;;2327:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13424:23:::1;13450:6;:16;;;13475:4;13450:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13424:57;;13492:6;:15;;;13508:7;:5;:7::i;:::-;13517:15;13492:41;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13413:128;13358:183:::0;:::o;9427:108::-;9488:7;8065:4;9508:19;;9427:108;:::o;8166:44::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12045:113::-;2346:12;:10;:12::i;:::-;2335:23;;:7;:5;:7::i;:::-;:23;;;2327:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12138:12:::1;12124:11;;:26;;;;;;;;;;;;;;;;;;12045:113:::0;:::o;12166:147::-;2346:12;:10;:12::i;:::-;2335:23;;:7;:5;:7::i;:::-;:23;;;2327:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12251:1:::1;12241:7;:11;12233:20;;;::::0;::::1;;12297:7;12264:16;:24;;;:41;;;;;;;;;;;;;;;;;;12166:147:::0;:::o;10425:373::-;10523:4;10592:1;10582:6;10548:11;:19;10560:6;10548:19;;;;;;;;;;;;;;;:33;10568:12;:10;:12::i;:::-;10548:33;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;:45;;10540:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;10649:36;10659:6;10667:9;10678:6;10649:9;:36::i;:::-;10696:72;10705:6;10713:12;:10;:12::i;:::-;10761:6;10727:11;:19;10739:6;10727:19;;;;;;;;;;;;;;;:33;10747:12;:10;:12::i;:::-;10727:33;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;10696:8;:72::i;:::-;10786:4;10779:11;;10425:373;;;;;:::o;9336:83::-;9377:5;9402:9;;;;;;;;;;;9395:16;;9336:83;:::o;9678:128::-;9744:4;9768:8;:17;9777:7;9768:17;;;;;;;;;;;;;;;:30;;;;;;;;;;;;9761:37;;9678:128;;;:::o;9543:127::-;9609:7;9636:8;:17;9645:7;9636:17;;;;;;;;;;;;;;;:26;;;;;;;;;;;;9629:33;;;;9543:127;;;:::o;12321:540::-;2346:12;:10;:12::i;:::-;2335:23;;:7;:5;:7::i;:::-;:23;;;2327:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8109:3:::1;12447:7;:17;;12438:27;;;::::0;::::1;;8109:3;12485:8;:18;;12476:28;;;::::0;::::1;;12534:7;12524:6;:17;;12515:27;;;::::0;::::1;;12573:8;12562:7;:19;;12553:29;;;::::0;::::1;;12624:6;12593:16;:22;;;:38;;;;;;;;;;;;;;;;;;12674:7;12642:16;:23;;;:40;;;;;;;;;;;;;;;;;;12725:7;12693:16;:23;;;:40;;;;;;;;;;;;;;;;;;12777:8;12744:16;:24;;;:42;;;;;;;;;;;;;;;;;;12797:56;12814:4;12829:10;;;;;;;;;;;12848:3;12842:10;12797:8;:56::i;:::-;12321:540:::0;;;;:::o;2766:103::-;2346:12;:10;:12::i;:::-;2335:23;;:7;:5;:7::i;:::-;:23;;;2327:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2831:30:::1;2858:1;2831:18;:30::i;:::-;2766:103::o:0;8121:36::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8436:23::-;;;;;;;;;;;;;:::o;2115:87::-;2161:7;2188:6;;;;;;;;;;;2181:13;;2115:87;:::o;11453:117::-;2346:12;:10;:12::i;:::-;2335:23;;:7;:5;:7::i;:::-;:23;;;2327:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11555:7:::1;11524:16;:28;;;:38;;;;;;;;;;;;;;;;;;11453:117:::0;:::o;12992:358::-;2346:12;:10;:12::i;:::-;2335:23;;:7;:5;:7::i;:::-;:23;;;2327:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13097:17:::1;13135:11;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13117:48;;;13174:4;13181:12;13117:77;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13097:97;;13213:8;:19;13222:9;13213:19;;;;;;;;;;;;;;;:25;;;;;;;;;;;;13205:34;;;::::0;::::1;;13264:12;13250:11;;:26;;;;;;;;;;;;;;;;;;13298:9;13287:8;;:20;;;;;;;;;;;;;;;;;;13331:11;13318:10;;:24;;;;;;;;;;;;;;;;;;13086:264;12992:358:::0;;:::o;9241:87::-;9280:13;9313:7;9306:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9241:87;:::o;9930:167::-;10008:4;10025:42;10035:12;:10;:12::i;:::-;10049:9;10060:6;10025:9;:42::i;:::-;10085:4;10078:11;;9930:167;;;;:::o;11851:186::-;2346:12;:10;:12::i;:::-;2335:23;;:7;:5;:7::i;:::-;:23;;;2327:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11971:8:::1;11938;:17;11947:7;11938:17;;;;;;;;;;;;;;;:30;;;:41;;;;;;;;;;;;;;;;;;12011:7;11995:34;;;12020:8;11995:34;;;;;;:::i;:::-;;;;;;;;11851:186:::0;;:::o;8295:101::-;;;;;;;;;;;;;:::o;11211:146::-;2346:12;:10;:12::i;:::-;2335:23;;:7;:5;:7::i;:::-;:23;;;2327:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11339:9:::1;11294:16;:35;;;:55;;;;;;;;;;;;;;;;;;11211:146:::0;:::o;9814:108::-;9867:4;9891:8;:17;9900:7;9891:17;;;;;;;;;;;;;;;:23;;;;;;;;;;;;9884:30;;9814:108;;;:::o;10105:143::-;10186:7;10213:11;:18;10225:5;10213:18;;;;;;;;;;;;;;;:27;10232:7;10213:27;;;;;;;;;;;;;;;;10206:34;;10105:143;;;;:::o;11578:265::-;2346:12;:10;:12::i;:::-;2335:23;;:7;:5;:7::i;:::-;:23;;;2327:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11702:1:::1;11668:36;;11676:13;11668:36;;;11664:115;;11720:13;:20;;;11749:1;11761::::0;11765::::1;11720:47;;;;;;;;;;;;;;;;;:::i;:::-;;::::0;::::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;11664:115;11822:13;11789:16;:30;;;:46;;;;;;;;;;;;;;;;;;11578:265:::0;:::o;8403:26::-;;;;;;;;;;;;;:::o;3024:201::-;2346:12;:10;:12::i;:::-;2335:23;;:7;:5;:7::i;:::-;:23;;;2327:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3133:1:::1;3113:22;;:8;:22;;::::0;3105:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3189:28;3208:8;3189:18;:28::i;:::-;3024:201:::0;:::o;12869:115::-;2346:12;:10;:12::i;:::-;2335:23;;:7;:5;:7::i;:::-;:23;;;2327:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12970:6:::1;12947:8;:14;12956:4;12947:14;;;;;;;;;;;;;;;:20;;;:29;;;;;;;;;;;;;;;;;;12869:115:::0;;:::o;8466:26::-;;;;;;;;;;;;;:::o;788:98::-;841:7;868:10;861:17;;788:98;:::o;10806:335::-;10916:1;10899:19;;:5;:19;;;10891:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10997:1;10978:21;;:7;:21;;;10970:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11079:6;11049:11;:18;11061:5;11049:18;;;;;;;;;;;;;;;:27;11068:7;11049:27;;;;;;;;;;;;;;;:36;;;;11117:7;11101:32;;11110:5;11101:32;;;11126:6;11101:32;;;;;;:::i;:::-;;;;;;;;10806:335;;;:::o;13549:2873::-;13682:1;13672:6;:11;13664:20;;;;;;13719:1;13703:18;;:4;:18;;;13695:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13796:1;13782:16;;:2;:16;;;13774:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13863:7;:5;:7::i;:::-;13855:15;;:4;:15;;;;:32;;;;;13880:7;:5;:7::i;:::-;13874:13;;:2;:13;;;;13855:32;:57;;;;;13907:4;13891:21;;:4;:21;;;;13855:57;13851:2519;;;13929:32;13964:16;13929:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13995:26;14024:8;:12;14033:2;14024:12;;;;;;;;;;;;;;;13995:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14051:28;14082:8;:14;14091:4;14082:14;;;;;;;;;;;;;;;14051:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14118:12;:25;;;14117:26;:54;;;;;14148:10;:23;;;14147:24;14117:54;14113:2246;;;14193:12;14207:26;14238:1;14241;14192:51;;;;14262:16;14328:1;14281:49;;14289:12;:26;;;14281:49;;;;14262:68;;14384:10;:16;;;14380:1931;;;14456:1;14433:12;:20;;;:24;;;14425:33;;;;;;14485:11;14481:296;;;14554:24;14561:4;14567:2;14571:6;14554;:24::i;:::-;14525:53;;;;;;;;14481:296;;;14670:4;14649:12;:20;;;14642:27;;:6;:27;;;;:::i;:::-;:32;;;;:::i;:::-;14635:39;;14749:4;14729:12;:19;;;14722:26;;:6;:26;;;;:::i;:::-;:31;;;;:::i;:::-;14701:52;;14481:296;14810:1;14803:4;:8;14799:272;;;14840:41;14855:4;14869;14876;14840:14;:41::i;:::-;14933:1;14912:18;:22;14908:140;;;14967:53;14990:4;14997:2;15001:18;14967:14;:53::i;:::-;14908:140;14799:272;15097:16;:28;;;;;;;;;;;;15093:582;;;15154:23;15180:8;:23;15197:4;15180:23;;;;;;;;;;;;;;;:32;;;;;;;;;;;;15154:58;;;;15239:26;15311:3;15276:12;:31;;;15268:40;;:46;;;;:::i;:::-;15239:75;;15363:18;15345:15;:36;15341:311;;;15457:2;15436:18;:23;;;;:::i;:::-;15418:15;:41;15414:155;;;15535:2;15514:18;:23;;;;:::i;:::-;15496:41;;15414:155;15599:25;15608:15;15599:8;:25::i;:::-;15341:311;15127:548;;15093:582;14380:1931;;;15748:12;:18;;;15744:567;;;15823:1;15799:12;:20;;;:25;;;15791:34;;;;;;15853:11;15849:294;;;15922:24;15929:4;15935:2;15939:6;15922;:24::i;:::-;15893:53;;;;;;;;15849:294;;;16037:4;16017:12;:19;;;16010:26;;:6;:26;;;;:::i;:::-;:31;;;;:::i;:::-;16003:38;;16115:4;16096:12;:18;;;16089:25;;:6;:25;;;;:::i;:::-;:30;;;;:::i;:::-;16068:51;;15849:294;16176:1;16169:4;:8;16165:127;;;16206:62;16221:4;16235;16249:18;16242:4;:25;;;;:::i;:::-;16206:14;:62::i;:::-;16165:127;15744:567;14380:1931;16339:4;16329:14;;;;;:::i;:::-;;;14173:2186;;;14113:2246;13914:2456;;;13851:2519;16380:32;16395:4;16401:2;16405:6;16380:14;:32::i;:::-;13549:2873;;;:::o;3385:191::-;3459:16;3478:6;;;;;;;;;;;3459:25;;3504:8;3495:6;;:17;;;;;;;;;;;;;;;;;;3559:8;3528:40;;3549:8;3528:40;;;;;;;;;;;;3448:128;3385:191;:::o;16870:406::-;16945:7;16954;16978:16;:30;;;;;;;;;;;;:37;;;17016:4;17022:2;17026:6;16978:55;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;16974:295;;17253:1;17255;17245:12;;;;;;16974:295;17129:4;17122:6;8109:3;17115:13;;;;:::i;:::-;:18;;;;:::i;:::-;17107:4;:26;;:56;;;;;17159:4;17137:18;:26;;17107:56;:93;;17196:1;17198;17107:93;;;17167:4;17173:18;17107:93;17100:100;;;;;;16870:406;;;;;;;:::o;16430:432::-;16526:19;16548:8;:14;16557:4;16548:14;;;;;;;;;;;;;;;:23;;;;;;;;;;;;16526:45;;;;16605:6;16590:11;:21;;16582:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;16738:6;16724:11;:20;16690:8;:14;16699:4;16690:14;;;;;;;;;;;;;;;:23;;;:55;;;;;;;;;;;;;;;;;;16792:6;16760:8;:12;16769:2;16760:12;;;;;;;;;;;;;;;:21;;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16843:2;16828:26;;16837:4;16828:26;;;16847:6;16828:26;;;;;;:::i;:::-;;;;;;;;16505:357;16430:432;;;:::o;17284:396::-;17352:21;17390:1;17376:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17352:40;;17421:4;17403;17408:1;17403:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;17447:11;;;;;;;;;;;17437:4;17442:1;17437:7;;;;;;;;:::i;:::-;;;;;;;:21;;;;;;;;;;;17479:10;;;;;;;;;;;:64;;;17558:11;17584:1;17601:4;17620:11;;;;;;;;;;;17646:15;17479:193;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17331:349;17284:396;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1865:117::-;1974:1;1971;1964:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:110::-;3849:7;3878:24;3896:5;3878:24;:::i;:::-;3867:35;;3798:110;;;:::o;3914:150::-;4001:38;4033:5;4001:38;:::i;:::-;3994:5;3991:49;3981:77;;4054:1;4051;4044:12;3981:77;3914:150;:::o;4070:167::-;4130:5;4168:6;4155:20;4146:29;;4184:47;4225:5;4184:47;:::i;:::-;4070:167;;;;:::o;4243:357::-;4316:6;4365:2;4353:9;4344:7;4340:23;4336:32;4333:119;;;4371:79;;:::i;:::-;4333:119;4491:1;4516:67;4575:7;4566:6;4555:9;4551:22;4516:67;:::i;:::-;4506:77;;4462:131;4243:357;;;;:::o;4606:329::-;4665:6;4714:2;4702:9;4693:7;4689:23;4685:32;4682:119;;;4720:79;;:::i;:::-;4682:119;4840:1;4865:53;4910:7;4901:6;4890:9;4886:22;4865:53;:::i;:::-;4855:63;;4811:117;4606:329;;;;:::o;4941:101::-;4977:7;5017:18;5010:5;5006:30;4995:41;;4941:101;;;:::o;5048:115::-;5133:23;5150:5;5133:23;:::i;:::-;5128:3;5121:36;5048:115;;:::o;5169:414::-;5304:4;5342:2;5331:9;5327:18;5319:26;;5355:65;5417:1;5406:9;5402:17;5393:6;5355:65;:::i;:::-;5430:66;5492:2;5481:9;5477:18;5468:6;5430:66;:::i;:::-;5506:70;5572:2;5561:9;5557:18;5548:6;5506:70;:::i;:::-;5169:414;;;;;;:::o;5589:329::-;5648:6;5697:2;5685:9;5676:7;5672:23;5668:32;5665:119;;;5703:79;;:::i;:::-;5665:119;5823:1;5848:53;5893:7;5884:6;5873:9;5869:22;5848:53;:::i;:::-;5838:63;;5794:117;5589:329;;;;:::o;5924:619::-;6001:6;6009;6017;6066:2;6054:9;6045:7;6041:23;6037:32;6034:119;;;6072:79;;:::i;:::-;6034:119;6192:1;6217:53;6262:7;6253:6;6242:9;6238:22;6217:53;:::i;:::-;6207:63;;6163:117;6319:2;6345:53;6390:7;6381:6;6370:9;6366:22;6345:53;:::i;:::-;6335:63;;6290:118;6447:2;6473:53;6518:7;6509:6;6498:9;6494:22;6473:53;:::i;:::-;6463:63;;6418:118;5924:619;;;;;:::o;6549:86::-;6584:7;6624:4;6617:5;6613:16;6602:27;;6549:86;;;:::o;6641:112::-;6724:22;6740:5;6724:22;:::i;:::-;6719:3;6712:35;6641:112;;:::o;6759:214::-;6848:4;6886:2;6875:9;6871:18;6863:26;;6899:67;6963:1;6952:9;6948:17;6939:6;6899:67;:::i;:::-;6759:214;;;;:::o;6979:765::-;7065:6;7073;7081;7089;7138:3;7126:9;7117:7;7113:23;7109:33;7106:120;;;7145:79;;:::i;:::-;7106:120;7265:1;7290:53;7335:7;7326:6;7315:9;7311:22;7290:53;:::i;:::-;7280:63;;7236:117;7392:2;7418:53;7463:7;7454:6;7443:9;7439:22;7418:53;:::i;:::-;7408:63;;7363:118;7520:2;7546:53;7591:7;7582:6;7571:9;7567:22;7546:53;:::i;:::-;7536:63;;7491:118;7648:2;7674:53;7719:7;7710:6;7699:9;7695:22;7674:53;:::i;:::-;7664:63;;7619:118;6979:765;;;;;;;:::o;7750:93::-;7786:7;7826:10;7819:5;7815:22;7804:33;;7750:93;;;:::o;7849:115::-;7934:23;7951:5;7934:23;:::i;:::-;7929:3;7922:36;7849:115;;:::o;7970:60::-;7998:3;8019:5;8012:12;;7970:60;;;:::o;8036:142::-;8086:9;8119:53;8137:34;8146:24;8164:5;8146:24;:::i;:::-;8137:34;:::i;:::-;8119:53;:::i;:::-;8106:66;;8036:142;;;:::o;8184:126::-;8234:9;8267:37;8298:5;8267:37;:::i;:::-;8254:50;;8184:126;;;:::o;8316:148::-;8388:9;8421:37;8452:5;8421:37;:::i;:::-;8408:50;;8316:148;;;:::o;8470:175::-;8579:59;8632:5;8579:59;:::i;:::-;8574:3;8567:72;8470:175;;:::o;8651:985::-;8934:4;8972:3;8961:9;8957:19;8949:27;;8986:65;9048:1;9037:9;9033:17;9024:6;8986:65;:::i;:::-;9061:68;9125:2;9114:9;9110:18;9101:6;9061:68;:::i;:::-;9139;9203:2;9192:9;9188:18;9179:6;9139:68;:::i;:::-;9217;9281:2;9270:9;9266:18;9257:6;9217:68;:::i;:::-;9295:69;9359:3;9348:9;9344:19;9335:6;9295:69;:::i;:::-;9374;9438:3;9427:9;9423:19;9414:6;9374:69;:::i;:::-;9453:71;9519:3;9508:9;9504:19;9495:6;9453:71;:::i;:::-;9534:95;9624:3;9613:9;9609:19;9600:6;9534:95;:::i;:::-;8651:985;;;;;;;;;;;:::o;9642:118::-;9729:24;9747:5;9729:24;:::i;:::-;9724:3;9717:37;9642:118;;:::o;9766:222::-;9859:4;9897:2;9886:9;9882:18;9874:26;;9910:71;9978:1;9967:9;9963:17;9954:6;9910:71;:::i;:::-;9766:222;;;;:::o;9994:116::-;10064:21;10079:5;10064:21;:::i;:::-;10057:5;10054:32;10044:60;;10100:1;10097;10090:12;10044:60;9994:116;:::o;10116:133::-;10159:5;10197:6;10184:20;10175:29;;10213:30;10237:5;10213:30;:::i;:::-;10116:133;;;;:::o;10255:323::-;10311:6;10360:2;10348:9;10339:7;10335:23;10331:32;10328:119;;;10366:79;;:::i;:::-;10328:119;10486:1;10511:50;10553:7;10544:6;10533:9;10529:22;10511:50;:::i;:::-;10501:60;;10457:114;10255:323;;;;:::o;10584:122::-;10647:7;10676:24;10694:5;10676:24;:::i;:::-;10665:35;;10584:122;;;:::o;10712:174::-;10811:50;10855:5;10811:50;:::i;:::-;10804:5;10801:61;10791:89;;10876:1;10873;10866:12;10791:89;10712:174;:::o;10892:191::-;10964:5;11002:6;10989:20;10980:29;;11018:59;11071:5;11018:59;:::i;:::-;10892:191;;;;:::o;11089:526::-;11183:6;11191;11240:2;11228:9;11219:7;11215:23;11211:32;11208:119;;;11246:79;;:::i;:::-;11208:119;11366:1;11391:53;11436:7;11427:6;11416:9;11412:22;11391:53;:::i;:::-;11381:63;;11337:117;11493:2;11519:79;11590:7;11581:6;11570:9;11566:22;11519:79;:::i;:::-;11509:89;;11464:144;11089:526;;;;;:::o;11621:468::-;11686:6;11694;11743:2;11731:9;11722:7;11718:23;11714:32;11711:119;;;11749:79;;:::i;:::-;11711:119;11869:1;11894:53;11939:7;11930:6;11919:9;11915:22;11894:53;:::i;:::-;11884:63;;11840:117;11996:2;12022:50;12064:7;12055:6;12044:9;12040:22;12022:50;:::i;:::-;12012:60;;11967:115;11621:468;;;;;:::o;12095:152::-;12171:9;12204:37;12235:5;12204:37;:::i;:::-;12191:50;;12095:152;;;:::o;12253:183::-;12366:63;12423:5;12366:63;:::i;:::-;12361:3;12354:76;12253:183;;:::o;12442:274::-;12561:4;12599:2;12588:9;12584:18;12576:26;;12612:97;12706:1;12695:9;12691:17;12682:6;12612:97;:::i;:::-;12442:274;;;;:::o;12722:474::-;12790:6;12798;12847:2;12835:9;12826:7;12822:23;12818:32;12815:119;;;12853:79;;:::i;:::-;12815:119;12973:1;12998:53;13043:7;13034:6;13023:9;13019:22;12998:53;:::i;:::-;12988:63;;12944:117;13100:2;13126:53;13171:7;13162:6;13151:9;13147:22;13126:53;:::i;:::-;13116:63;;13071:118;12722:474;;;;;:::o;13202:118::-;13261:7;13290:24;13308:5;13290:24;:::i;:::-;13279:35;;13202:118;;;:::o;13326:166::-;13421:46;13461:5;13421:46;:::i;:::-;13414:5;13411:57;13401:85;;13482:1;13479;13472:12;13401:85;13326:166;:::o;13498:183::-;13566:5;13604:6;13591:20;13582:29;;13620:55;13669:5;13620:55;:::i;:::-;13498:183;;;;:::o;13687:373::-;13768:6;13817:2;13805:9;13796:7;13792:23;13788:32;13785:119;;;13823:79;;:::i;:::-;13785:119;13943:1;13968:75;14035:7;14026:6;14015:9;14011:22;13968:75;:::i;:::-;13958:85;;13914:139;13687:373;;;;:::o;14066:180::-;14114:77;14111:1;14104:88;14211:4;14208:1;14201:15;14235:4;14232:1;14225:15;14252:320;14296:6;14333:1;14327:4;14323:12;14313:22;;14380:1;14374:4;14370:12;14401:18;14391:81;;14457:4;14449:6;14445:17;14435:27;;14391:81;14519:2;14511:6;14508:14;14488:18;14485:38;14482:84;;14538:18;;:::i;:::-;14482:84;14303:269;14252:320;;;:::o;14578:182::-;14718:34;14714:1;14706:6;14702:14;14695:58;14578:182;:::o;14766:366::-;14908:3;14929:67;14993:2;14988:3;14929:67;:::i;:::-;14922:74;;15005:93;15094:3;15005:93;:::i;:::-;15123:2;15118:3;15114:12;15107:19;;14766:366;;;:::o;15138:419::-;15304:4;15342:2;15331:9;15327:18;15319:26;;15391:9;15385:4;15381:20;15377:1;15366:9;15362:17;15355:47;15419:131;15545:4;15419:131;:::i;:::-;15411:139;;15138:419;;;:::o;15563:143::-;15620:5;15651:6;15645:13;15636:22;;15667:33;15694:5;15667:33;:::i;:::-;15563:143;;;;:::o;15712:351::-;15782:6;15831:2;15819:9;15810:7;15806:23;15802:32;15799:119;;;15837:79;;:::i;:::-;15799:119;15957:1;15982:64;16038:7;16029:6;16018:9;16014:22;15982:64;:::i;:::-;15972:74;;15928:128;15712:351;;;;:::o;16069:332::-;16190:4;16228:2;16217:9;16213:18;16205:26;;16241:71;16309:1;16298:9;16294:17;16285:6;16241:71;:::i;:::-;16322:72;16390:2;16379:9;16375:18;16366:6;16322:72;:::i;:::-;16069:332;;;;;:::o;16407:137::-;16461:5;16492:6;16486:13;16477:22;;16508:30;16532:5;16508:30;:::i;:::-;16407:137;;;;:::o;16550:345::-;16617:6;16666:2;16654:9;16645:7;16641:23;16637:32;16634:119;;;16672:79;;:::i;:::-;16634:119;16792:1;16817:61;16870:7;16861:6;16850:9;16846:22;16817:61;:::i;:::-;16807:71;;16763:125;16550:345;;;;:::o;16901:180::-;16949:77;16946:1;16939:88;17046:4;17043:1;17036:15;17070:4;17067:1;17060:15;17087:194;17127:4;17147:20;17165:1;17147:20;:::i;:::-;17142:25;;17181:20;17199:1;17181:20;:::i;:::-;17176:25;;17225:1;17222;17218:9;17210:17;;17249:1;17243:4;17240:11;17237:37;;;17254:18;;:::i;:::-;17237:37;17087:194;;;;:::o;17287:227::-;17427:34;17423:1;17415:6;17411:14;17404:58;17496:10;17491:2;17483:6;17479:15;17472:35;17287:227;:::o;17520:366::-;17662:3;17683:67;17747:2;17742:3;17683:67;:::i;:::-;17676:74;;17759:93;17848:3;17759:93;:::i;:::-;17877:2;17872:3;17868:12;17861:19;;17520:366;;;:::o;17892:419::-;18058:4;18096:2;18085:9;18081:18;18073:26;;18145:9;18139:4;18135:20;18131:1;18120:9;18116:17;18109:47;18173:131;18299:4;18173:131;:::i;:::-;18165:139;;17892:419;;;:::o;18317:143::-;18374:5;18405:6;18399:13;18390:22;;18421:33;18448:5;18421:33;:::i;:::-;18317:143;;;;:::o;18466:351::-;18536:6;18585:2;18573:9;18564:7;18560:23;18556:32;18553:119;;;18591:79;;:::i;:::-;18553:119;18711:1;18736:64;18792:7;18783:6;18772:9;18768:22;18736:64;:::i;:::-;18726:74;;18682:128;18466:351;;;;:::o;18823:332::-;18944:4;18982:2;18971:9;18967:18;18959:26;;18995:71;19063:1;19052:9;19048:17;19039:6;18995:71;:::i;:::-;19076:72;19144:2;19133:9;19129:18;19120:6;19076:72;:::i;:::-;18823:332;;;;;:::o;19161:85::-;19206:7;19235:5;19224:16;;19161:85;;;:::o;19252:158::-;19310:9;19343:61;19361:42;19370:32;19396:5;19370:32;:::i;:::-;19361:42;:::i;:::-;19343:61;:::i;:::-;19330:74;;19252:158;;;:::o;19416:147::-;19511:45;19550:5;19511:45;:::i;:::-;19506:3;19499:58;19416:147;;:::o;19569:458::-;19726:4;19764:2;19753:9;19749:18;19741:26;;19777:71;19845:1;19834:9;19830:17;19821:6;19777:71;:::i;:::-;19858:72;19926:2;19915:9;19911:18;19902:6;19858:72;:::i;:::-;19940:80;20016:2;20005:9;20001:18;19992:6;19940:80;:::i;:::-;19569:458;;;;;;:::o;20033:507::-;20112:6;20120;20169:2;20157:9;20148:7;20144:23;20140:32;20137:119;;;20175:79;;:::i;:::-;20137:119;20295:1;20320:64;20376:7;20367:6;20356:9;20352:22;20320:64;:::i;:::-;20310:74;;20266:128;20433:2;20459:64;20515:7;20506:6;20495:9;20491:22;20459:64;:::i;:::-;20449:74;;20404:129;20033:507;;;;;:::o;20546:225::-;20686:34;20682:1;20674:6;20670:14;20663:58;20755:8;20750:2;20742:6;20738:15;20731:33;20546:225;:::o;20777:366::-;20919:3;20940:67;21004:2;20999:3;20940:67;:::i;:::-;20933:74;;21016:93;21105:3;21016:93;:::i;:::-;21134:2;21129:3;21125:12;21118:19;;20777:366;;;:::o;21149:419::-;21315:4;21353:2;21342:9;21338:18;21330:26;;21402:9;21396:4;21392:20;21388:1;21377:9;21373:17;21366:47;21430:131;21556:4;21430:131;:::i;:::-;21422:139;;21149:419;;;:::o;21574:223::-;21714:34;21710:1;21702:6;21698:14;21691:58;21783:6;21778:2;21770:6;21766:15;21759:31;21574:223;:::o;21803:366::-;21945:3;21966:67;22030:2;22025:3;21966:67;:::i;:::-;21959:74;;22042:93;22131:3;22042:93;:::i;:::-;22160:2;22155:3;22151:12;22144:19;;21803:366;;;:::o;22175:419::-;22341:4;22379:2;22368:9;22364:18;22356:26;;22428:9;22422:4;22418:20;22414:1;22403:9;22399:17;22392:47;22456:131;22582:4;22456:131;:::i;:::-;22448:139;;22175:419;;;:::o;22600:221::-;22740:34;22736:1;22728:6;22724:14;22717:58;22809:4;22804:2;22796:6;22792:15;22785:29;22600:221;:::o;22827:366::-;22969:3;22990:67;23054:2;23049:3;22990:67;:::i;:::-;22983:74;;23066:93;23155:3;23066:93;:::i;:::-;23184:2;23179:3;23175:12;23168:19;;22827:366;;;:::o;23199:419::-;23365:4;23403:2;23392:9;23388:18;23380:26;;23452:9;23446:4;23442:20;23438:1;23427:9;23423:17;23416:47;23480:131;23606:4;23480:131;:::i;:::-;23472:139;;23199:419;;;:::o;23624:224::-;23764:34;23760:1;23752:6;23748:14;23741:58;23833:7;23828:2;23820:6;23816:15;23809:32;23624:224;:::o;23854:366::-;23996:3;24017:67;24081:2;24076:3;24017:67;:::i;:::-;24010:74;;24093:93;24182:3;24093:93;:::i;:::-;24211:2;24206:3;24202:12;24195:19;;23854:366;;;:::o;24226:419::-;24392:4;24430:2;24419:9;24415:18;24407:26;;24479:9;24473:4;24469:20;24465:1;24454:9;24450:17;24443:47;24507:131;24633:4;24507:131;:::i;:::-;24499:139;;24226:419;;;:::o;24651:222::-;24791:34;24787:1;24779:6;24775:14;24768:58;24860:5;24855:2;24847:6;24843:15;24836:30;24651:222;:::o;24879:366::-;25021:3;25042:67;25106:2;25101:3;25042:67;:::i;:::-;25035:74;;25118:93;25207:3;25118:93;:::i;:::-;25236:2;25231:3;25227:12;25220:19;;24879:366;;;:::o;25251:419::-;25417:4;25455:2;25444:9;25440:18;25432:26;;25504:9;25498:4;25494:20;25490:1;25479:9;25475:17;25468:47;25532:131;25658:4;25532:131;:::i;:::-;25524:139;;25251:419;;;:::o;25676:410::-;25716:7;25739:20;25757:1;25739:20;:::i;:::-;25734:25;;25773:20;25791:1;25773:20;:::i;:::-;25768:25;;25828:1;25825;25821:9;25850:30;25868:11;25850:30;:::i;:::-;25839:41;;26029:1;26020:7;26016:15;26013:1;26010:22;25990:1;25983:9;25963:83;25940:139;;26059:18;;:::i;:::-;25940:139;25724:362;25676:410;;;;:::o;26092:180::-;26140:77;26137:1;26130:88;26237:4;26234:1;26227:15;26261:4;26258:1;26251:15;26278:185;26318:1;26335:20;26353:1;26335:20;:::i;:::-;26330:25;;26369:20;26387:1;26369:20;:::i;:::-;26364:25;;26408:1;26398:35;;26413:18;;:::i;:::-;26398:35;26455:1;26452;26448:9;26443:14;;26278:185;;;;:::o;26469:442::-;26618:4;26656:2;26645:9;26641:18;26633:26;;26669:71;26737:1;26726:9;26722:17;26713:6;26669:71;:::i;:::-;26750:72;26818:2;26807:9;26803:18;26794:6;26750:72;:::i;:::-;26832;26900:2;26889:9;26885:18;26876:6;26832:72;:::i;:::-;26469:442;;;;;;:::o;26917:225::-;27057:34;27053:1;27045:6;27041:14;27034:58;27126:8;27121:2;27113:6;27109:15;27102:33;26917:225;:::o;27148:366::-;27290:3;27311:67;27375:2;27370:3;27311:67;:::i;:::-;27304:74;;27387:93;27476:3;27387:93;:::i;:::-;27505:2;27500:3;27496:12;27489:19;;27148:366;;;:::o;27520:419::-;27686:4;27724:2;27713:9;27709:18;27701:26;;27773:9;27767:4;27763:20;27759:1;27748:9;27744:17;27737:47;27801:131;27927:4;27801:131;:::i;:::-;27793:139;;27520:419;;;:::o;27945:180::-;27993:77;27990:1;27983:88;28090:4;28087:1;28080:15;28114:4;28111:1;28104:15;28131:180;28179:77;28176:1;28169:88;28276:4;28273:1;28266:15;28300:4;28297:1;28290:15;28317:114;28384:6;28418:5;28412:12;28402:22;;28317:114;;;:::o;28437:184::-;28536:11;28570:6;28565:3;28558:19;28610:4;28605:3;28601:14;28586:29;;28437:184;;;;:::o;28627:132::-;28694:4;28717:3;28709:11;;28747:4;28742:3;28738:14;28730:22;;28627:132;;;:::o;28765:108::-;28842:24;28860:5;28842:24;:::i;:::-;28837:3;28830:37;28765:108;;:::o;28879:179::-;28948:10;28969:46;29011:3;29003:6;28969:46;:::i;:::-;29047:4;29042:3;29038:14;29024:28;;28879:179;;;;:::o;29064:113::-;29134:4;29166;29161:3;29157:14;29149:22;;29064:113;;;:::o;29213:732::-;29332:3;29361:54;29409:5;29361:54;:::i;:::-;29431:86;29510:6;29505:3;29431:86;:::i;:::-;29424:93;;29541:56;29591:5;29541:56;:::i;:::-;29620:7;29651:1;29636:284;29661:6;29658:1;29655:13;29636:284;;;29737:6;29731:13;29764:63;29823:3;29808:13;29764:63;:::i;:::-;29757:70;;29850:60;29903:6;29850:60;:::i;:::-;29840:70;;29696:224;29683:1;29680;29676:9;29671:14;;29636:284;;;29640:14;29936:3;29929:10;;29337:608;;;29213:732;;;;:::o;29951:831::-;30214:4;30252:3;30241:9;30237:19;30229:27;;30266:71;30334:1;30323:9;30319:17;30310:6;30266:71;:::i;:::-;30347:80;30423:2;30412:9;30408:18;30399:6;30347:80;:::i;:::-;30474:9;30468:4;30464:20;30459:2;30448:9;30444:18;30437:48;30502:108;30605:4;30596:6;30502:108;:::i;:::-;30494:116;;30620:72;30688:2;30677:9;30673:18;30664:6;30620:72;:::i;:::-;30702:73;30770:3;30759:9;30755:19;30746:6;30702:73;:::i;:::-;29951:831;;;;;;;;:::o
Swarm Source
ipfs://d107e44f4a514caa85ee9225eee0a8bc3a8d0df881befa2f0bfff9fa8a6366d8
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.