Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 $GALA
Holders
38
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.000000001 $GALAValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
GALA
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-10-30 */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.18; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract GALA is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "LuffyCharmanderFlash69ElonSonic"; string private constant _symbol = "$GALA"; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1000000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 30; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 70; //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping(address => bool) public bots; mapping (address => uint256) public _buyMap; address payable private _developmentAddress = payable(0x4B071E7e411D623cE64a38f717cc6B0F26Ecd12e); address payable private _marketingAddress = payable(0x4B071E7e411D623cE64a38f717cc6B0F26Ecd12e); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; mapping(address => bool) private _whitelisted; uint256 public _maxTxAmount = 10000000 * 10**9; uint256 public _maxWalletSize = 10000000 * 10**9; uint256 public _swapTokensAtAmount = 6000000 * 10**9; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_developmentAddress] = true; _isExcludedFromFee[_marketingAddress] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && to != owner()) { //Trade start check if (!tradingOpen) { require((from == owner() || (_whitelisted[to]==true && from==uniswapV2Pair)), "TOKEN: This account cannot send tokens until trading is enabled"); } require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _swapTokensAtAmount) { contractTokenBalance = _swapTokensAtAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } bool takeFee = true; //Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { //Set Fee for Buys if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _marketingAddress.transfer(amount); } function enableTrading(bool _tradingOpen) public onlyOwner { tradingOpen = _tradingOpen; } function manualswap() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function blockBots(address[] memory bots_) public onlyOwner { for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function unblockBot(address notbot) public onlyOwner { bots[notbot] = false; } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setFee( uint256 _buy, uint256 _sell) public onlyOwner { _taxFeeOnBuy = _buy; _taxFeeOnSell = _sell; } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } //Set maximum transaction function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } function setMultiWhitelist(address[] calldata accounts, bool _status) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _whitelisted[accounts[i]] = _status; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setMultiWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052670de0b6b3a76400006000196200001c91906200070f565b6000196200002b919062000776565b6006556000600855601e6009556000600a556046600b55600a54600c55600b54600d55600c54600e55600d54600f55734b071e7e411d623ce64a38f717cc6b0f26ecd12e601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734b071e7e411d623ce64a38f717cc6b0f26ecd12e601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff021916908315150217905550662386f26fc10000601755662386f26fc10000601855661550f7dca700006019553480156200016757600080fd5b5060006200017a620006a560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200022f620006a560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000313573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033991906200081b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c791906200081b565b6040518363ffffffff1660e01b8152600401620003e69291906200085e565b6020604051808303816000875af115801562000406573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200042c91906200081b565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005600062000482620006ad60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200062f620006a560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a76400006040516200069691906200089c565b60405180910390a350620008b9565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200071c82620006d6565b91506200072983620006d6565b9250826200073c576200073b620006e0565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200078382620006d6565b91506200079083620006d6565b9250828203905081811115620007ab57620007aa62000747565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007e382620007b6565b9050919050565b620007f581620007d6565b81146200080157600080fd5b50565b6000815190506200081581620007ea565b92915050565b600060208284031215620008345762000833620007b1565b5b6000620008448482850162000804565b91505092915050565b6200085881620007d6565b82525050565b60006040820190506200087560008301856200084d565b6200088460208301846200084d565b9392505050565b6200089681620006d6565b82525050565b6000602082019050620008b360008301846200088b565b92915050565b613f6c80620008c96000396000f3fe6080604052600436106101db5760003560e01c806374010ece11610102578063bfd7928411610095578063e394372c11610064578063e394372c146106a4578063ea1644d5146106cd578063f275f64b146106f6578063f2fde38b1461071f576101e2565b8063bfd79284146105ea578063c3c8cd8014610627578063c492f0461461063e578063dd62ed3e14610667576101e2565b80638f9a55c0116100d15780638f9a55c01461052e57806395d89b411461055957806398a5c31514610584578063a9059cbb146105ad576101e2565b806374010ece146104725780637d1db4a51461049b5780637f2feddc146104c65780638da5cb5b14610503576101e2565b8063313ce5671161017a5780636d8aa8f8116101495780636d8aa8f8146103de5780636fc3eaec1461040757806370a082311461041e578063715018a61461045b576101e2565b8063313ce5671461033657806349bd5a5e1461036157806352f7c9881461038c5780636b999053146103b5576101e2565b80631694505e116101b65780631694505e1461027857806318160ddd146102a357806323b872dd146102ce5780632fd689e31461030b576101e2565b8062b8cf2a146101e757806306fdde0314610210578063095ea7b31461023b576101e2565b366101e257005b600080fd5b3480156101f357600080fd5b5061020e60048036038101906102099190612f63565b610748565b005b34801561021c57600080fd5b50610225610872565b604051610232919061302b565b60405180910390f35b34801561024757600080fd5b50610262600480360381019061025d9190613083565b6108af565b60405161026f91906130de565b60405180910390f35b34801561028457600080fd5b5061028d6108cd565b60405161029a9190613158565b60405180910390f35b3480156102af57600080fd5b506102b86108f3565b6040516102c59190613182565b60405180910390f35b3480156102da57600080fd5b506102f560048036038101906102f0919061319d565b610903565b60405161030291906130de565b60405180910390f35b34801561031757600080fd5b506103206109dc565b60405161032d9190613182565b60405180910390f35b34801561034257600080fd5b5061034b6109e2565b604051610358919061320c565b60405180910390f35b34801561036d57600080fd5b506103766109eb565b6040516103839190613236565b60405180910390f35b34801561039857600080fd5b506103b360048036038101906103ae9190613251565b610a11565b005b3480156103c157600080fd5b506103dc60048036038101906103d79190613291565b610ab8565b005b3480156103ea57600080fd5b50610405600480360381019061040091906132ea565b610ba8565b005b34801561041357600080fd5b5061041c610c5a565b005b34801561042a57600080fd5b5061044560048036038101906104409190613291565b610d2b565b6040516104529190613182565b60405180910390f35b34801561046757600080fd5b50610470610d7c565b005b34801561047e57600080fd5b5061049960048036038101906104949190613317565b610ecf565b005b3480156104a757600080fd5b506104b0610f6e565b6040516104bd9190613182565b60405180910390f35b3480156104d257600080fd5b506104ed60048036038101906104e89190613291565b610f74565b6040516104fa9190613182565b60405180910390f35b34801561050f57600080fd5b50610518610f8c565b6040516105259190613236565b60405180910390f35b34801561053a57600080fd5b50610543610fb5565b6040516105509190613182565b60405180910390f35b34801561056557600080fd5b5061056e610fbb565b60405161057b919061302b565b60405180910390f35b34801561059057600080fd5b506105ab60048036038101906105a69190613317565b610ff8565b005b3480156105b957600080fd5b506105d460048036038101906105cf9190613083565b611097565b6040516105e191906130de565b60405180910390f35b3480156105f657600080fd5b50610611600480360381019061060c9190613291565b6110b5565b60405161061e91906130de565b60405180910390f35b34801561063357600080fd5b5061063c6110d5565b005b34801561064a57600080fd5b506106656004803603810190610660919061339f565b6111ae565b005b34801561067357600080fd5b5061068e600480360381019061068991906133ff565b6112e8565b60405161069b9190613182565b60405180910390f35b3480156106b057600080fd5b506106cb60048036038101906106c6919061339f565b61136f565b005b3480156106d957600080fd5b506106f460048036038101906106ef9190613317565b6114a9565b005b34801561070257600080fd5b5061071d600480360381019061071891906132ea565b611548565b005b34801561072b57600080fd5b5061074660048036038101906107419190613291565b6115fa565b005b6107506117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d49061348b565b60405180910390fd5b60005b815181101561086e57600160106000848481518110610802576108016134ab565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061086690613509565b9150506107e0565b5050565b60606040518060400160405280601f81526020017f4c75666679436861726d616e646572466c6173683639456c6f6e536f6e696300815250905090565b60006108c36108bc6117bb565b84846117c3565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b600061091084848461198c565b6109d18461091c6117bb565b6109cc85604051806060016040528060288152602001613f0f60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109826117bb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122c39092919063ffffffff16565b6117c3565b600190509392505050565b60195481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a196117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aa6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9d9061348b565b60405180910390fd5b8160098190555080600b819055505050565b610ac06117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b449061348b565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610bb06117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c349061348b565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c9b6117bb565b73ffffffffffffffffffffffffffffffffffffffff161480610d115750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cf96117bb565b73ffffffffffffffffffffffffffffffffffffffff16145b610d1a57600080fd5b6000479050610d2881612327565b50565b6000610d75600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612393565b9050919050565b610d846117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e089061348b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ed76117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5b9061348b565b60405180910390fd5b8060178190555050565b60175481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60185481565b60606040518060400160405280600581526020017f2447414c41000000000000000000000000000000000000000000000000000000815250905090565b6110006117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461108d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110849061348b565b60405180910390fd5b8060198190555050565b60006110ab6110a46117bb565b848461198c565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111166117bb565b73ffffffffffffffffffffffffffffffffffffffff16148061118c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111746117bb565b73ffffffffffffffffffffffffffffffffffffffff16145b61119557600080fd5b60006111a030610d2b565b90506111ab81612401565b50565b6111b66117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611243576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123a9061348b565b60405180910390fd5b60005b838390508110156112e2578160056000868685818110611269576112686134ab565b5b905060200201602081019061127e9190613291565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806112da90613509565b915050611246565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113776117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611404576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fb9061348b565b60405180910390fd5b60005b838390508110156114a357816016600086868581811061142a576114296134ab565b5b905060200201602081019061143f9190613291565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061149b90613509565b915050611407565b50505050565b6114b16117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461153e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115359061348b565b60405180910390fd5b8060188190555050565b6115506117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d49061348b565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b6116026117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461168f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116869061348b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f5906135c3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611832576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182990613655565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611898906136e7565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161197f9190613182565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f290613779565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a619061380b565b60405180910390fd5b60008111611aad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa49061389d565b60405180910390fd5b611ab5610f8c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b235750611af3610f8c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611fc257601560149054906101000a900460ff16611c6657611b44610f8c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480611c26575060011515601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515148015611c255750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b5b611c65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5c9061392f565b60405180910390fd5b5b601754811115611cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca29061399b565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d4f5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8590613a2d565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611e3b5760185481611df084610d2b565b611dfa9190613a4d565b10611e3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3190613af3565b60405180910390fd5b5b6000611e4630610d2b565b9050600060195482101590506019548210611e615760195491505b808015611e79575060158054906101000a900460ff16155b8015611ed35750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611eeb5750601560169054906101000a900460ff165b8015611f415750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f975750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611fbf57611fa582612401565b60004790506000811115611fbd57611fbc47612327565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120695750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061211c5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561211b5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561212a57600090506122b1565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121d55750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156121ed57600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156122985750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156122b057600a54600c81905550600b54600d819055505b5b6122bd84848484612678565b50505050565b600083831115829061230b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612302919061302b565b60405180910390fd5b506000838561231a9190613b13565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561238f573d6000803e3d6000fd5b5050565b60006006548211156123da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d190613bb9565b60405180910390fd5b60006123e46126a5565b90506123f981846126d090919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561243857612437612dc2565b5b6040519080825280602002602001820160405280156124665781602001602082028036833780820191505090505b509050308160008151811061247e5761247d6134ab565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612525573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125499190613bee565b8160018151811061255d5761255c6134ab565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125c430601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846117c3565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612628959493929190613d14565b600060405180830381600087803b15801561264257600080fd5b505af1158015612656573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806126865761268561271a565b5b612691848484612757565b8061269f5761269e612922565b5b50505050565b60008060006126b2612936565b915091506126c981836126d090919063ffffffff16565b9250505090565b600061271283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612995565b905092915050565b6000600c5414801561272e57506000600d54145b61275557600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612769876129f8565b9550955095509550955095506127c786600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a6090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061285c85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aaa90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128a881612b08565b6128b28483612bc5565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161290f9190613182565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a7640000905061296a670de0b6b3a76400006006546126d090919063ffffffff16565b82101561298857600654670de0b6b3a7640000935093505050612991565b81819350935050505b9091565b600080831182906129dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d3919061302b565b60405180910390fd5b50600083856129eb9190613d9d565b9050809150509392505050565b6000806000806000806000806000612a158a600c54600d54612bff565b9250925092506000612a256126a5565b90506000806000612a388e878787612c95565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612aa283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122c3565b905092915050565b6000808284612ab99190613a4d565b905083811015612afe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af590613e1a565b60405180910390fd5b8091505092915050565b6000612b126126a5565b90506000612b298284612d1e90919063ffffffff16565b9050612b7d81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aaa90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612bda82600654612a6090919063ffffffff16565b600681905550612bf581600754612aaa90919063ffffffff16565b6007819055505050565b600080600080612c2b6064612c1d888a612d1e90919063ffffffff16565b6126d090919063ffffffff16565b90506000612c556064612c47888b612d1e90919063ffffffff16565b6126d090919063ffffffff16565b90506000612c7e82612c70858c612a6090919063ffffffff16565b612a6090919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612cae8589612d1e90919063ffffffff16565b90506000612cc58689612d1e90919063ffffffff16565b90506000612cdc8789612d1e90919063ffffffff16565b90506000612d0582612cf78587612a6090919063ffffffff16565b612a6090919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612d305760009050612d92565b60008284612d3e9190613e3a565b9050828482612d4d9190613d9d565b14612d8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d8490613eee565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612dfa82612db1565b810181811067ffffffffffffffff82111715612e1957612e18612dc2565b5b80604052505050565b6000612e2c612d98565b9050612e388282612df1565b919050565b600067ffffffffffffffff821115612e5857612e57612dc2565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612e9982612e6e565b9050919050565b612ea981612e8e565b8114612eb457600080fd5b50565b600081359050612ec681612ea0565b92915050565b6000612edf612eda84612e3d565b612e22565b90508083825260208201905060208402830185811115612f0257612f01612e69565b5b835b81811015612f2b5780612f178882612eb7565b845260208401935050602081019050612f04565b5050509392505050565b600082601f830112612f4a57612f49612dac565b5b8135612f5a848260208601612ecc565b91505092915050565b600060208284031215612f7957612f78612da2565b5b600082013567ffffffffffffffff811115612f9757612f96612da7565b5b612fa384828501612f35565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612fe6578082015181840152602081019050612fcb565b60008484015250505050565b6000612ffd82612fac565b6130078185612fb7565b9350613017818560208601612fc8565b61302081612db1565b840191505092915050565b600060208201905081810360008301526130458184612ff2565b905092915050565b6000819050919050565b6130608161304d565b811461306b57600080fd5b50565b60008135905061307d81613057565b92915050565b6000806040838503121561309a57613099612da2565b5b60006130a885828601612eb7565b92505060206130b98582860161306e565b9150509250929050565b60008115159050919050565b6130d8816130c3565b82525050565b60006020820190506130f360008301846130cf565b92915050565b6000819050919050565b600061311e61311961311484612e6e565b6130f9565b612e6e565b9050919050565b600061313082613103565b9050919050565b600061314282613125565b9050919050565b61315281613137565b82525050565b600060208201905061316d6000830184613149565b92915050565b61317c8161304d565b82525050565b60006020820190506131976000830184613173565b92915050565b6000806000606084860312156131b6576131b5612da2565b5b60006131c486828701612eb7565b93505060206131d586828701612eb7565b92505060406131e68682870161306e565b9150509250925092565b600060ff82169050919050565b613206816131f0565b82525050565b600060208201905061322160008301846131fd565b92915050565b61323081612e8e565b82525050565b600060208201905061324b6000830184613227565b92915050565b6000806040838503121561326857613267612da2565b5b60006132768582860161306e565b92505060206132878582860161306e565b9150509250929050565b6000602082840312156132a7576132a6612da2565b5b60006132b584828501612eb7565b91505092915050565b6132c7816130c3565b81146132d257600080fd5b50565b6000813590506132e4816132be565b92915050565b600060208284031215613300576132ff612da2565b5b600061330e848285016132d5565b91505092915050565b60006020828403121561332d5761332c612da2565b5b600061333b8482850161306e565b91505092915050565b600080fd5b60008083601f84011261335f5761335e612dac565b5b8235905067ffffffffffffffff81111561337c5761337b613344565b5b60208301915083602082028301111561339857613397612e69565b5b9250929050565b6000806000604084860312156133b8576133b7612da2565b5b600084013567ffffffffffffffff8111156133d6576133d5612da7565b5b6133e286828701613349565b935093505060206133f5868287016132d5565b9150509250925092565b6000806040838503121561341657613415612da2565b5b600061342485828601612eb7565b925050602061343585828601612eb7565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613475602083612fb7565b91506134808261343f565b602082019050919050565b600060208201905081810360008301526134a481613468565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006135148261304d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613546576135456134da565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006135ad602683612fb7565b91506135b882613551565b604082019050919050565b600060208201905081810360008301526135dc816135a0565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061363f602483612fb7565b915061364a826135e3565b604082019050919050565b6000602082019050818103600083015261366e81613632565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006136d1602283612fb7565b91506136dc82613675565b604082019050919050565b60006020820190508181036000830152613700816136c4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613763602583612fb7565b915061376e82613707565b604082019050919050565b6000602082019050818103600083015261379281613756565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006137f5602383612fb7565b915061380082613799565b604082019050919050565b60006020820190508181036000830152613824816137e8565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613887602983612fb7565b91506138928261382b565b604082019050919050565b600060208201905081810360008301526138b68161387a565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613919603f83612fb7565b9150613924826138bd565b604082019050919050565b600060208201905081810360008301526139488161390c565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613985601c83612fb7565b91506139908261394f565b602082019050919050565b600060208201905081810360008301526139b481613978565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613a17602383612fb7565b9150613a22826139bb565b604082019050919050565b60006020820190508181036000830152613a4681613a0a565b9050919050565b6000613a588261304d565b9150613a638361304d565b9250828201905080821115613a7b57613a7a6134da565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613add602383612fb7565b9150613ae882613a81565b604082019050919050565b60006020820190508181036000830152613b0c81613ad0565b9050919050565b6000613b1e8261304d565b9150613b298361304d565b9250828203905081811115613b4157613b406134da565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613ba3602a83612fb7565b9150613bae82613b47565b604082019050919050565b60006020820190508181036000830152613bd281613b96565b9050919050565b600081519050613be881612ea0565b92915050565b600060208284031215613c0457613c03612da2565b5b6000613c1284828501613bd9565b91505092915050565b6000819050919050565b6000613c40613c3b613c3684613c1b565b6130f9565b61304d565b9050919050565b613c5081613c25565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613c8b81612e8e565b82525050565b6000613c9d8383613c82565b60208301905092915050565b6000602082019050919050565b6000613cc182613c56565b613ccb8185613c61565b9350613cd683613c72565b8060005b83811015613d07578151613cee8882613c91565b9750613cf983613ca9565b925050600181019050613cda565b5085935050505092915050565b600060a082019050613d296000830188613173565b613d366020830187613c47565b8181036040830152613d488186613cb6565b9050613d576060830185613227565b613d646080830184613173565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613da88261304d565b9150613db38361304d565b925082613dc357613dc2613d6e565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613e04601b83612fb7565b9150613e0f82613dce565b602082019050919050565b60006020820190508181036000830152613e3381613df7565b9050919050565b6000613e458261304d565b9150613e508361304d565b9250828202613e5e8161304d565b91508282048414831517613e7557613e746134da565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ed8602183612fb7565b9150613ee382613e7c565b604082019050919050565b60006020820190508181036000830152613f0781613ecb565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204f58dd66ec03fd70592c2fe6f130bdf2dd471fb7e94e1ec019c823e8537dbe2864736f6c63430008120033
Deployed Bytecode
0x6080604052600436106101db5760003560e01c806374010ece11610102578063bfd7928411610095578063e394372c11610064578063e394372c146106a4578063ea1644d5146106cd578063f275f64b146106f6578063f2fde38b1461071f576101e2565b8063bfd79284146105ea578063c3c8cd8014610627578063c492f0461461063e578063dd62ed3e14610667576101e2565b80638f9a55c0116100d15780638f9a55c01461052e57806395d89b411461055957806398a5c31514610584578063a9059cbb146105ad576101e2565b806374010ece146104725780637d1db4a51461049b5780637f2feddc146104c65780638da5cb5b14610503576101e2565b8063313ce5671161017a5780636d8aa8f8116101495780636d8aa8f8146103de5780636fc3eaec1461040757806370a082311461041e578063715018a61461045b576101e2565b8063313ce5671461033657806349bd5a5e1461036157806352f7c9881461038c5780636b999053146103b5576101e2565b80631694505e116101b65780631694505e1461027857806318160ddd146102a357806323b872dd146102ce5780632fd689e31461030b576101e2565b8062b8cf2a146101e757806306fdde0314610210578063095ea7b31461023b576101e2565b366101e257005b600080fd5b3480156101f357600080fd5b5061020e60048036038101906102099190612f63565b610748565b005b34801561021c57600080fd5b50610225610872565b604051610232919061302b565b60405180910390f35b34801561024757600080fd5b50610262600480360381019061025d9190613083565b6108af565b60405161026f91906130de565b60405180910390f35b34801561028457600080fd5b5061028d6108cd565b60405161029a9190613158565b60405180910390f35b3480156102af57600080fd5b506102b86108f3565b6040516102c59190613182565b60405180910390f35b3480156102da57600080fd5b506102f560048036038101906102f0919061319d565b610903565b60405161030291906130de565b60405180910390f35b34801561031757600080fd5b506103206109dc565b60405161032d9190613182565b60405180910390f35b34801561034257600080fd5b5061034b6109e2565b604051610358919061320c565b60405180910390f35b34801561036d57600080fd5b506103766109eb565b6040516103839190613236565b60405180910390f35b34801561039857600080fd5b506103b360048036038101906103ae9190613251565b610a11565b005b3480156103c157600080fd5b506103dc60048036038101906103d79190613291565b610ab8565b005b3480156103ea57600080fd5b50610405600480360381019061040091906132ea565b610ba8565b005b34801561041357600080fd5b5061041c610c5a565b005b34801561042a57600080fd5b5061044560048036038101906104409190613291565b610d2b565b6040516104529190613182565b60405180910390f35b34801561046757600080fd5b50610470610d7c565b005b34801561047e57600080fd5b5061049960048036038101906104949190613317565b610ecf565b005b3480156104a757600080fd5b506104b0610f6e565b6040516104bd9190613182565b60405180910390f35b3480156104d257600080fd5b506104ed60048036038101906104e89190613291565b610f74565b6040516104fa9190613182565b60405180910390f35b34801561050f57600080fd5b50610518610f8c565b6040516105259190613236565b60405180910390f35b34801561053a57600080fd5b50610543610fb5565b6040516105509190613182565b60405180910390f35b34801561056557600080fd5b5061056e610fbb565b60405161057b919061302b565b60405180910390f35b34801561059057600080fd5b506105ab60048036038101906105a69190613317565b610ff8565b005b3480156105b957600080fd5b506105d460048036038101906105cf9190613083565b611097565b6040516105e191906130de565b60405180910390f35b3480156105f657600080fd5b50610611600480360381019061060c9190613291565b6110b5565b60405161061e91906130de565b60405180910390f35b34801561063357600080fd5b5061063c6110d5565b005b34801561064a57600080fd5b506106656004803603810190610660919061339f565b6111ae565b005b34801561067357600080fd5b5061068e600480360381019061068991906133ff565b6112e8565b60405161069b9190613182565b60405180910390f35b3480156106b057600080fd5b506106cb60048036038101906106c6919061339f565b61136f565b005b3480156106d957600080fd5b506106f460048036038101906106ef9190613317565b6114a9565b005b34801561070257600080fd5b5061071d600480360381019061071891906132ea565b611548565b005b34801561072b57600080fd5b5061074660048036038101906107419190613291565b6115fa565b005b6107506117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d49061348b565b60405180910390fd5b60005b815181101561086e57600160106000848481518110610802576108016134ab565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061086690613509565b9150506107e0565b5050565b60606040518060400160405280601f81526020017f4c75666679436861726d616e646572466c6173683639456c6f6e536f6e696300815250905090565b60006108c36108bc6117bb565b84846117c3565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b600061091084848461198c565b6109d18461091c6117bb565b6109cc85604051806060016040528060288152602001613f0f60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109826117bb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122c39092919063ffffffff16565b6117c3565b600190509392505050565b60195481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a196117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aa6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9d9061348b565b60405180910390fd5b8160098190555080600b819055505050565b610ac06117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b449061348b565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610bb06117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c349061348b565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c9b6117bb565b73ffffffffffffffffffffffffffffffffffffffff161480610d115750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cf96117bb565b73ffffffffffffffffffffffffffffffffffffffff16145b610d1a57600080fd5b6000479050610d2881612327565b50565b6000610d75600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612393565b9050919050565b610d846117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e089061348b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ed76117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5b9061348b565b60405180910390fd5b8060178190555050565b60175481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60185481565b60606040518060400160405280600581526020017f2447414c41000000000000000000000000000000000000000000000000000000815250905090565b6110006117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461108d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110849061348b565b60405180910390fd5b8060198190555050565b60006110ab6110a46117bb565b848461198c565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111166117bb565b73ffffffffffffffffffffffffffffffffffffffff16148061118c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111746117bb565b73ffffffffffffffffffffffffffffffffffffffff16145b61119557600080fd5b60006111a030610d2b565b90506111ab81612401565b50565b6111b66117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611243576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123a9061348b565b60405180910390fd5b60005b838390508110156112e2578160056000868685818110611269576112686134ab565b5b905060200201602081019061127e9190613291565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806112da90613509565b915050611246565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113776117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611404576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fb9061348b565b60405180910390fd5b60005b838390508110156114a357816016600086868581811061142a576114296134ab565b5b905060200201602081019061143f9190613291565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061149b90613509565b915050611407565b50505050565b6114b16117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461153e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115359061348b565b60405180910390fd5b8060188190555050565b6115506117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d49061348b565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b6116026117bb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461168f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116869061348b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f5906135c3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611832576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182990613655565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611898906136e7565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161197f9190613182565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f290613779565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a619061380b565b60405180910390fd5b60008111611aad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa49061389d565b60405180910390fd5b611ab5610f8c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b235750611af3610f8c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611fc257601560149054906101000a900460ff16611c6657611b44610f8c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480611c26575060011515601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515148015611c255750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b5b611c65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5c9061392f565b60405180910390fd5b5b601754811115611cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca29061399b565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d4f5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8590613a2d565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611e3b5760185481611df084610d2b565b611dfa9190613a4d565b10611e3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3190613af3565b60405180910390fd5b5b6000611e4630610d2b565b9050600060195482101590506019548210611e615760195491505b808015611e79575060158054906101000a900460ff16155b8015611ed35750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611eeb5750601560169054906101000a900460ff165b8015611f415750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f975750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611fbf57611fa582612401565b60004790506000811115611fbd57611fbc47612327565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120695750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061211c5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561211b5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561212a57600090506122b1565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121d55750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156121ed57600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156122985750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156122b057600a54600c81905550600b54600d819055505b5b6122bd84848484612678565b50505050565b600083831115829061230b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612302919061302b565b60405180910390fd5b506000838561231a9190613b13565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561238f573d6000803e3d6000fd5b5050565b60006006548211156123da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d190613bb9565b60405180910390fd5b60006123e46126a5565b90506123f981846126d090919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561243857612437612dc2565b5b6040519080825280602002602001820160405280156124665781602001602082028036833780820191505090505b509050308160008151811061247e5761247d6134ab565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612525573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125499190613bee565b8160018151811061255d5761255c6134ab565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125c430601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846117c3565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612628959493929190613d14565b600060405180830381600087803b15801561264257600080fd5b505af1158015612656573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806126865761268561271a565b5b612691848484612757565b8061269f5761269e612922565b5b50505050565b60008060006126b2612936565b915091506126c981836126d090919063ffffffff16565b9250505090565b600061271283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612995565b905092915050565b6000600c5414801561272e57506000600d54145b61275557600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612769876129f8565b9550955095509550955095506127c786600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a6090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061285c85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aaa90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128a881612b08565b6128b28483612bc5565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161290f9190613182565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a7640000905061296a670de0b6b3a76400006006546126d090919063ffffffff16565b82101561298857600654670de0b6b3a7640000935093505050612991565b81819350935050505b9091565b600080831182906129dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d3919061302b565b60405180910390fd5b50600083856129eb9190613d9d565b9050809150509392505050565b6000806000806000806000806000612a158a600c54600d54612bff565b9250925092506000612a256126a5565b90506000806000612a388e878787612c95565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612aa283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122c3565b905092915050565b6000808284612ab99190613a4d565b905083811015612afe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af590613e1a565b60405180910390fd5b8091505092915050565b6000612b126126a5565b90506000612b298284612d1e90919063ffffffff16565b9050612b7d81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aaa90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612bda82600654612a6090919063ffffffff16565b600681905550612bf581600754612aaa90919063ffffffff16565b6007819055505050565b600080600080612c2b6064612c1d888a612d1e90919063ffffffff16565b6126d090919063ffffffff16565b90506000612c556064612c47888b612d1e90919063ffffffff16565b6126d090919063ffffffff16565b90506000612c7e82612c70858c612a6090919063ffffffff16565b612a6090919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612cae8589612d1e90919063ffffffff16565b90506000612cc58689612d1e90919063ffffffff16565b90506000612cdc8789612d1e90919063ffffffff16565b90506000612d0582612cf78587612a6090919063ffffffff16565b612a6090919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612d305760009050612d92565b60008284612d3e9190613e3a565b9050828482612d4d9190613d9d565b14612d8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d8490613eee565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612dfa82612db1565b810181811067ffffffffffffffff82111715612e1957612e18612dc2565b5b80604052505050565b6000612e2c612d98565b9050612e388282612df1565b919050565b600067ffffffffffffffff821115612e5857612e57612dc2565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612e9982612e6e565b9050919050565b612ea981612e8e565b8114612eb457600080fd5b50565b600081359050612ec681612ea0565b92915050565b6000612edf612eda84612e3d565b612e22565b90508083825260208201905060208402830185811115612f0257612f01612e69565b5b835b81811015612f2b5780612f178882612eb7565b845260208401935050602081019050612f04565b5050509392505050565b600082601f830112612f4a57612f49612dac565b5b8135612f5a848260208601612ecc565b91505092915050565b600060208284031215612f7957612f78612da2565b5b600082013567ffffffffffffffff811115612f9757612f96612da7565b5b612fa384828501612f35565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612fe6578082015181840152602081019050612fcb565b60008484015250505050565b6000612ffd82612fac565b6130078185612fb7565b9350613017818560208601612fc8565b61302081612db1565b840191505092915050565b600060208201905081810360008301526130458184612ff2565b905092915050565b6000819050919050565b6130608161304d565b811461306b57600080fd5b50565b60008135905061307d81613057565b92915050565b6000806040838503121561309a57613099612da2565b5b60006130a885828601612eb7565b92505060206130b98582860161306e565b9150509250929050565b60008115159050919050565b6130d8816130c3565b82525050565b60006020820190506130f360008301846130cf565b92915050565b6000819050919050565b600061311e61311961311484612e6e565b6130f9565b612e6e565b9050919050565b600061313082613103565b9050919050565b600061314282613125565b9050919050565b61315281613137565b82525050565b600060208201905061316d6000830184613149565b92915050565b61317c8161304d565b82525050565b60006020820190506131976000830184613173565b92915050565b6000806000606084860312156131b6576131b5612da2565b5b60006131c486828701612eb7565b93505060206131d586828701612eb7565b92505060406131e68682870161306e565b9150509250925092565b600060ff82169050919050565b613206816131f0565b82525050565b600060208201905061322160008301846131fd565b92915050565b61323081612e8e565b82525050565b600060208201905061324b6000830184613227565b92915050565b6000806040838503121561326857613267612da2565b5b60006132768582860161306e565b92505060206132878582860161306e565b9150509250929050565b6000602082840312156132a7576132a6612da2565b5b60006132b584828501612eb7565b91505092915050565b6132c7816130c3565b81146132d257600080fd5b50565b6000813590506132e4816132be565b92915050565b600060208284031215613300576132ff612da2565b5b600061330e848285016132d5565b91505092915050565b60006020828403121561332d5761332c612da2565b5b600061333b8482850161306e565b91505092915050565b600080fd5b60008083601f84011261335f5761335e612dac565b5b8235905067ffffffffffffffff81111561337c5761337b613344565b5b60208301915083602082028301111561339857613397612e69565b5b9250929050565b6000806000604084860312156133b8576133b7612da2565b5b600084013567ffffffffffffffff8111156133d6576133d5612da7565b5b6133e286828701613349565b935093505060206133f5868287016132d5565b9150509250925092565b6000806040838503121561341657613415612da2565b5b600061342485828601612eb7565b925050602061343585828601612eb7565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613475602083612fb7565b91506134808261343f565b602082019050919050565b600060208201905081810360008301526134a481613468565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006135148261304d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613546576135456134da565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006135ad602683612fb7565b91506135b882613551565b604082019050919050565b600060208201905081810360008301526135dc816135a0565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061363f602483612fb7565b915061364a826135e3565b604082019050919050565b6000602082019050818103600083015261366e81613632565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006136d1602283612fb7565b91506136dc82613675565b604082019050919050565b60006020820190508181036000830152613700816136c4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613763602583612fb7565b915061376e82613707565b604082019050919050565b6000602082019050818103600083015261379281613756565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006137f5602383612fb7565b915061380082613799565b604082019050919050565b60006020820190508181036000830152613824816137e8565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613887602983612fb7565b91506138928261382b565b604082019050919050565b600060208201905081810360008301526138b68161387a565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613919603f83612fb7565b9150613924826138bd565b604082019050919050565b600060208201905081810360008301526139488161390c565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613985601c83612fb7565b91506139908261394f565b602082019050919050565b600060208201905081810360008301526139b481613978565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613a17602383612fb7565b9150613a22826139bb565b604082019050919050565b60006020820190508181036000830152613a4681613a0a565b9050919050565b6000613a588261304d565b9150613a638361304d565b9250828201905080821115613a7b57613a7a6134da565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613add602383612fb7565b9150613ae882613a81565b604082019050919050565b60006020820190508181036000830152613b0c81613ad0565b9050919050565b6000613b1e8261304d565b9150613b298361304d565b9250828203905081811115613b4157613b406134da565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613ba3602a83612fb7565b9150613bae82613b47565b604082019050919050565b60006020820190508181036000830152613bd281613b96565b9050919050565b600081519050613be881612ea0565b92915050565b600060208284031215613c0457613c03612da2565b5b6000613c1284828501613bd9565b91505092915050565b6000819050919050565b6000613c40613c3b613c3684613c1b565b6130f9565b61304d565b9050919050565b613c5081613c25565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613c8b81612e8e565b82525050565b6000613c9d8383613c82565b60208301905092915050565b6000602082019050919050565b6000613cc182613c56565b613ccb8185613c61565b9350613cd683613c72565b8060005b83811015613d07578151613cee8882613c91565b9750613cf983613ca9565b925050600181019050613cda565b5085935050505092915050565b600060a082019050613d296000830188613173565b613d366020830187613c47565b8181036040830152613d488186613cb6565b9050613d576060830185613227565b613d646080830184613173565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613da88261304d565b9150613db38361304d565b925082613dc357613dc2613d6e565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613e04601b83612fb7565b9150613e0f82613dce565b602082019050919050565b60006020820190508181036000830152613e3381613df7565b9050919050565b6000613e458261304d565b9150613e508361304d565b9250828202613e5e8161304d565b91508282048414831517613e7557613e746134da565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ed8602183612fb7565b9150613ee382613e7c565b604082019050919050565b60006020820190508181036000830152613f0781613ecb565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204f58dd66ec03fd70592c2fe6f130bdf2dd471fb7e94e1ec019c823e8537dbe2864736f6c63430008120033
Deployed Bytecode Sourcemap
4021:13772:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12879:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6603:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7535:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5390:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6883:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7737:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5744:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6791:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5438:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16566:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13057:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16941:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12635:235;;;;;;;;;;;;;:::i;:::-;;6987:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1533:148;;;;;;;;;;;;;:::i;:::-;;17082:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5634:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5129:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1323:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5688:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6695:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16749:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7134:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5091:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12390:236;;;;;;;;;;;;;:::i;:::-;;17336:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7342:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17576:212;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17212:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12277:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1690:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12879:169;1458:12;:10;:12::i;:::-;1448:22;;:6;;;;;;;;;;:22;;;1440:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12955:9:::1;12950:91;12974:5;:12;12970:1;:16;12950:91;;;13025:4;13008;:14;13013:5;13019:1;13013:8;;;;;;;;:::i;:::-;;;;;;;;13008:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;12988:3;;;;;:::i;:::-;;;;12950:91;;;;12879:169:::0;:::o;6603:83::-;6640:13;6673:5;;;;;;;;;;;;;;;;;6666:12;;6603:83;:::o;7535:193::-;7637:4;7659:39;7668:12;:10;:12::i;:::-;7682:7;7691:6;7659:8;:39::i;:::-;7716:4;7709:11;;7535:193;;;;:::o;5390:41::-;;;;;;;;;;;;;:::o;6883:95::-;6936:7;4582:18;6956:14;;6883:95;:::o;7737:446::-;7869:4;7886:36;7896:6;7904:9;7915:6;7886:9;:36::i;:::-;7933:220;7956:6;7977:12;:10;:12::i;:::-;8004:138;8060:6;8004:138;;;;;;;;;;;;;;;;;:11;:19;8016:6;8004:19;;;;;;;;;;;;;;;:33;8024:12;:10;:12::i;:::-;8004:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7933:8;:220::i;:::-;8171:4;8164:11;;7737:446;;;;;:::o;5744:52::-;;;;:::o;6791:83::-;6832:5;4258:1;6850:16;;6791:83;:::o;5438:28::-;;;;;;;;;;;;;:::o;16566:133::-;1458:12;:10;:12::i;:::-;1448:22;;:6;;;;;;;;;;:22;;;1440:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16655:4:::1;16640:12;:19;;;;16686:5;16670:13;:21;;;;16566:133:::0;;:::o;13057:92::-;1458:12;:10;:12::i;:::-;1448:22;;:6;;;;;;;;;;:22;;;1440:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13136:5:::1;13121:4;:12;13126:6;13121:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13057:92:::0;:::o;16941:101::-;1458:12;:10;:12::i;:::-;1448:22;;:6;;;;;;;;;;:22;;;1440:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17022:12:::1;17008:11;;:26;;;;;;;;;;;;;;;;;;16941:101:::0;:::o;12635:235::-;12701:19;;;;;;;;;;;12685:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12740:17;;;;;;;;;;;12724:33;;:12;:10;:12::i;:::-;:33;;;12685:72;12677:81;;;;;;12769:26;12798:21;12769:50;;12830:32;12843:18;12830:12;:32::i;:::-;12666:204;12635:235::o;6987:138::-;7053:7;7080:37;7100:7;:16;7108:7;7100:16;;;;;;;;;;;;;;;;7080:19;:37::i;:::-;7073:44;;6987:138;;;:::o;1533:148::-;1458:12;:10;:12::i;:::-;1448:22;;:6;;;;;;;;;;:22;;;1440:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1640:1:::1;1603:40;;1624:6;::::0;::::1;;;;;;;;1603:40;;;;;;;;;;;;1671:1;1654:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1533:148::o:0;17082:121::-;1458:12;:10;:12::i;:::-;1448:22;;:6;;;;;;;;;;:22;;;1440:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17174:11:::1;17159:12;:26;;;;17082:121:::0;:::o;5634:46::-;;;;:::o;5129:43::-;;;;;;;;;;;;;;;;;:::o;1323:79::-;1361:7;1388:6;;;;;;;;;;;1381:13;;1323:79;:::o;5688:48::-;;;;:::o;6695:87::-;6734:13;6767:7;;;;;;;;;;;;;;;;;6760:14;;6695:87;:::o;16749:139::-;1458:12;:10;:12::i;:::-;1448:22;;:6;;;;;;;;;;:22;;;1440:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16862:18:::1;16840:19;:40;;;;16749:139:::0;:::o;7134:199::-;7239:4;7261:42;7271:12;:10;:12::i;:::-;7285:9;7296:6;7261:9;:42::i;:::-;7321:4;7314:11;;7134:199;;;;:::o;5091:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12390:236::-;12456:19;;;;;;;;;;;12440:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12495:17;;;;;;;;;;;12479:33;;:12;:10;:12::i;:::-;:33;;;12440:72;12432:81;;;;;;12524:23;12550:24;12568:4;12550:9;:24::i;:::-;12524:50;;12585:33;12602:15;12585:16;:33::i;:::-;12421:205;12390:236::o;17336:234::-;1458:12;:10;:12::i;:::-;1448:22;;:6;;;;;;;;;;:22;;;1440:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17453:9:::1;17449:114;17472:8;;:15;;17468:1;:19;17449:114;;;17543:8;17509:18;:31;17528:8;;17537:1;17528:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17509:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17489:3;;;;;:::i;:::-;;;;17449:114;;;;17336:234:::0;;;:::o;7342:184::-;7459:7;7491:11;:18;7503:5;7491:18;;;;;;;;;;;;;;;:27;7510:7;7491:27;;;;;;;;;;;;;;;;7484:34;;7342:184;;;;:::o;17576:212::-;1458:12;:10;:12::i;:::-;1448:22;;:6;;;;;;;;;;:22;;;1440:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17678:9:::1;17674:107;17697:8;;:15;;17693:1;:19;17674:107;;;17762:7;17734:12;:25;17747:8;;17756:1;17747:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17734:25;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;17714:3;;;;;:::i;:::-;;;;17674:107;;;;17576:212:::0;;;:::o;17212:115::-;1458:12;:10;:12::i;:::-;1448:22;;:6;;;;;;;;;;:22;;;1440:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17306:13:::1;17289:14;:30;;;;17212:115:::0;:::o;12277:104::-;1458:12;:10;:12::i;:::-;1448:22;;:6;;;;;;;;;;:22;;;1440:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12361:12:::1;12347:11;;:26;;;;;;;;;;;;;;;;;;12277:104:::0;:::o;1690:244::-;1458:12;:10;:12::i;:::-;1448:22;;:6;;;;;;;;;;:22;;;1440:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1799:1:::1;1779:22;;:8;:22;;::::0;1771:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1889:8;1860:38;;1881:6;::::0;::::1;;;;;;;;1860:38;;;;;;;;;;;;1918:8;1909:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1690:244:::0;:::o;102:98::-;155:7;182:10;175:17;;102:98;:::o;8880:369::-;9024:1;9007:19;;:5;:19;;;8999:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9105:1;9086:21;;:7;:21;;;9078:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9187:6;9157:11;:18;9169:5;9157:18;;;;;;;;;;;;;;;:27;9176:7;9157:27;;;;;;;;;;;;;;;:36;;;;9225:7;9209:32;;9218:5;9209:32;;;9234:6;9209:32;;;;;;:::i;:::-;;;;;;;;8880:369;;;:::o;9258:2410::-;9396:1;9380:18;;:4;:18;;;9372:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9473:1;9459:16;;:2;:16;;;9451:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9543:1;9534:6;:10;9526:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9616:7;:5;:7::i;:::-;9608:15;;:4;:15;;;;:32;;;;;9633:7;:5;:7::i;:::-;9627:13;;:2;:13;;;;9608:32;9604:1332;;;9698:11;;;;;;;;;;;9693:197;;9747:7;:5;:7::i;:::-;9739:15;;:4;:15;;;:66;;;;9777:4;9759:22;;:12;:16;9772:2;9759:16;;;;;;;;;;;;;;;;;;;;;;;;;:22;;;:45;;;;;9791:13;;;;;;;;;;;9785:19;;:4;:19;;;9759:45;9739:66;9730:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;9693:197;9925:12;;9915:6;:22;;9907:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;9994:4;:10;9999:4;9994:10;;;;;;;;;;;;;;;;;;;;;;;;;9993:11;:24;;;;;10009:4;:8;10014:2;10009:8;;;;;;;;;;;;;;;;;;;;;;;;;10008:9;9993:24;9985:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10084:13;;;;;;;;;;;10078:19;;:2;:19;;;10075:146;;10151:14;;10142:6;10126:13;10136:2;10126:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10118:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10075:146;10238:28;10269:24;10287:4;10269:9;:24::i;:::-;10238:55;;10308:12;10347:19;;10323:20;:43;;10308:58;;10411:19;;10387:20;:43;10384:138;;10487:19;;10464:42;;10384:138;10543:7;:18;;;;;10555:6;;;;;;;;;;10554:7;10543:18;:43;;;;;10573:13;;;;;;;;;;;10565:21;;:4;:21;;;;10543:43;:58;;;;;10590:11;;;;;;;;;;;10543:58;:87;;;;;10606:18;:24;10625:4;10606:24;;;;;;;;;;;;;;;;;;;;;;;;;10605:25;10543:87;:114;;;;;10635:18;:22;10654:2;10635:22;;;;;;;;;;;;;;;;;;;;;;;;;10634:23;10543:114;10539:386;;;10678:38;10695:20;10678:16;:38::i;:::-;10735:26;10764:21;10735:50;;10829:1;10808:18;:22;10804:106;;;10855:35;10868:21;10855:12;:35::i;:::-;10804:106;10659:266;10539:386;9642:1294;;9604:1332;10949:12;10964:4;10949:19;;11014:18;:24;11033:4;11014:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11042:18;:22;11061:2;11042:22;;;;;;;;;;;;;;;;;;;;;;;;;11014:50;11013:102;;;;11078:13;;;;;;;;;;;11070:21;;:4;:21;;;;:44;;;;;11101:13;;;;;;;;;;;11095:19;;:2;:19;;;;11070:44;11013:102;11009:597;;;11142:5;11132:15;;11009:597;;;11226:13;;;;;;;;;;;11218:21;;:4;:21;;;:55;;;;;11257:15;;;;;;;;;;;11243:30;;:2;:30;;;;11218:55;11215:162;;;11306:14;;11294:9;:26;;;;11349:12;;11339:7;:22;;;;11215:162;11437:13;;;;;;;;;;;11431:19;;:2;:19;;;:55;;;;;11470:15;;;;;;;;;;;11454:32;;:4;:32;;;;11431:55;11427:165;;;11519:15;;11507:9;:27;;;;11563:13;;11553:7;:23;;;;11427:165;11009:597;11619:41;11634:4;11640:2;11644:6;11652:7;11619:14;:41::i;:::-;9361:2307;9258:2410;;;:::o;2290:224::-;2410:7;2443:1;2438;:6;;2446:12;2430:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2470:9;2486:1;2482;:5;;;;:::i;:::-;2470:17;;2505:1;2498:8;;;2290:224;;;;;:::o;12169:99::-;12226:17;;;;;;;;;;;:26;;:34;12253:6;12226:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12169:99;:::o;8192:323::-;8287:7;8345;;8334;:18;;8312:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8433:19;8455:10;:8;:10::i;:::-;8433:32;;8483:24;8495:11;8483:7;:11;;:24;;;;:::i;:::-;8476:31;;;8192:323;;;:::o;11677:483::-;5900:4;5891:6;;:13;;;;;;;;;;;;;;;;;;11755:21:::1;11793:1;11779:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11755:40;;11824:4;11806;11811:1;11806:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11850:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11840:4;11845:1;11840:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11883:62;11900:4;11915:15;;;;;;;;;;;11933:11;11883:8;:62::i;:::-;11956:15;;;;;;;;;;;:66;;;12037:11;12063:1;12079:4;12106;12126:15;11956:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11744:416;5936:5:::0;5927:6;;:14;;;;;;;;;;;;;;;;;;11677:483;:::o;13158:282::-;13314:7;13309:28;;13323:14;:12;:14::i;:::-;13309:28;13348:44;13366:6;13374:9;13385:6;13348:17;:44::i;:::-;13408:7;13403:29;;13417:15;:13;:15::i;:::-;13403:29;13158:282;;;;:::o;16127:164::-;16169:7;16190:15;16207;16226:19;:17;:19::i;:::-;16189:56;;;;16263:20;16275:7;16263;:11;;:20;;;;:::i;:::-;16256:27;;;;16127:164;:::o;2772:132::-;2830:7;2857:39;2861:1;2864;2857:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2850:46;;2772:132;;;;:::o;8524:221::-;8584:1;8571:9;;:14;:30;;;;;8600:1;8589:7;;:12;8571:30;8603:7;8567:43;8643:9;;8623:17;:29;;;;8681:7;;8663:15;:25;;;;8714:1;8702:9;:13;;;;8736:1;8726:7;:11;;;;8524:221;:::o;13449:610::-;13596:15;13626:23;13664:12;13691:23;13729:12;13756:13;13783:19;13794:7;13783:10;:19::i;:::-;13581:221;;;;;;;;;;;;13831:28;13851:7;13831;:15;13839:6;13831:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13813:7;:15;13821:6;13813:15;;;;;;;;;;;;;;;:46;;;;13891:39;13914:15;13891:7;:18;13899:9;13891:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13870:7;:18;13878:9;13870:18;;;;;;;;;;;;;;;:60;;;;13941:16;13951:5;13941:9;:16::i;:::-;13968:23;13980:4;13986;13968:11;:23::i;:::-;14024:9;14007:44;;14016:6;14007:44;;;14035:15;14007:44;;;;;;:::i;:::-;;;;;;;;13570:489;;;;;;13449:610;;;:::o;8754:117::-;8810:17;;8798:9;:29;;;;8848:15;;8838:7;:25;;;;8754:117::o;16300:257::-;16351:7;16360;16380:15;16398:7;;16380:25;;16416:15;4582:18;16416:25;;16466:20;4582:18;16466:7;;:11;;:20;;;;:::i;:::-;16456:7;:30;16452:61;;;16496:7;;4582:18;16488:25;;;;;;;;16452:61;16532:7;16541;16524:25;;;;;;16300:257;;;:::o;2910:223::-;3030:7;3062:1;3058;:5;3065:12;3050:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3089:9;3105:1;3101;:5;;;;:::i;:::-;3089:17;;3124:1;3117:8;;;2910:223;;;;;:::o;14482:615::-;14582:7;14604;14626;14648;14670;14692;14728:23;14753:12;14767:13;14797:40;14809:7;14818:9;;14829:7;;14797:11;:40::i;:::-;14727:110;;;;;;14848:19;14870:10;:8;:10::i;:::-;14848:32;;14892:15;14909:23;14934:12;14963:46;14975:7;14984:4;14990:5;14997:11;14963;:46::i;:::-;14891:118;;;;;;15028:7;15037:15;15054:4;15060:15;15077:4;15083:5;15020:69;;;;;;;;;;;;;;;;;;;14482:615;;;;;;;:::o;2148:136::-;2206:7;2233:43;2237:1;2240;2233:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2226:50;;2148:136;;;;:::o;1963:179::-;2021:7;2041:9;2057:1;2053;:5;;;;:::i;:::-;2041:17;;2082:1;2077;:6;;2069:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2133:1;2126:8;;;1963:179;;;;:::o;14068:211::-;14121:19;14143:10;:8;:10::i;:::-;14121:32;;14164:13;14180:22;14190:11;14180:5;:9;;:22;;;;:::i;:::-;14164:38;;14238:33;14265:5;14238:7;:22;14254:4;14238:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14213:7;:22;14229:4;14213:22;;;;;;;;;;;;;;;:58;;;;14110:169;;14068:211;:::o;14288:147::-;14366:17;14378:4;14366:7;;:11;;:17;;;;:::i;:::-;14356:7;:27;;;;14407:20;14422:4;14407:10;;:14;;:20;;;;:::i;:::-;14394:10;:33;;;;14288:147;;:::o;15106:469::-;15275:7;15297;15319;15354:12;15369:30;15395:3;15369:21;15381:8;15369:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15354:45;;15410:13;15426:28;15450:3;15426:19;15438:6;15426:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15410:44;;15465:23;15491:28;15513:5;15491:17;15503:4;15491:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15465:54;;15538:15;15555:4;15561:5;15530:37;;;;;;;;;15106:469;;;;;;;:::o;15584:534::-;15778:7;15800;15822;15857:15;15875:24;15887:11;15875:7;:11;;:24;;;;:::i;:::-;15857:42;;15910:12;15925:21;15934:11;15925:4;:8;;:21;;;;:::i;:::-;15910:36;;15957:13;15973:22;15983:11;15973:5;:9;;:22;;;;:::i;:::-;15957:38;;16006:23;16032:28;16054:5;16032:17;16044:4;16032:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16006:54;;16079:7;16088:15;16105:4;16071:39;;;;;;;;;;15584:534;;;;;;;;:::o;2520:246::-;2578:7;2607:1;2602;:6;2598:47;;2632:1;2625:8;;;;2598:47;2655:9;2671:1;2667;:5;;;;:::i;:::-;2655:17;;2700:1;2695;2691;:5;;;;:::i;:::-;:10;2683:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2757:1;2750:8;;;2520:246;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:246::-;4152:1;4162:113;4176:6;4173:1;4170:13;4162:113;;;4261:1;4256:3;4252:11;4246:18;4242:1;4237:3;4233:11;4226:39;4198:2;4195:1;4191:10;4186:15;;4162:113;;;4309:1;4300:6;4295:3;4291:16;4284:27;4133:184;4071:246;;;:::o;4323:377::-;4411:3;4439:39;4472:5;4439:39;:::i;:::-;4494:71;4558:6;4553:3;4494:71;:::i;:::-;4487:78;;4574:65;4632:6;4627:3;4620:4;4613:5;4609:16;4574:65;:::i;:::-;4664:29;4686:6;4664:29;:::i;:::-;4659:3;4655:39;4648:46;;4415:285;4323:377;;;;:::o;4706:313::-;4819:4;4857:2;4846:9;4842:18;4834:26;;4906:9;4900:4;4896:20;4892:1;4881:9;4877:17;4870:47;4934:78;5007:4;4998:6;4934:78;:::i;:::-;4926:86;;4706:313;;;;:::o;5025:77::-;5062:7;5091:5;5080:16;;5025:77;;;:::o;5108:122::-;5181:24;5199:5;5181:24;:::i;:::-;5174:5;5171:35;5161:63;;5220:1;5217;5210:12;5161:63;5108:122;:::o;5236:139::-;5282:5;5320:6;5307:20;5298:29;;5336:33;5363:5;5336:33;:::i;:::-;5236:139;;;;:::o;5381:474::-;5449:6;5457;5506:2;5494:9;5485:7;5481:23;5477:32;5474:119;;;5512:79;;:::i;:::-;5474:119;5632:1;5657:53;5702:7;5693:6;5682:9;5678:22;5657:53;:::i;:::-;5647:63;;5603:117;5759:2;5785:53;5830:7;5821:6;5810:9;5806:22;5785:53;:::i;:::-;5775:63;;5730:118;5381:474;;;;;:::o;5861:90::-;5895:7;5938:5;5931:13;5924:21;5913:32;;5861:90;;;:::o;5957:109::-;6038:21;6053:5;6038:21;:::i;:::-;6033:3;6026:34;5957:109;;:::o;6072:210::-;6159:4;6197:2;6186:9;6182:18;6174:26;;6210:65;6272:1;6261:9;6257:17;6248:6;6210:65;:::i;:::-;6072:210;;;;:::o;6288:60::-;6316:3;6337:5;6330:12;;6288:60;;;:::o;6354:142::-;6404:9;6437:53;6455:34;6464:24;6482:5;6464:24;:::i;:::-;6455:34;:::i;:::-;6437:53;:::i;:::-;6424:66;;6354:142;;;:::o;6502:126::-;6552:9;6585:37;6616:5;6585:37;:::i;:::-;6572:50;;6502:126;;;:::o;6634:152::-;6710:9;6743:37;6774:5;6743:37;:::i;:::-;6730:50;;6634:152;;;:::o;6792:183::-;6905:63;6962:5;6905:63;:::i;:::-;6900:3;6893:76;6792:183;;:::o;6981:274::-;7100:4;7138:2;7127:9;7123:18;7115:26;;7151:97;7245:1;7234:9;7230:17;7221:6;7151:97;:::i;:::-;6981:274;;;;:::o;7261:118::-;7348:24;7366:5;7348:24;:::i;:::-;7343:3;7336:37;7261:118;;:::o;7385:222::-;7478:4;7516:2;7505:9;7501:18;7493:26;;7529:71;7597:1;7586:9;7582:17;7573:6;7529:71;:::i;:::-;7385:222;;;;:::o;7613:619::-;7690:6;7698;7706;7755:2;7743:9;7734:7;7730:23;7726:32;7723:119;;;7761:79;;:::i;:::-;7723:119;7881:1;7906:53;7951:7;7942:6;7931:9;7927:22;7906:53;:::i;:::-;7896:63;;7852:117;8008:2;8034:53;8079:7;8070:6;8059:9;8055:22;8034:53;:::i;:::-;8024:63;;7979:118;8136:2;8162:53;8207:7;8198:6;8187:9;8183:22;8162:53;:::i;:::-;8152:63;;8107:118;7613:619;;;;;:::o;8238:86::-;8273:7;8313:4;8306:5;8302:16;8291:27;;8238:86;;;:::o;8330:112::-;8413:22;8429:5;8413:22;:::i;:::-;8408:3;8401:35;8330:112;;:::o;8448:214::-;8537:4;8575:2;8564:9;8560:18;8552:26;;8588:67;8652:1;8641:9;8637:17;8628:6;8588:67;:::i;:::-;8448:214;;;;:::o;8668:118::-;8755:24;8773:5;8755:24;:::i;:::-;8750:3;8743:37;8668:118;;:::o;8792:222::-;8885:4;8923:2;8912:9;8908:18;8900:26;;8936:71;9004:1;8993:9;8989:17;8980:6;8936:71;:::i;:::-;8792:222;;;;:::o;9020:474::-;9088:6;9096;9145:2;9133:9;9124:7;9120:23;9116:32;9113:119;;;9151:79;;:::i;:::-;9113:119;9271:1;9296:53;9341:7;9332:6;9321:9;9317:22;9296:53;:::i;:::-;9286:63;;9242:117;9398:2;9424:53;9469:7;9460:6;9449:9;9445:22;9424:53;:::i;:::-;9414:63;;9369:118;9020:474;;;;;:::o;9500:329::-;9559:6;9608:2;9596:9;9587:7;9583:23;9579:32;9576:119;;;9614:79;;:::i;:::-;9576:119;9734:1;9759:53;9804:7;9795:6;9784:9;9780:22;9759:53;:::i;:::-;9749:63;;9705:117;9500:329;;;;:::o;9835:116::-;9905:21;9920:5;9905:21;:::i;:::-;9898:5;9895:32;9885:60;;9941:1;9938;9931:12;9885:60;9835:116;:::o;9957:133::-;10000:5;10038:6;10025:20;10016:29;;10054:30;10078:5;10054:30;:::i;:::-;9957:133;;;;:::o;10096:323::-;10152:6;10201:2;10189:9;10180:7;10176:23;10172:32;10169:119;;;10207:79;;:::i;:::-;10169:119;10327:1;10352:50;10394:7;10385:6;10374:9;10370:22;10352:50;:::i;:::-;10342:60;;10298:114;10096:323;;;;:::o;10425:329::-;10484:6;10533:2;10521:9;10512:7;10508:23;10504:32;10501:119;;;10539:79;;:::i;:::-;10501:119;10659:1;10684:53;10729:7;10720:6;10709:9;10705:22;10684:53;:::i;:::-;10674:63;;10630:117;10425:329;;;;:::o;10760:117::-;10869:1;10866;10859:12;10900:568;10973:8;10983:6;11033:3;11026:4;11018:6;11014:17;11010:27;11000:122;;11041:79;;:::i;:::-;11000:122;11154:6;11141:20;11131:30;;11184:18;11176:6;11173:30;11170:117;;;11206:79;;:::i;:::-;11170:117;11320:4;11312:6;11308:17;11296:29;;11374:3;11366:4;11358:6;11354:17;11344:8;11340:32;11337:41;11334:128;;;11381:79;;:::i;:::-;11334:128;10900:568;;;;;:::o;11474:698::-;11566:6;11574;11582;11631:2;11619:9;11610:7;11606:23;11602:32;11599:119;;;11637:79;;:::i;:::-;11599:119;11785:1;11774:9;11770:17;11757:31;11815:18;11807:6;11804:30;11801:117;;;11837:79;;:::i;:::-;11801:117;11950:80;12022:7;12013:6;12002:9;11998:22;11950:80;:::i;:::-;11932:98;;;;11728:312;12079:2;12105:50;12147:7;12138:6;12127:9;12123:22;12105:50;:::i;:::-;12095:60;;12050:115;11474:698;;;;;:::o;12178:474::-;12246:6;12254;12303:2;12291:9;12282:7;12278:23;12274:32;12271:119;;;12309:79;;:::i;:::-;12271:119;12429:1;12454:53;12499:7;12490:6;12479:9;12475:22;12454:53;:::i;:::-;12444:63;;12400:117;12556:2;12582:53;12627:7;12618:6;12607:9;12603:22;12582:53;:::i;:::-;12572:63;;12527:118;12178:474;;;;;:::o;12658:182::-;12798:34;12794:1;12786:6;12782:14;12775:58;12658:182;:::o;12846:366::-;12988:3;13009:67;13073:2;13068:3;13009:67;:::i;:::-;13002:74;;13085:93;13174:3;13085:93;:::i;:::-;13203:2;13198:3;13194:12;13187:19;;12846:366;;;:::o;13218:419::-;13384:4;13422:2;13411:9;13407:18;13399:26;;13471:9;13465:4;13461:20;13457:1;13446:9;13442:17;13435:47;13499:131;13625:4;13499:131;:::i;:::-;13491:139;;13218:419;;;:::o;13643:180::-;13691:77;13688:1;13681:88;13788:4;13785:1;13778:15;13812:4;13809:1;13802:15;13829:180;13877:77;13874:1;13867:88;13974:4;13971:1;13964:15;13998:4;13995:1;13988:15;14015:233;14054:3;14077:24;14095:5;14077:24;:::i;:::-;14068:33;;14123:66;14116:5;14113:77;14110:103;;14193:18;;:::i;:::-;14110:103;14240:1;14233:5;14229:13;14222:20;;14015:233;;;:::o;14254:225::-;14394:34;14390:1;14382:6;14378:14;14371:58;14463:8;14458:2;14450:6;14446:15;14439:33;14254:225;:::o;14485:366::-;14627:3;14648:67;14712:2;14707:3;14648:67;:::i;:::-;14641:74;;14724:93;14813:3;14724:93;:::i;:::-;14842:2;14837:3;14833:12;14826:19;;14485:366;;;:::o;14857:419::-;15023:4;15061:2;15050:9;15046:18;15038:26;;15110:9;15104:4;15100:20;15096:1;15085:9;15081:17;15074:47;15138:131;15264:4;15138:131;:::i;:::-;15130:139;;14857:419;;;:::o;15282:223::-;15422:34;15418:1;15410:6;15406:14;15399:58;15491:6;15486:2;15478:6;15474:15;15467:31;15282:223;:::o;15511:366::-;15653:3;15674:67;15738:2;15733:3;15674:67;:::i;:::-;15667:74;;15750:93;15839:3;15750:93;:::i;:::-;15868:2;15863:3;15859:12;15852:19;;15511:366;;;:::o;15883:419::-;16049:4;16087:2;16076:9;16072:18;16064:26;;16136:9;16130:4;16126:20;16122:1;16111:9;16107:17;16100:47;16164:131;16290:4;16164:131;:::i;:::-;16156:139;;15883:419;;;:::o;16308:221::-;16448:34;16444:1;16436:6;16432:14;16425:58;16517:4;16512:2;16504:6;16500:15;16493:29;16308:221;:::o;16535:366::-;16677:3;16698:67;16762:2;16757:3;16698:67;:::i;:::-;16691:74;;16774:93;16863:3;16774:93;:::i;:::-;16892:2;16887:3;16883:12;16876:19;;16535:366;;;:::o;16907:419::-;17073:4;17111:2;17100:9;17096:18;17088:26;;17160:9;17154:4;17150:20;17146:1;17135:9;17131:17;17124:47;17188:131;17314:4;17188:131;:::i;:::-;17180:139;;16907:419;;;:::o;17332:224::-;17472:34;17468:1;17460:6;17456:14;17449:58;17541:7;17536:2;17528:6;17524:15;17517:32;17332:224;:::o;17562:366::-;17704:3;17725:67;17789:2;17784:3;17725:67;:::i;:::-;17718:74;;17801:93;17890:3;17801:93;:::i;:::-;17919:2;17914:3;17910:12;17903:19;;17562:366;;;:::o;17934:419::-;18100:4;18138:2;18127:9;18123:18;18115:26;;18187:9;18181:4;18177:20;18173:1;18162:9;18158:17;18151:47;18215:131;18341:4;18215:131;:::i;:::-;18207:139;;17934:419;;;:::o;18359:222::-;18499:34;18495:1;18487:6;18483:14;18476:58;18568:5;18563:2;18555:6;18551:15;18544:30;18359:222;:::o;18587:366::-;18729:3;18750:67;18814:2;18809:3;18750:67;:::i;:::-;18743:74;;18826:93;18915:3;18826:93;:::i;:::-;18944:2;18939:3;18935:12;18928:19;;18587:366;;;:::o;18959:419::-;19125:4;19163:2;19152:9;19148:18;19140:26;;19212:9;19206:4;19202:20;19198:1;19187:9;19183:17;19176:47;19240:131;19366:4;19240:131;:::i;:::-;19232:139;;18959:419;;;:::o;19384:228::-;19524:34;19520:1;19512:6;19508:14;19501:58;19593:11;19588:2;19580:6;19576:15;19569:36;19384:228;:::o;19618:366::-;19760:3;19781:67;19845:2;19840:3;19781:67;:::i;:::-;19774:74;;19857:93;19946:3;19857:93;:::i;:::-;19975:2;19970:3;19966:12;19959:19;;19618:366;;;:::o;19990:419::-;20156:4;20194:2;20183:9;20179:18;20171:26;;20243:9;20237:4;20233:20;20229:1;20218:9;20214:17;20207:47;20271:131;20397:4;20271:131;:::i;:::-;20263:139;;19990:419;;;:::o;20415:250::-;20555:34;20551:1;20543:6;20539:14;20532:58;20624:33;20619:2;20611:6;20607:15;20600:58;20415:250;:::o;20671:366::-;20813:3;20834:67;20898:2;20893:3;20834:67;:::i;:::-;20827:74;;20910:93;20999:3;20910:93;:::i;:::-;21028:2;21023:3;21019:12;21012:19;;20671:366;;;:::o;21043:419::-;21209:4;21247:2;21236:9;21232:18;21224:26;;21296:9;21290:4;21286:20;21282:1;21271:9;21267:17;21260:47;21324:131;21450:4;21324:131;:::i;:::-;21316:139;;21043:419;;;:::o;21468:178::-;21608:30;21604:1;21596:6;21592:14;21585:54;21468:178;:::o;21652:366::-;21794:3;21815:67;21879:2;21874:3;21815:67;:::i;:::-;21808:74;;21891:93;21980:3;21891:93;:::i;:::-;22009:2;22004:3;22000:12;21993:19;;21652:366;;;:::o;22024:419::-;22190:4;22228:2;22217:9;22213:18;22205:26;;22277:9;22271:4;22267:20;22263:1;22252:9;22248:17;22241:47;22305:131;22431:4;22305:131;:::i;:::-;22297:139;;22024:419;;;:::o;22449:222::-;22589:34;22585:1;22577:6;22573:14;22566:58;22658:5;22653:2;22645:6;22641:15;22634:30;22449:222;:::o;22677:366::-;22819:3;22840:67;22904:2;22899:3;22840:67;:::i;:::-;22833:74;;22916:93;23005:3;22916:93;:::i;:::-;23034:2;23029:3;23025:12;23018:19;;22677:366;;;:::o;23049:419::-;23215:4;23253:2;23242:9;23238:18;23230:26;;23302:9;23296:4;23292:20;23288:1;23277:9;23273:17;23266:47;23330:131;23456:4;23330:131;:::i;:::-;23322:139;;23049:419;;;:::o;23474:191::-;23514:3;23533:20;23551:1;23533:20;:::i;:::-;23528:25;;23567:20;23585:1;23567:20;:::i;:::-;23562:25;;23610:1;23607;23603:9;23596:16;;23631:3;23628:1;23625:10;23622:36;;;23638:18;;:::i;:::-;23622:36;23474:191;;;;:::o;23671:222::-;23811:34;23807:1;23799:6;23795:14;23788:58;23880:5;23875:2;23867:6;23863:15;23856:30;23671:222;:::o;23899:366::-;24041:3;24062:67;24126:2;24121:3;24062:67;:::i;:::-;24055:74;;24138:93;24227:3;24138:93;:::i;:::-;24256:2;24251:3;24247:12;24240:19;;23899:366;;;:::o;24271:419::-;24437:4;24475:2;24464:9;24460:18;24452:26;;24524:9;24518:4;24514:20;24510:1;24499:9;24495:17;24488:47;24552:131;24678:4;24552:131;:::i;:::-;24544:139;;24271:419;;;:::o;24696:194::-;24736:4;24756:20;24774:1;24756:20;:::i;:::-;24751:25;;24790:20;24808:1;24790:20;:::i;:::-;24785:25;;24834:1;24831;24827:9;24819:17;;24858:1;24852:4;24849:11;24846:37;;;24863:18;;:::i;:::-;24846:37;24696:194;;;;:::o;24896:229::-;25036:34;25032:1;25024:6;25020:14;25013:58;25105:12;25100:2;25092:6;25088:15;25081:37;24896:229;:::o;25131:366::-;25273:3;25294:67;25358:2;25353:3;25294:67;:::i;:::-;25287:74;;25370:93;25459:3;25370:93;:::i;:::-;25488:2;25483:3;25479:12;25472:19;;25131:366;;;:::o;25503:419::-;25669:4;25707:2;25696:9;25692:18;25684:26;;25756:9;25750:4;25746:20;25742:1;25731:9;25727:17;25720:47;25784:131;25910:4;25784:131;:::i;:::-;25776:139;;25503:419;;;:::o;25928:143::-;25985:5;26016:6;26010:13;26001:22;;26032:33;26059:5;26032:33;:::i;:::-;25928:143;;;;:::o;26077:351::-;26147:6;26196:2;26184:9;26175:7;26171:23;26167:32;26164:119;;;26202:79;;:::i;:::-;26164:119;26322:1;26347:64;26403:7;26394:6;26383:9;26379:22;26347:64;:::i;:::-;26337:74;;26293:128;26077:351;;;;:::o;26434:85::-;26479:7;26508:5;26497:16;;26434:85;;;:::o;26525:158::-;26583:9;26616:61;26634:42;26643:32;26669:5;26643:32;:::i;:::-;26634:42;:::i;:::-;26616:61;:::i;:::-;26603:74;;26525:158;;;:::o;26689:147::-;26784:45;26823:5;26784:45;:::i;:::-;26779:3;26772:58;26689:147;;:::o;26842:114::-;26909:6;26943:5;26937:12;26927:22;;26842:114;;;:::o;26962:184::-;27061:11;27095:6;27090:3;27083:19;27135:4;27130:3;27126:14;27111:29;;26962:184;;;;:::o;27152:132::-;27219:4;27242:3;27234:11;;27272:4;27267:3;27263:14;27255:22;;27152:132;;;:::o;27290:108::-;27367:24;27385:5;27367:24;:::i;:::-;27362:3;27355:37;27290:108;;:::o;27404:179::-;27473:10;27494:46;27536:3;27528:6;27494:46;:::i;:::-;27572:4;27567:3;27563:14;27549:28;;27404:179;;;;:::o;27589:113::-;27659:4;27691;27686:3;27682:14;27674:22;;27589:113;;;:::o;27738:732::-;27857:3;27886:54;27934:5;27886:54;:::i;:::-;27956:86;28035:6;28030:3;27956:86;:::i;:::-;27949:93;;28066:56;28116:5;28066:56;:::i;:::-;28145:7;28176:1;28161:284;28186:6;28183:1;28180:13;28161:284;;;28262:6;28256:13;28289:63;28348:3;28333:13;28289:63;:::i;:::-;28282:70;;28375:60;28428:6;28375:60;:::i;:::-;28365:70;;28221:224;28208:1;28205;28201:9;28196:14;;28161:284;;;28165:14;28461:3;28454:10;;27862:608;;;27738:732;;;;:::o;28476:831::-;28739:4;28777:3;28766:9;28762:19;28754:27;;28791:71;28859:1;28848:9;28844:17;28835:6;28791:71;:::i;:::-;28872:80;28948:2;28937:9;28933:18;28924:6;28872:80;:::i;:::-;28999:9;28993:4;28989:20;28984:2;28973:9;28969:18;28962:48;29027:108;29130:4;29121:6;29027:108;:::i;:::-;29019:116;;29145:72;29213:2;29202:9;29198:18;29189:6;29145:72;:::i;:::-;29227:73;29295:3;29284:9;29280:19;29271:6;29227:73;:::i;:::-;28476:831;;;;;;;;:::o;29313:180::-;29361:77;29358:1;29351:88;29458:4;29455:1;29448:15;29482:4;29479:1;29472:15;29499:185;29539:1;29556:20;29574:1;29556:20;:::i;:::-;29551:25;;29590:20;29608:1;29590:20;:::i;:::-;29585:25;;29629:1;29619:35;;29634:18;;:::i;:::-;29619:35;29676:1;29673;29669:9;29664:14;;29499:185;;;;:::o;29690:177::-;29830:29;29826:1;29818:6;29814:14;29807:53;29690:177;:::o;29873:366::-;30015:3;30036:67;30100:2;30095:3;30036:67;:::i;:::-;30029:74;;30112:93;30201:3;30112:93;:::i;:::-;30230:2;30225:3;30221:12;30214:19;;29873:366;;;:::o;30245:419::-;30411:4;30449:2;30438:9;30434:18;30426:26;;30498:9;30492:4;30488:20;30484:1;30473:9;30469:17;30462:47;30526:131;30652:4;30526:131;:::i;:::-;30518:139;;30245:419;;;:::o;30670:410::-;30710:7;30733:20;30751:1;30733:20;:::i;:::-;30728:25;;30767:20;30785:1;30767:20;:::i;:::-;30762:25;;30822:1;30819;30815:9;30844:30;30862:11;30844:30;:::i;:::-;30833:41;;31023:1;31014:7;31010:15;31007:1;31004:22;30984:1;30977:9;30957:83;30934:139;;31053:18;;:::i;:::-;30934:139;30718:362;30670:410;;;;:::o;31086:220::-;31226:34;31222:1;31214:6;31210:14;31203:58;31295:3;31290:2;31282:6;31278:15;31271:28;31086:220;:::o;31312:366::-;31454:3;31475:67;31539:2;31534:3;31475:67;:::i;:::-;31468:74;;31551:93;31640:3;31551:93;:::i;:::-;31669:2;31664:3;31660:12;31653:19;;31312:366;;;:::o;31684:419::-;31850:4;31888:2;31877:9;31873:18;31865:26;;31937:9;31931:4;31927:20;31923:1;31912:9;31908:17;31901:47;31965:131;32091:4;31965:131;:::i;:::-;31957:139;;31684:419;;;:::o
Swarm Source
ipfs://4f58dd66ec03fd70592c2fe6f130bdf2dd471fb7e94e1ec019c823e8537dbe28
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.