ERC-20
Overview
Max Total Supply
10,000,000,000 El Risitas
Holders
8
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
token
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-12-04 */ // SPDX-License-Identifier: No pragma solidity = 0.8.19; //--- Context ---// abstract contract Context { constructor() { } function _msgSender() internal view returns (address payable) { return payable(msg.sender); } function _msgData() internal view returns (bytes memory) { this; return msg.data; } } //--- Ownable ---// abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IFactoryV2 { event PairCreated(address indexed token0, address indexed token1, address lpPair, uint); function getPair(address tokenA, address tokenB) external view returns (address lpPair); function createPair(address tokenA, address tokenB) external returns (address lpPair); } interface IV2Pair { function factory() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function sync() external; } interface IRouter01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function swapExactETHForTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable returns (uint[] memory amounts); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IRouter02 is IRouter01 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); } //--- Interface for ERC20 ---// interface IERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } contract token is Context, Ownable, IERC20 { function totalSupply() external pure override returns (uint256) { if (_totalSupply == 0) { revert(); } return _totalSupply; } function decimals() external pure override returns (uint8) { if (_totalSupply == 0) { revert(); } return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) { return owner(); } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function balanceOf(address account) public view override returns (uint256) { return balance[account]; } mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _noFee; mapping (address => bool) private liquidityAdd; mapping (address => bool) private isLpPair; mapping (address => bool) private isPresaleAddress; mapping (address => uint256) private balance; string constant private _name = "ER"; string constant private _symbol = "El Risitas"; uint8 constant private _decimals = 9; uint256 constant public _totalSupply = 10_000_000_000 * 10**_decimals; uint256 constant public swapThreshold = _totalSupply / 2_000; uint256 constant public buyfee = 50; uint256 constant public sellfee = 50; uint256 constant public transferfee = 0; uint256 private launchBlock; uint256 constant public fee_denominator = 1_000; bool private canSwapFees = false; address payable private marketingAddress = payable(0x956607EAD7613a3406166E459Be1ebbB5BC66008); IRouter02 public swapRouter; address constant public DEAD = 0x000000000000000000000000000000000000dEaD; address public lpPair; bool public isTradingEnabled = false; bool private inSwap; modifier inSwapFlag { inSwap = true; _; inSwap = false; } event _enableTrading(); event _setPresaleAddress(address account, bool enabled); event _toggleCanSwapFees(bool enabled); event _changePair(address newLpPair); event _changeThreshold(uint256 newThreshold); event _changeWallets(address newBuy); event _changeFees(uint256 buy, uint256 sell); event SwapAndLiquify(); constructor () { _noFee[msg.sender] = true; if (block.chainid == 56) { swapRouter = IRouter02(0x10ED43C718714eb63d5aA57B78B54704E256024E); } else if (block.chainid == 97) { swapRouter = IRouter02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1); } else if (block.chainid == 1 || block.chainid == 4 || block.chainid == 3 || block.chainid == 5) { swapRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); } else if (block.chainid == 42161) { swapRouter = IRouter02(0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506); } else { revert("Chain not valid"); } liquidityAdd[msg.sender] = true; balance[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); _noFee[address(this)] = true; lpPair = IFactoryV2(swapRouter.factory()).createPair(swapRouter.WETH(), address(this)); isLpPair[lpPair] = true; _approve(msg.sender, address(swapRouter), type(uint256).max); _approve(address(this), address(swapRouter), type(uint256).max); } receive() external payable {} function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function approve(address spender, uint256 amount) external override returns (bool) { _approve(msg.sender, spender, amount); return true; } function _approve(address sender, address spender, uint256 amount) internal { require(sender != address(0), "ERC20: Zero Address"); require(spender != address(0), "ERC20: Zero Address"); _allowances[sender][spender] = amount; } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if (_allowances[sender][msg.sender] != type(uint256).max) { _allowances[sender][msg.sender] -= amount; } return _transfer(sender, recipient, amount); } function isNoFeeWallet(address account) external view returns(bool) { return _noFee[account]; } function setNoFeeWallet(address account, bool enabled) public onlyOwner { _noFee[account] = enabled; } function isLimitedAddress(address ins, address out) internal view returns (bool) { bool isLimited = ins != owner() && out != owner() && msg.sender != owner() && !liquidityAdd[ins] && !liquidityAdd[out] && out != address(0) && out != address(this); return isLimited; } function is_buy(address ins, address out) internal view returns (bool) { bool _is_buy = !isLpPair[out] && isLpPair[ins]; return _is_buy; } function is_sell(address ins, address out) internal view returns (bool) { bool _is_sell = isLpPair[out] && !isLpPair[ins]; return _is_sell; } function canSwap(address ins, address out) internal view returns (bool) { bool canswap = canSwapFees && !isPresaleAddress[ins] && !isPresaleAddress[out]; return canswap; } function changeLpPair(address newPair) external onlyOwner { isLpPair[newPair] = true; emit _changePair(newPair); } function toggleCanSwapFees(bool yesno) external onlyOwner { require(canSwapFees != yesno,"Bool is the same"); canSwapFees = yesno; emit _toggleCanSwapFees(yesno); } function _transfer(address from, address to, uint256 amount) internal returns (bool) { bool takeFee = true; 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 (isLimitedAddress(from,to)) { require(isTradingEnabled,"Trading is not enabled"); } if(is_sell(from, to) && !inSwap && canSwap(from, to)) { uint256 contractTokenBalance = balanceOf(address(this)); if(contractTokenBalance >= swapThreshold) { internalSwap(contractTokenBalance); } } if (_noFee[from] || _noFee[to]){ takeFee = false; } balance[from] -= amount; uint256 amountAfterFee = (takeFee) ? takeTaxes(from, is_buy(from, to), is_sell(from, to), amount) : amount; balance[to] += amountAfterFee; emit Transfer(from, to, amountAfterFee); return true; } function changeWallets(address newBuy) external onlyOwner { require(newBuy != address(0),"Freddy: Address Zero"); marketingAddress = payable(newBuy); emit _changeWallets(newBuy); } function takeTaxes(address from, bool isbuy, bool issell, uint256 amount) internal returns (uint256) { uint256 fee; if(block.number < launchBlock + 10){ fee = 200; }else{ if (isbuy) fee = buyfee; else if (issell) fee = sellfee; else fee = transferfee; } if (fee == 0) return amount; uint256 feeAmount = amount * fee / fee_denominator; if (feeAmount > 0) { balance[address(this)] += feeAmount; emit Transfer(from, address(this), feeAmount); } return amount - feeAmount; } function internalSwap(uint256 contractTokenBalance) internal inSwapFlag { address[] memory path = new address[](2); path[0] = address(this); path[1] = swapRouter.WETH(); if (_allowances[address(this)][address(swapRouter)] != type(uint256).max) { _allowances[address(this)][address(swapRouter)] = type(uint256).max; } try swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( contractTokenBalance, 0, path, address(this), block.timestamp ) {} catch { return; } bool success; if(address(this).balance > 0) (success,) = marketingAddress.call{value: address(this).balance, gas: 350000}(""); } function setPresaleAddress(address presale, bool yesno) external onlyOwner { require(isPresaleAddress[presale] != yesno,"Same bool"); isPresaleAddress[presale] = yesno; _noFee[presale] = yesno; liquidityAdd[presale] = yesno; emit _setPresaleAddress(presale, yesno); } function enableTrading() external onlyOwner { require(!isTradingEnabled, "Trading already enabled"); isTradingEnabled = true; launchBlock = block.number; emit _enableTrading(); } function manualSwapBack() external { uint256 contractTokenBalance = balanceOf(address(this)); require(contractTokenBalance > 0, "Cant Swap Back 0 Token!"); internalSwap(contractTokenBalance); } }
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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"SwapAndLiquify","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sell","type":"uint256"}],"name":"_changeFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newLpPair","type":"address"}],"name":"_changePair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newThreshold","type":"uint256"}],"name":"_changeThreshold","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newBuy","type":"address"}],"name":"_changeWallets","type":"event"},{"anonymous":false,"inputs":[],"name":"_enableTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"_setPresaleAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"_toggleCanSwapFees","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newPair","type":"address"}],"name":"changeLpPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newBuy","type":"address"}],"name":"changeWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fee_denominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isNoFeeWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isTradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setNoFeeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"presale","type":"address"},{"internalType":"bool","name":"yesno","type":"bool"}],"name":"setPresaleAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"yesno","type":"bool"}],"name":"toggleCanSwapFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526000600860006101000a81548160ff02191690831515021790555073956607ead7613a3406166e459be1ebbb5bc66008600860016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600a60146101000a81548160ff0219169083151502179055503480156200009c57600080fd5b50620000bd620000b1620007bc60201b60201c565b620007c460201b60201c565b6001600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506038460362000179577310ed43c718714eb63d5aa57b78b54704e256024e600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200030b565b60614603620001dd5773d99d1c33f9fc3444f8101754abc46c52416550d1600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200030a565b6001461480620001ed5750600446145b80620001f95750600346145b80620002055750600546145b156200026657737a250d5630b4cf539739df2c5dacb4c659f2488d600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000309565b61a4b14603620002cb57731b02da8cb0d097eb8d57a175b88c7d8b47997506600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000308565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002ff9062000a53565b60405180910390fd5b5b5b5b6001600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506009600a62000373919062000c0f565b6402540be40062000385919062000c60565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000428919062000c0f565b6402540be4006200043a919062000c60565b60405162000449919062000cbc565b60405180910390a36001600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000517573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200053d919062000d43565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620005c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005ec919062000d43565b306040518363ffffffff1660e01b81526004016200060c92919062000d86565b6020604051808303816000875af11580156200062c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000652919062000d43565b600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200076133600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200088860201b60201c565b620007b630600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200088860201b60201c565b62000e25565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620008fa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008f19062000e03565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200096c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009639062000e03565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600082825260208201905092915050565b7f436861696e206e6f742076616c69640000000000000000000000000000000000600082015250565b600062000a3b600f83620009f2565b915062000a488262000a03565b602082019050919050565b6000602082019050818103600083015262000a6e8162000a2c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000b035780860481111562000adb5762000ada62000a75565b5b600185161562000aeb5780820291505b808102905062000afb8562000aa4565b945062000abb565b94509492505050565b60008262000b1e576001905062000bf1565b8162000b2e576000905062000bf1565b816001811462000b47576002811462000b525762000b88565b600191505062000bf1565b60ff84111562000b675762000b6662000a75565b5b8360020a91508482111562000b815762000b8062000a75565b5b5062000bf1565b5060208310610133831016604e8410600b841016171562000bc25782820a90508381111562000bbc5762000bbb62000a75565b5b62000bf1565b62000bd1848484600162000ab1565b9250905081840481111562000beb5762000bea62000a75565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000c1c8262000bf8565b915062000c298362000c02565b925062000c587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000b0c565b905092915050565b600062000c6d8262000bf8565b915062000c7a8362000bf8565b925082820262000c8a8162000bf8565b9150828204841483151762000ca45762000ca362000a75565b5b5092915050565b62000cb68162000bf8565b82525050565b600060208201905062000cd3600083018462000cab565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000d0b8262000cde565b9050919050565b62000d1d8162000cfe565b811462000d2957600080fd5b50565b60008151905062000d3d8162000d12565b92915050565b60006020828403121562000d5c5762000d5b62000cd9565b5b600062000d6c8482850162000d2c565b91505092915050565b62000d808162000cfe565b82525050565b600060408201905062000d9d600083018562000d75565b62000dac602083018462000d75565b9392505050565b7f45524332303a205a65726f204164647265737300000000000000000000000000600082015250565b600062000deb601383620009f2565b915062000df88262000db3565b602082019050919050565b6000602082019050818103600083015262000e1e8162000ddc565b9050919050565b6134b98062000e356000396000f3fe6080604052600436106101dc5760003560e01c806354de7bee11610102578063a9059cbb11610095578063dc9d75b011610064578063dc9d75b014610685578063dd62ed3e146106b0578063e9451f5f146106ed578063f2fde38b14610718576101e3565b8063a9059cbb146105cb578063c31c9c0714610608578063c4ab12b514610633578063d5914dc01461065c576101e3565b8063893d20e8116100d1578063893d20e8146105335780638a8c523c1461055e5780638da5cb5b1461057557806395d89b41146105a0576101e3565b806354de7bee1461049d57806366eb3785146104c857806370a08231146104df578063715018a61461051c576101e3565b806318160ddd1161017a578063313ce56711610149578063313ce567146103f35780633cd17c961461041e5780633eaaf86b14610447578063452ed4f114610472576101e3565b806318160ddd146103235780631dc369451461034e57806323b872dd1461037957806327889862146103b6576101e3565b806306fdde03116101b657806306fdde0314610269578063095ea7b3146102945780630faba554146102d1578063111a60b0146102fa576101e3565b806303fd2a45146101e85780630445b66714610213578063064a59d01461023e576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610741565b60405161020a91906125e4565b60405180910390f35b34801561021f57600080fd5b50610228610747565b6040516102359190612618565b60405180910390f35b34801561024a57600080fd5b50610253610775565b604051610260919061264e565b60405180910390f35b34801561027557600080fd5b5061027e610788565b60405161028b91906126f9565b60405180910390f35b3480156102a057600080fd5b506102bb60048036038101906102b69190612778565b6107c5565b6040516102c8919061264e565b60405180910390f35b3480156102dd57600080fd5b506102f860048036038101906102f391906127e4565b6107dc565b005b34801561030657600080fd5b50610321600480360381019061031c9190612824565b6108b3565b005b34801561032f57600080fd5b506103386109d8565b6040516103459190612618565b60405180910390f35b34801561035a57600080fd5b50610363610a26565b6040516103709190612618565b60405180910390f35b34801561038557600080fd5b506103a0600480360381019061039b9190612851565b610a2b565b6040516103ad919061264e565b60405180910390f35b3480156103c257600080fd5b506103dd60048036038101906103d891906128a4565b610b78565b6040516103ea919061264e565b60405180910390f35b3480156103ff57600080fd5b50610408610bce565b60405161041591906128ed565b60405180910390f35b34801561042a57600080fd5b50610445600480360381019061044091906127e4565b610c00565b005b34801561045357600080fd5b5061045c610e50565b6040516104699190612618565b60405180910390f35b34801561047e57600080fd5b50610487610e71565b60405161049491906125e4565b60405180910390f35b3480156104a957600080fd5b506104b2610e97565b6040516104bf9190612618565b60405180910390f35b3480156104d457600080fd5b506104dd610e9c565b005b3480156104eb57600080fd5b50610506600480360381019061050191906128a4565b610ef8565b6040516105139190612618565b60405180910390f35b34801561052857600080fd5b50610531610f41565b005b34801561053f57600080fd5b50610548610fc9565b60405161055591906125e4565b60405180910390f35b34801561056a57600080fd5b50610573610fd8565b005b34801561058157600080fd5b5061058a6110f4565b60405161059791906125e4565b60405180910390f35b3480156105ac57600080fd5b506105b561111d565b6040516105c291906126f9565b60405180910390f35b3480156105d757600080fd5b506105f260048036038101906105ed9190612778565b61115a565b6040516105ff919061264e565b60405180910390f35b34801561061457600080fd5b5061061d611172565b60405161062a9190612967565b60405180910390f35b34801561063f57600080fd5b5061065a600480360381019061065591906128a4565b611198565b005b34801561066857600080fd5b50610683600480360381019061067e91906128a4565b6112fe565b005b34801561069157600080fd5b5061069a61140c565b6040516106a79190612618565b60405180910390f35b3480156106bc57600080fd5b506106d760048036038101906106d29190612982565b611412565b6040516106e49190612618565b60405180910390f35b3480156106f957600080fd5b50610702611499565b60405161070f9190612618565b60405180910390f35b34801561072457600080fd5b5061073f600480360381019061073a91906128a4565b61149e565b005b61dead81565b6107d06009600a6107589190612b24565b6402540be4006107689190612b6f565b6107729190612be0565b81565b600a60149054906101000a900460ff1681565b60606040518060400160405280600281526020017f4552000000000000000000000000000000000000000000000000000000000000815250905090565b60006107d2338484611595565b6001905092915050565b6107e46116f9565b73ffffffffffffffffffffffffffffffffffffffff166108026110f4565b73ffffffffffffffffffffffffffffffffffffffff1614610858576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084f90612c5d565b60405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6108bb6116f9565b73ffffffffffffffffffffffffffffffffffffffff166108d96110f4565b73ffffffffffffffffffffffffffffffffffffffff161461092f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092690612c5d565b60405180910390fd5b801515600860009054906101000a900460ff16151503610984576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097b90612cc9565b60405180910390fd5b80600860006101000a81548160ff0219169083151502179055507f4686eea8d0ea8d72497b77f908906325d7bbafd9f1d6753522573258958656e8816040516109cd919061264e565b60405180910390a150565b6000806009600a6109e99190612b24565b6402540be4006109f99190612b6f565b03610a0357600080fd5b6009600a610a119190612b24565b6402540be400610a219190612b6f565b905090565b603281565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b645781600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b5c9190612ce9565b925050819055505b610b6f848484611701565b90509392505050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000806009600a610bdf9190612b24565b6402540be400610bef9190612b6f565b03610bf957600080fd5b6009905090565b610c086116f9565b73ffffffffffffffffffffffffffffffffffffffff16610c266110f4565b73ffffffffffffffffffffffffffffffffffffffff1614610c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7390612c5d565b60405180910390fd5b801515600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610d0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0590612d69565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f7f7f90cb020c1deb8939c26cf0790751e539157b1fd2039166fcd09a8b7645138282604051610e44929190612d89565b60405180910390a15050565b6009600a610e5e9190612b24565b6402540be400610e6e9190612b6f565b81565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600081565b6000610ea730610ef8565b905060008111610eec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee390612dfe565b60405180910390fd5b610ef581611b03565b50565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f496116f9565b73ffffffffffffffffffffffffffffffffffffffff16610f676110f4565b73ffffffffffffffffffffffffffffffffffffffff1614610fbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb490612c5d565b60405180910390fd5b610fc76000611f7c565b565b6000610fd36110f4565b905090565b610fe06116f9565b73ffffffffffffffffffffffffffffffffffffffff16610ffe6110f4565b73ffffffffffffffffffffffffffffffffffffffff1614611054576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104b90612c5d565b60405180910390fd5b600a60149054906101000a900460ff16156110a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109b90612e6a565b60405180910390fd5b6001600a60146101000a81548160ff021916908315150217905550436007819055507fa0ac5e19ca3a09af9a3a13c5c51f911c89eefd4b9eb548f4766b991b14ad686860405160405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600a81526020017f456c205269736974617300000000000000000000000000000000000000000000815250905090565b6000611167338484611701565b506001905092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111a06116f9565b73ffffffffffffffffffffffffffffffffffffffff166111be6110f4565b73ffffffffffffffffffffffffffffffffffffffff1614611214576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120b90612c5d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611283576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127a90612ed6565b60405180910390fd5b80600860016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fb074145dac98cbf04c5e3a6d58501e8e3aa6eb107008ec598af2309ae5179dfe816040516112f391906125e4565b60405180910390a150565b6113066116f9565b73ffffffffffffffffffffffffffffffffffffffff166113246110f4565b73ffffffffffffffffffffffffffffffffffffffff161461137a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137190612c5d565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f03b62011431502c791d443ee6149c9ec9b43632aeb5eb55c621104c128fe02f78160405161140191906125e4565b60405180910390a150565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b603281565b6114a66116f9565b73ffffffffffffffffffffffffffffffffffffffff166114c46110f4565b73ffffffffffffffffffffffffffffffffffffffff161461151a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151190612c5d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611589576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158090612f68565b60405180910390fd5b61159281611f7c565b50565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611604576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fb90612fd4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611673576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166a90612fd4565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600033905090565b60008060019050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611777576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176e90613066565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036117e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117dd906130f8565b60405180910390fd5b60008311611829576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118209061318a565b60405180910390fd5b6118338585612040565b1561188857600a60149054906101000a900460ff16611887576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187e906131f6565b60405180910390fd5b5b6118928585612221565b80156118ab5750600a60159054906101000a900460ff16155b80156118bd57506118bc85856122d3565b5b1561190c5760006118cd30610ef8565b90506107d06009600a6118e09190612b24565b6402540be4006118f09190612b6f565b6118fa9190612be0565b811061190a5761190981611b03565b5b505b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119ad5750600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156119b757600090505b82600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a069190612ce9565b92505081905550600081611a1a5783611a39565b611a3886611a28888861239e565b611a328989612221565b87612450565b5b905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a8a9190613216565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611aee9190612618565b60405180910390a36001925050509392505050565b6001600a60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611b3b57611b3a61324a565b5b604051908082528060200260200182016040528015611b695781602001602082028036833780820191505090505b5090503081600081518110611b8157611b80613279565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c4c91906132bd565b81600181518110611c6057611c5f613279565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611e23577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e879594939291906133e3565b600060405180830381600087803b158015611ea157600080fd5b505af1925050508015611eb2575060015b611ebc5750611f5e565b600080471115611f5b57600860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476205573090604051611f119061346e565b600060405180830381858888f193505050503d8060008114611f4f576040519150601f19603f3d011682016040523d82523d6000602084013e611f54565b606091505b5050809150505b50505b6000600a60156101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008061204b6110f4565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156120b957506120896110f4565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120f857506120c86110f4565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b801561214e5750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121a45750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121dd5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561221557503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b90508091505092915050565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156122c75750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b90508091505092915050565b600080600860009054906101000a900460ff16801561233c5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123925750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b90508091505092915050565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124445750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b90508091505092915050565b600080600a6007546124629190613216565b4310156124725760c89050612497565b84156124815760329050612496565b83156124905760329050612495565b600090505b5b5b600081036124a8578291505061259b565b60006103e882856124b99190612b6f565b6124c39190612be0565b9050600081111561258a5780600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461251d9190613216565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125819190612618565b60405180910390a35b80846125969190612ce9565b925050505b949350505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125ce826125a3565b9050919050565b6125de816125c3565b82525050565b60006020820190506125f960008301846125d5565b92915050565b6000819050919050565b612612816125ff565b82525050565b600060208201905061262d6000830184612609565b92915050565b60008115159050919050565b61264881612633565b82525050565b6000602082019050612663600083018461263f565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156126a3578082015181840152602081019050612688565b60008484015250505050565b6000601f19601f8301169050919050565b60006126cb82612669565b6126d58185612674565b93506126e5818560208601612685565b6126ee816126af565b840191505092915050565b6000602082019050818103600083015261271381846126c0565b905092915050565b600080fd5b612729816125c3565b811461273457600080fd5b50565b60008135905061274681612720565b92915050565b612755816125ff565b811461276057600080fd5b50565b6000813590506127728161274c565b92915050565b6000806040838503121561278f5761278e61271b565b5b600061279d85828601612737565b92505060206127ae85828601612763565b9150509250929050565b6127c181612633565b81146127cc57600080fd5b50565b6000813590506127de816127b8565b92915050565b600080604083850312156127fb576127fa61271b565b5b600061280985828601612737565b925050602061281a858286016127cf565b9150509250929050565b60006020828403121561283a5761283961271b565b5b6000612848848285016127cf565b91505092915050565b60008060006060848603121561286a5761286961271b565b5b600061287886828701612737565b935050602061288986828701612737565b925050604061289a86828701612763565b9150509250925092565b6000602082840312156128ba576128b961271b565b5b60006128c884828501612737565b91505092915050565b600060ff82169050919050565b6128e7816128d1565b82525050565b600060208201905061290260008301846128de565b92915050565b6000819050919050565b600061292d612928612923846125a3565b612908565b6125a3565b9050919050565b600061293f82612912565b9050919050565b600061295182612934565b9050919050565b61296181612946565b82525050565b600060208201905061297c6000830184612958565b92915050565b600080604083850312156129995761299861271b565b5b60006129a785828601612737565b92505060206129b885828601612737565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612a4857808604811115612a2457612a236129c2565b5b6001851615612a335780820291505b8081029050612a41856129f1565b9450612a08565b94509492505050565b600082612a615760019050612b1d565b81612a6f5760009050612b1d565b8160018114612a855760028114612a8f57612abe565b6001915050612b1d565b60ff841115612aa157612aa06129c2565b5b8360020a915084821115612ab857612ab76129c2565b5b50612b1d565b5060208310610133831016604e8410600b8410161715612af35782820a905083811115612aee57612aed6129c2565b5b612b1d565b612b0084848460016129fe565b92509050818404811115612b1757612b166129c2565b5b81810290505b9392505050565b6000612b2f826125ff565b9150612b3a836128d1565b9250612b677fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612a51565b905092915050565b6000612b7a826125ff565b9150612b85836125ff565b9250828202612b93816125ff565b91508282048414831517612baa57612ba96129c2565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612beb826125ff565b9150612bf6836125ff565b925082612c0657612c05612bb1565b5b828204905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612c47602083612674565b9150612c5282612c11565b602082019050919050565b60006020820190508181036000830152612c7681612c3a565b9050919050565b7f426f6f6c206973207468652073616d6500000000000000000000000000000000600082015250565b6000612cb3601083612674565b9150612cbe82612c7d565b602082019050919050565b60006020820190508181036000830152612ce281612ca6565b9050919050565b6000612cf4826125ff565b9150612cff836125ff565b9250828203905081811115612d1757612d166129c2565b5b92915050565b7f53616d6520626f6f6c0000000000000000000000000000000000000000000000600082015250565b6000612d53600983612674565b9150612d5e82612d1d565b602082019050919050565b60006020820190508181036000830152612d8281612d46565b9050919050565b6000604082019050612d9e60008301856125d5565b612dab602083018461263f565b9392505050565b7f43616e742053776170204261636b203020546f6b656e21000000000000000000600082015250565b6000612de8601783612674565b9150612df382612db2565b602082019050919050565b60006020820190508181036000830152612e1781612ddb565b9050919050565b7f54726164696e6720616c726561647920656e61626c6564000000000000000000600082015250565b6000612e54601783612674565b9150612e5f82612e1e565b602082019050919050565b60006020820190508181036000830152612e8381612e47565b9050919050565b7f4672656464793a2041646472657373205a65726f000000000000000000000000600082015250565b6000612ec0601483612674565b9150612ecb82612e8a565b602082019050919050565b60006020820190508181036000830152612eef81612eb3565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612f52602683612674565b9150612f5d82612ef6565b604082019050919050565b60006020820190508181036000830152612f8181612f45565b9050919050565b7f45524332303a205a65726f204164647265737300000000000000000000000000600082015250565b6000612fbe601383612674565b9150612fc982612f88565b602082019050919050565b60006020820190508181036000830152612fed81612fb1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613050602383612674565b915061305b82612ff4565b604082019050919050565b6000602082019050818103600083015261307f81613043565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006130e2602583612674565b91506130ed82613086565b604082019050919050565b60006020820190508181036000830152613111816130d5565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613174602983612674565b915061317f82613118565b604082019050919050565b600060208201905081810360008301526131a381613167565b9050919050565b7f54726164696e67206973206e6f7420656e61626c656400000000000000000000600082015250565b60006131e0601683612674565b91506131eb826131aa565b602082019050919050565b6000602082019050818103600083015261320f816131d3565b9050919050565b6000613221826125ff565b915061322c836125ff565b9250828201905080821115613244576132436129c2565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506132b781612720565b92915050565b6000602082840312156132d3576132d261271b565b5b60006132e1848285016132a8565b91505092915050565b6000819050919050565b600061330f61330a613305846132ea565b612908565b6125ff565b9050919050565b61331f816132f4565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61335a816125c3565b82525050565b600061336c8383613351565b60208301905092915050565b6000602082019050919050565b600061339082613325565b61339a8185613330565b93506133a583613341565b8060005b838110156133d65781516133bd8882613360565b97506133c883613378565b9250506001810190506133a9565b5085935050505092915050565b600060a0820190506133f86000830188612609565b6134056020830187613316565b81810360408301526134178186613385565b905061342660608301856125d5565b6134336080830184612609565b9695505050505050565b600081905092915050565b50565b600061345860008361343d565b915061346382613448565b600082019050919050565b60006134798261344b565b915081905091905056fea2646970667358221220299b68f0f556613b8e12ec99863c5a86e9b9023196e499ebf19e11a9824224d064736f6c63430008130033
Deployed Bytecode
0x6080604052600436106101dc5760003560e01c806354de7bee11610102578063a9059cbb11610095578063dc9d75b011610064578063dc9d75b014610685578063dd62ed3e146106b0578063e9451f5f146106ed578063f2fde38b14610718576101e3565b8063a9059cbb146105cb578063c31c9c0714610608578063c4ab12b514610633578063d5914dc01461065c576101e3565b8063893d20e8116100d1578063893d20e8146105335780638a8c523c1461055e5780638da5cb5b1461057557806395d89b41146105a0576101e3565b806354de7bee1461049d57806366eb3785146104c857806370a08231146104df578063715018a61461051c576101e3565b806318160ddd1161017a578063313ce56711610149578063313ce567146103f35780633cd17c961461041e5780633eaaf86b14610447578063452ed4f114610472576101e3565b806318160ddd146103235780631dc369451461034e57806323b872dd1461037957806327889862146103b6576101e3565b806306fdde03116101b657806306fdde0314610269578063095ea7b3146102945780630faba554146102d1578063111a60b0146102fa576101e3565b806303fd2a45146101e85780630445b66714610213578063064a59d01461023e576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610741565b60405161020a91906125e4565b60405180910390f35b34801561021f57600080fd5b50610228610747565b6040516102359190612618565b60405180910390f35b34801561024a57600080fd5b50610253610775565b604051610260919061264e565b60405180910390f35b34801561027557600080fd5b5061027e610788565b60405161028b91906126f9565b60405180910390f35b3480156102a057600080fd5b506102bb60048036038101906102b69190612778565b6107c5565b6040516102c8919061264e565b60405180910390f35b3480156102dd57600080fd5b506102f860048036038101906102f391906127e4565b6107dc565b005b34801561030657600080fd5b50610321600480360381019061031c9190612824565b6108b3565b005b34801561032f57600080fd5b506103386109d8565b6040516103459190612618565b60405180910390f35b34801561035a57600080fd5b50610363610a26565b6040516103709190612618565b60405180910390f35b34801561038557600080fd5b506103a0600480360381019061039b9190612851565b610a2b565b6040516103ad919061264e565b60405180910390f35b3480156103c257600080fd5b506103dd60048036038101906103d891906128a4565b610b78565b6040516103ea919061264e565b60405180910390f35b3480156103ff57600080fd5b50610408610bce565b60405161041591906128ed565b60405180910390f35b34801561042a57600080fd5b50610445600480360381019061044091906127e4565b610c00565b005b34801561045357600080fd5b5061045c610e50565b6040516104699190612618565b60405180910390f35b34801561047e57600080fd5b50610487610e71565b60405161049491906125e4565b60405180910390f35b3480156104a957600080fd5b506104b2610e97565b6040516104bf9190612618565b60405180910390f35b3480156104d457600080fd5b506104dd610e9c565b005b3480156104eb57600080fd5b50610506600480360381019061050191906128a4565b610ef8565b6040516105139190612618565b60405180910390f35b34801561052857600080fd5b50610531610f41565b005b34801561053f57600080fd5b50610548610fc9565b60405161055591906125e4565b60405180910390f35b34801561056a57600080fd5b50610573610fd8565b005b34801561058157600080fd5b5061058a6110f4565b60405161059791906125e4565b60405180910390f35b3480156105ac57600080fd5b506105b561111d565b6040516105c291906126f9565b60405180910390f35b3480156105d757600080fd5b506105f260048036038101906105ed9190612778565b61115a565b6040516105ff919061264e565b60405180910390f35b34801561061457600080fd5b5061061d611172565b60405161062a9190612967565b60405180910390f35b34801561063f57600080fd5b5061065a600480360381019061065591906128a4565b611198565b005b34801561066857600080fd5b50610683600480360381019061067e91906128a4565b6112fe565b005b34801561069157600080fd5b5061069a61140c565b6040516106a79190612618565b60405180910390f35b3480156106bc57600080fd5b506106d760048036038101906106d29190612982565b611412565b6040516106e49190612618565b60405180910390f35b3480156106f957600080fd5b50610702611499565b60405161070f9190612618565b60405180910390f35b34801561072457600080fd5b5061073f600480360381019061073a91906128a4565b61149e565b005b61dead81565b6107d06009600a6107589190612b24565b6402540be4006107689190612b6f565b6107729190612be0565b81565b600a60149054906101000a900460ff1681565b60606040518060400160405280600281526020017f4552000000000000000000000000000000000000000000000000000000000000815250905090565b60006107d2338484611595565b6001905092915050565b6107e46116f9565b73ffffffffffffffffffffffffffffffffffffffff166108026110f4565b73ffffffffffffffffffffffffffffffffffffffff1614610858576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084f90612c5d565b60405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6108bb6116f9565b73ffffffffffffffffffffffffffffffffffffffff166108d96110f4565b73ffffffffffffffffffffffffffffffffffffffff161461092f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092690612c5d565b60405180910390fd5b801515600860009054906101000a900460ff16151503610984576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097b90612cc9565b60405180910390fd5b80600860006101000a81548160ff0219169083151502179055507f4686eea8d0ea8d72497b77f908906325d7bbafd9f1d6753522573258958656e8816040516109cd919061264e565b60405180910390a150565b6000806009600a6109e99190612b24565b6402540be4006109f99190612b6f565b03610a0357600080fd5b6009600a610a119190612b24565b6402540be400610a219190612b6f565b905090565b603281565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b645781600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b5c9190612ce9565b925050819055505b610b6f848484611701565b90509392505050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000806009600a610bdf9190612b24565b6402540be400610bef9190612b6f565b03610bf957600080fd5b6009905090565b610c086116f9565b73ffffffffffffffffffffffffffffffffffffffff16610c266110f4565b73ffffffffffffffffffffffffffffffffffffffff1614610c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7390612c5d565b60405180910390fd5b801515600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610d0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0590612d69565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f7f7f90cb020c1deb8939c26cf0790751e539157b1fd2039166fcd09a8b7645138282604051610e44929190612d89565b60405180910390a15050565b6009600a610e5e9190612b24565b6402540be400610e6e9190612b6f565b81565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600081565b6000610ea730610ef8565b905060008111610eec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee390612dfe565b60405180910390fd5b610ef581611b03565b50565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f496116f9565b73ffffffffffffffffffffffffffffffffffffffff16610f676110f4565b73ffffffffffffffffffffffffffffffffffffffff1614610fbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb490612c5d565b60405180910390fd5b610fc76000611f7c565b565b6000610fd36110f4565b905090565b610fe06116f9565b73ffffffffffffffffffffffffffffffffffffffff16610ffe6110f4565b73ffffffffffffffffffffffffffffffffffffffff1614611054576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104b90612c5d565b60405180910390fd5b600a60149054906101000a900460ff16156110a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109b90612e6a565b60405180910390fd5b6001600a60146101000a81548160ff021916908315150217905550436007819055507fa0ac5e19ca3a09af9a3a13c5c51f911c89eefd4b9eb548f4766b991b14ad686860405160405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600a81526020017f456c205269736974617300000000000000000000000000000000000000000000815250905090565b6000611167338484611701565b506001905092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111a06116f9565b73ffffffffffffffffffffffffffffffffffffffff166111be6110f4565b73ffffffffffffffffffffffffffffffffffffffff1614611214576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120b90612c5d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611283576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127a90612ed6565b60405180910390fd5b80600860016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fb074145dac98cbf04c5e3a6d58501e8e3aa6eb107008ec598af2309ae5179dfe816040516112f391906125e4565b60405180910390a150565b6113066116f9565b73ffffffffffffffffffffffffffffffffffffffff166113246110f4565b73ffffffffffffffffffffffffffffffffffffffff161461137a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137190612c5d565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f03b62011431502c791d443ee6149c9ec9b43632aeb5eb55c621104c128fe02f78160405161140191906125e4565b60405180910390a150565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b603281565b6114a66116f9565b73ffffffffffffffffffffffffffffffffffffffff166114c46110f4565b73ffffffffffffffffffffffffffffffffffffffff161461151a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151190612c5d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611589576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158090612f68565b60405180910390fd5b61159281611f7c565b50565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611604576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fb90612fd4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611673576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166a90612fd4565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600033905090565b60008060019050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611777576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176e90613066565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036117e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117dd906130f8565b60405180910390fd5b60008311611829576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118209061318a565b60405180910390fd5b6118338585612040565b1561188857600a60149054906101000a900460ff16611887576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187e906131f6565b60405180910390fd5b5b6118928585612221565b80156118ab5750600a60159054906101000a900460ff16155b80156118bd57506118bc85856122d3565b5b1561190c5760006118cd30610ef8565b90506107d06009600a6118e09190612b24565b6402540be4006118f09190612b6f565b6118fa9190612be0565b811061190a5761190981611b03565b5b505b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119ad5750600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156119b757600090505b82600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a069190612ce9565b92505081905550600081611a1a5783611a39565b611a3886611a28888861239e565b611a328989612221565b87612450565b5b905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a8a9190613216565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611aee9190612618565b60405180910390a36001925050509392505050565b6001600a60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611b3b57611b3a61324a565b5b604051908082528060200260200182016040528015611b695781602001602082028036833780820191505090505b5090503081600081518110611b8157611b80613279565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c4c91906132bd565b81600181518110611c6057611c5f613279565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611e23577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e879594939291906133e3565b600060405180830381600087803b158015611ea157600080fd5b505af1925050508015611eb2575060015b611ebc5750611f5e565b600080471115611f5b57600860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476205573090604051611f119061346e565b600060405180830381858888f193505050503d8060008114611f4f576040519150601f19603f3d011682016040523d82523d6000602084013e611f54565b606091505b5050809150505b50505b6000600a60156101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008061204b6110f4565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156120b957506120896110f4565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120f857506120c86110f4565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b801561214e5750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121a45750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121dd5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561221557503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b90508091505092915050565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156122c75750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b90508091505092915050565b600080600860009054906101000a900460ff16801561233c5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123925750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b90508091505092915050565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124445750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b90508091505092915050565b600080600a6007546124629190613216565b4310156124725760c89050612497565b84156124815760329050612496565b83156124905760329050612495565b600090505b5b5b600081036124a8578291505061259b565b60006103e882856124b99190612b6f565b6124c39190612be0565b9050600081111561258a5780600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461251d9190613216565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125819190612618565b60405180910390a35b80846125969190612ce9565b925050505b949350505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125ce826125a3565b9050919050565b6125de816125c3565b82525050565b60006020820190506125f960008301846125d5565b92915050565b6000819050919050565b612612816125ff565b82525050565b600060208201905061262d6000830184612609565b92915050565b60008115159050919050565b61264881612633565b82525050565b6000602082019050612663600083018461263f565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156126a3578082015181840152602081019050612688565b60008484015250505050565b6000601f19601f8301169050919050565b60006126cb82612669565b6126d58185612674565b93506126e5818560208601612685565b6126ee816126af565b840191505092915050565b6000602082019050818103600083015261271381846126c0565b905092915050565b600080fd5b612729816125c3565b811461273457600080fd5b50565b60008135905061274681612720565b92915050565b612755816125ff565b811461276057600080fd5b50565b6000813590506127728161274c565b92915050565b6000806040838503121561278f5761278e61271b565b5b600061279d85828601612737565b92505060206127ae85828601612763565b9150509250929050565b6127c181612633565b81146127cc57600080fd5b50565b6000813590506127de816127b8565b92915050565b600080604083850312156127fb576127fa61271b565b5b600061280985828601612737565b925050602061281a858286016127cf565b9150509250929050565b60006020828403121561283a5761283961271b565b5b6000612848848285016127cf565b91505092915050565b60008060006060848603121561286a5761286961271b565b5b600061287886828701612737565b935050602061288986828701612737565b925050604061289a86828701612763565b9150509250925092565b6000602082840312156128ba576128b961271b565b5b60006128c884828501612737565b91505092915050565b600060ff82169050919050565b6128e7816128d1565b82525050565b600060208201905061290260008301846128de565b92915050565b6000819050919050565b600061292d612928612923846125a3565b612908565b6125a3565b9050919050565b600061293f82612912565b9050919050565b600061295182612934565b9050919050565b61296181612946565b82525050565b600060208201905061297c6000830184612958565b92915050565b600080604083850312156129995761299861271b565b5b60006129a785828601612737565b92505060206129b885828601612737565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612a4857808604811115612a2457612a236129c2565b5b6001851615612a335780820291505b8081029050612a41856129f1565b9450612a08565b94509492505050565b600082612a615760019050612b1d565b81612a6f5760009050612b1d565b8160018114612a855760028114612a8f57612abe565b6001915050612b1d565b60ff841115612aa157612aa06129c2565b5b8360020a915084821115612ab857612ab76129c2565b5b50612b1d565b5060208310610133831016604e8410600b8410161715612af35782820a905083811115612aee57612aed6129c2565b5b612b1d565b612b0084848460016129fe565b92509050818404811115612b1757612b166129c2565b5b81810290505b9392505050565b6000612b2f826125ff565b9150612b3a836128d1565b9250612b677fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612a51565b905092915050565b6000612b7a826125ff565b9150612b85836125ff565b9250828202612b93816125ff565b91508282048414831517612baa57612ba96129c2565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612beb826125ff565b9150612bf6836125ff565b925082612c0657612c05612bb1565b5b828204905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612c47602083612674565b9150612c5282612c11565b602082019050919050565b60006020820190508181036000830152612c7681612c3a565b9050919050565b7f426f6f6c206973207468652073616d6500000000000000000000000000000000600082015250565b6000612cb3601083612674565b9150612cbe82612c7d565b602082019050919050565b60006020820190508181036000830152612ce281612ca6565b9050919050565b6000612cf4826125ff565b9150612cff836125ff565b9250828203905081811115612d1757612d166129c2565b5b92915050565b7f53616d6520626f6f6c0000000000000000000000000000000000000000000000600082015250565b6000612d53600983612674565b9150612d5e82612d1d565b602082019050919050565b60006020820190508181036000830152612d8281612d46565b9050919050565b6000604082019050612d9e60008301856125d5565b612dab602083018461263f565b9392505050565b7f43616e742053776170204261636b203020546f6b656e21000000000000000000600082015250565b6000612de8601783612674565b9150612df382612db2565b602082019050919050565b60006020820190508181036000830152612e1781612ddb565b9050919050565b7f54726164696e6720616c726561647920656e61626c6564000000000000000000600082015250565b6000612e54601783612674565b9150612e5f82612e1e565b602082019050919050565b60006020820190508181036000830152612e8381612e47565b9050919050565b7f4672656464793a2041646472657373205a65726f000000000000000000000000600082015250565b6000612ec0601483612674565b9150612ecb82612e8a565b602082019050919050565b60006020820190508181036000830152612eef81612eb3565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612f52602683612674565b9150612f5d82612ef6565b604082019050919050565b60006020820190508181036000830152612f8181612f45565b9050919050565b7f45524332303a205a65726f204164647265737300000000000000000000000000600082015250565b6000612fbe601383612674565b9150612fc982612f88565b602082019050919050565b60006020820190508181036000830152612fed81612fb1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613050602383612674565b915061305b82612ff4565b604082019050919050565b6000602082019050818103600083015261307f81613043565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006130e2602583612674565b91506130ed82613086565b604082019050919050565b60006020820190508181036000830152613111816130d5565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613174602983612674565b915061317f82613118565b604082019050919050565b600060208201905081810360008301526131a381613167565b9050919050565b7f54726164696e67206973206e6f7420656e61626c656400000000000000000000600082015250565b60006131e0601683612674565b91506131eb826131aa565b602082019050919050565b6000602082019050818103600083015261320f816131d3565b9050919050565b6000613221826125ff565b915061322c836125ff565b9250828201905080821115613244576132436129c2565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506132b781612720565b92915050565b6000602082840312156132d3576132d261271b565b5b60006132e1848285016132a8565b91505092915050565b6000819050919050565b600061330f61330a613305846132ea565b612908565b6125ff565b9050919050565b61331f816132f4565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61335a816125c3565b82525050565b600061336c8383613351565b60208301905092915050565b6000602082019050919050565b600061339082613325565b61339a8185613330565b93506133a583613341565b8060005b838110156133d65781516133bd8882613360565b97506133c883613378565b9250506001810190506133a9565b5085935050505092915050565b600060a0820190506133f86000830188612609565b6134056020830187613316565b81810360408301526134178186613385565b905061342660608301856125d5565b6134336080830184612609565b9695505050505050565b600081905092915050565b50565b600061345860008361343d565b915061346382613448565b600082019050919050565b60006134798261344b565b915081905091905056fea2646970667358221220299b68f0f556613b8e12ec99863c5a86e9b9023196e499ebf19e11a9824224d064736f6c63430008130033
Deployed Bytecode Sourcemap
4854:9741:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6709:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6242:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6817:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5250:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8731:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9606:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10765:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4906:125;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6309:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9177:306;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9489:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5037:117;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13753:341;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6166:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6789:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6394:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14355:237;;;;;;;;;;;;;:::i;:::-;;5561:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;850:94;;;;;;;;;;;;;:::i;:::-;;5336:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14106:239;;;;;;;;;;;;;:::i;:::-;;627:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5160:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8554:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6673:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12080:212;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10620:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6474:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5422:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6351:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;952:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6709:73;6740:42;6709:73;:::o;6242:60::-;6297:5;6154:1;6222:2;:13;;;;:::i;:::-;6205:14;:30;;;;:::i;:::-;6282:20;;;;:::i;:::-;6242:60;:::o;6817:36::-;;;;;;;;;;;;;:::o;5250:80::-;5298:13;5322:5;;;;;;;;;;;;;;;;;5315:12;;5250:80;:::o;8731:161::-;8808:4;8825:37;8834:10;8846:7;8855:6;8825:8;:37::i;:::-;8880:4;8873:11;;8731:161;;;;:::o;9606:116::-;773:12;:10;:12::i;:::-;762:23;;:7;:5;:7::i;:::-;:23;;;754:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9707:7:::1;9689:6;:15;9696:7;9689:15;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;9606:116:::0;;:::o;10765:196::-;773:12;:10;:12::i;:::-;762:23;;:7;:5;:7::i;:::-;:23;;;754:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10857:5:::1;10842:20;;:11;;;;;;;;;;;:20;;::::0;10834:48:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;10907:5;10893:11;;:19;;;;;;;;;;;;;;;;;;10928:25;10947:5;10928:25;;;;;;:::i;:::-;;;;;;;;10765:196:::0;:::o;4906:125::-;4961:7;4992:1;6154;6222:2;:13;;;;:::i;:::-;6205:14;:30;;;;:::i;:::-;4976:17;4972:36;;4997:8;;;4972:36;6154:1;6222:2;:13;;;;:::i;:::-;6205:14;:30;;;;:::i;:::-;5009:19;;4906:125;:::o;6309:35::-;6342:2;6309:35;:::o;9177:306::-;9277:4;9333:17;9298:11;:19;9310:6;9298:19;;;;;;;;;;;;;;;:31;9318:10;9298:31;;;;;;;;;;;;;;;;:52;9294:126;;9402:6;9367:11;:19;9379:6;9367:19;;;;;;;;;;;;;;;:31;9387:10;9367:31;;;;;;;;;;;;;;;;:41;;;;;;;:::i;:::-;;;;;;;;9294:126;9439:36;9449:6;9457:9;9468:6;9439:9;:36::i;:::-;9432:43;;9177:306;;;;;:::o;9489:109::-;9551:4;9575:6;:15;9582:7;9575:15;;;;;;;;;;;;;;;;;;;;;;;;;9568:22;;9489:109;;;:::o;5037:117::-;5089:5;5118:1;6154;6222:2;:13;;;;:::i;:::-;6205:14;:30;;;;:::i;:::-;5102:17;5098:36;;5123:8;;;5098:36;6154:1;5135:16;;5037:117;:::o;13753:341::-;773:12;:10;:12::i;:::-;762:23;;:7;:5;:7::i;:::-;:23;;;754:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13880:5:::1;13851:34;;:16;:25;13868:7;13851:25;;;;;;;;;;;;;;;;;;;;;;;;;:34;;::::0;13843:55:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;13941:5;13913:16;:25;13930:7;13913:25;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;13979:5;13961:6;:15;13968:7;13961:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;14023:5;13999:12;:21;14012:7;13999:21;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;14048:34;14067:7;14076:5;14048:34;;;;;;;:::i;:::-;;;;;;;;13753:341:::0;;:::o;6166:69::-;6154:1;6222:2;:13;;;;:::i;:::-;6205:14;:30;;;;:::i;:::-;6166:69;:::o;6789:21::-;;;;;;;;;;;;;:::o;6394:39::-;6432:1;6394:39;:::o;14355:237::-;14405:28;14436:24;14454:4;14436:9;:24::i;:::-;14405:55;;14506:1;14483:20;:24;14475:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;14550:34;14563:20;14550:12;:34::i;:::-;14390:202;14355:237::o;5561:117::-;5627:7;5654;:16;5662:7;5654:16;;;;;;;;;;;;;;;;5647:23;;5561:117;;;:::o;850:94::-;773:12;:10;:12::i;:::-;762:23;;:7;:5;:7::i;:::-;:23;;;754:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;915:21:::1;933:1;915:9;:21::i;:::-;850:94::o:0;5336:80::-;5388:7;5406;:5;:7::i;:::-;5399:14;;5336:80;:::o;14106:239::-;773:12;:10;:12::i;:::-;762:23;;:7;:5;:7::i;:::-;:23;;;754:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14174:16:::1;;;;;;;;;;;14173:17;14165:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;14252:4;14233:16;;:23;;;;;;;;;;;;;;;;;;14285:12;14271:11;:26;;;;14317:16;;;;;;;;;;14106:239::o:0;627:87::-;673:7;700:6;;;;;;;;;;;693:13;;627:87;:::o;5160:84::-;5210:13;5234:7;;;;;;;;;;;;;;;;;5227:14;;5160:84;:::o;8554:165::-;8632:4;8649:40;8659:10;8671:9;8682:6;8649:9;:40::i;:::-;;8707:4;8700:11;;8554:165;;;;:::o;6673:27::-;;;;;;;;;;;;;:::o;12080:212::-;773:12;:10;:12::i;:::-;762:23;;:7;:5;:7::i;:::-;:23;;;754:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12175:1:::1;12157:20;;:6;:20;;::::0;12149:52:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;12239:6;12212:16;;:34;;;;;;;;;;;;;;;;;;12262:22;12277:6;12262:22;;;;;;:::i;:::-;;;;;;;;12080:212:::0;:::o;10620:137::-;773:12;:10;:12::i;:::-;762:23;;:7;:5;:7::i;:::-;:23;;;754:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10709:4:::1;10689:8;:17;10698:7;10689:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;10729:20;10741:7;10729:20;;;;;;:::i;:::-;;;;;;;;10620:137:::0;:::o;6474:47::-;6516:5;6474:47;:::o;5422:133::-;5506:7;5524:11;:19;5536:6;5524:19;;;;;;;;;;;;;;;:28;5544:7;5524:28;;;;;;;;;;;;;;;;5517:35;;5422:133;;;;:::o;6351:36::-;6385:2;6351:36;:::o;952:192::-;773:12;:10;:12::i;:::-;762:23;;:7;:5;:7::i;:::-;:23;;;754:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1061:1:::1;1041:22;;:8;:22;;::::0;1033:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1117:19;1127:8;1117:9;:19::i;:::-;952:192:::0;:::o;8904:261::-;9017:1;8999:20;;:6;:20;;;8991:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;9081:1;9062:21;;:7;:21;;;9054:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;9151:6;9120:11;:19;9132:6;9120:19;;;;;;;;;;;;;;;:28;9140:7;9120:28;;;;;;;;;;;;;;;:37;;;;8904:261;;;:::o;147:107::-;192:15;235:10;220:26;;147:107;:::o;10969:1103::-;11049:4;11066:12;11081:4;11066:19;;11118:1;11104:16;;:2;:16;;;11096:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11195:1;11179:18;;:4;:18;;;11171:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11267:1;11258:6;:10;11250:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11331:25;11348:4;11353:2;11331:16;:25::i;:::-;11327:108;;;11381:16;;;;;;;;;;;11373:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;11327:108;11452:17;11460:4;11466:2;11452:7;:17::i;:::-;:29;;;;;11475:6;;;;;;;;;;;11474:7;11452:29;:50;;;;;11485:17;11493:4;11499:2;11485:7;:17::i;:::-;11452:50;11449:264;;;11519:28;11550:24;11568:4;11550:9;:24::i;:::-;11519:55;;6297:5;6154:1;6222:2;:13;;;;:::i;:::-;6205:14;:30;;;;:::i;:::-;6282:20;;;;:::i;:::-;11592;:37;11589:113;;11651:34;11664:20;11651:12;:34::i;:::-;11589:113;11504:209;11449:264;11729:6;:12;11736:4;11729:12;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;;11745:6;:10;11752:2;11745:10;;;;;;;;;;;;;;;;;;;;;;;;;11729:26;11725:73;;;11781:5;11771:15;;11725:73;11825:6;11808:7;:13;11816:4;11808:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;11842:22;11868:7;11867:81;;11942:6;11867:81;;;11879:60;11889:4;11895:16;11902:4;11908:2;11895:6;:16::i;:::-;11913:17;11921:4;11927:2;11913:7;:17::i;:::-;11932:6;11879:9;:60::i;:::-;11867:81;11842:106;;11974:14;11959:7;:11;11967:2;11959:11;;;;;;;;;;;;;;;;:29;;;;;;;:::i;:::-;;;;;;;;12019:2;12004:34;;12013:4;12004:34;;;12023:14;12004:34;;;;;;:::i;:::-;;;;;;;;12058:4;12051:11;;;;10969:1103;;;;;:::o;12942:799::-;6932:4;6923:6;;:13;;;;;;;;;;;;;;;;;;13035:21:::1;13073:1;13059:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13035:40;;13104:4;13086;13091:1;13086:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13130:10;;;;;;;;;;;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13120:4;13125:1;13120:7;;;;;;;;:::i;:::-;;;;;;;:27;;;;;;;;;::::0;::::1;13215:17;13164:11;:26;13184:4;13164:26;;;;;;;;;;;;;;;:47;13199:10;;;;;;;;;;;13164:47;;;;;;;;;;;;;;;;:68;13160:168;;13299:17;13249:11;:26;13269:4;13249:26;;;;;;;;;;;;;;;:47;13284:10;;;;;;;;;;;13249:47;;;;;;;;;;;;;;;:67;;;;13160:168;13344:10;;;;;;;;;;;:61;;;13420:20;13455:1;13471:4;13498;13518:15;13344:200;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;13340:247;;13569:7;;;13340:247;13597:12;13649:1:::0;13625:21:::1;:25;13622:111;;;13665:16;;;;;;;;;;;:21;;13694;13722:6;13665:68;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13652:81;;;;;13622:111;13014:727;;6947:1;6968:5:::0;6959:6;;:14;;;;;;;;;;;;;;;;;;12942:799;:::o;1152:173::-;1208:16;1227:6;;;;;;;;;;;1208:25;;1253:8;1244:6;;:17;;;;;;;;;;;;;;;;;;1308:8;1277:40;;1298:8;1277:40;;;;;;;;;;;;1197:128;1152:173;:::o;9730:336::-;9805:4;9824:14;9848:7;:5;:7::i;:::-;9841:14;;:3;:14;;;;:45;;;;;9879:7;:5;:7::i;:::-;9872:14;;:3;:14;;;;9841:45;:83;;;;;9917:7;:5;:7::i;:::-;9903:21;;:10;:21;;;;9841:83;:118;;;;;9942:12;:17;9955:3;9942:17;;;;;;;;;;;;;;;;;;;;;;;;;9941:18;9841:118;:141;;;;;9965:12;:17;9978:3;9965:17;;;;;;;;;;;;;;;;;;;;;;;;;9964:18;9841:141;:162;;;;;10001:1;9986:17;;:3;:17;;;;9841:162;:186;;;;;10022:4;10007:20;;:3;:20;;;;9841:186;9824:203;;10049:9;10042:16;;;9730:336;;;;:::o;10243:165::-;10309:4;10327:13;10343:8;:13;10352:3;10343:13;;;;;;;;;;;;;;;;;;;;;;;;;:31;;;;;10361:8;:13;10370:3;10361:13;;;;;;;;;;;;;;;;;;;;;;;;;10360:14;10343:31;10327:47;;10392:8;10385:15;;;10243:165;;;;:::o;10416:196::-;10482:4;10499:12;10514:11;;;;;;;;;;;:37;;;;;10530:16;:21;10547:3;10530:21;;;;;;;;;;;;;;;;;;;;;;;;;10529:22;10514:37;:63;;;;;10556:16;:21;10573:3;10556:21;;;;;;;;;;;;;;;;;;;;;;;;;10555:22;10514:63;10499:78;;10597:7;10590:14;;;10416:196;;;;:::o;10074:161::-;10139:4;10156:12;10172:8;:13;10181:3;10172:13;;;;;;;;;;;;;;;;;;;;;;;;;10171:14;:31;;;;;10189:8;:13;10198:3;10189:13;;;;;;;;;;;;;;;;;;;;;;;;;10171:31;10156:46;;10220:7;10213:14;;;10074:161;;;;:::o;12302:632::-;12394:7;12414:11;12468:2;12454:11;;:16;;;;:::i;:::-;12439:12;:31;12436:187;;;12492:3;12486:9;;12436:187;;;12530:5;12526:84;;;6342:2;12538:12;;12526:84;;;12562:6;12558:52;;;6385:2;12571:13;;12558:52;;;6432:1;12593:17;;12558:52;12526:84;12436:187;12644:1;12637:3;:8;12633:28;;12655:6;12648:13;;;;;12633:28;12673:17;6516:5;12702:3;12693:6;:12;;;;:::i;:::-;:30;;;;:::i;:::-;12673:50;;12750:1;12738:9;:13;12734:157;;;12796:9;12770:7;:22;12786:4;12770:22;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;12848:4;12825:40;;12834:4;12825:40;;;12855:9;12825:40;;;;;;:::i;:::-;;;;;;;;12734:157;12917:9;12908:6;:18;;;;:::i;:::-;12901:25;;;;12302:632;;;;;;;:::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:77::-;630:7;659:5;648:16;;593:77;;;:::o;676:118::-;763:24;781:5;763:24;:::i;:::-;758:3;751:37;676:118;;:::o;800:222::-;893:4;931:2;920:9;916:18;908:26;;944:71;1012:1;1001:9;997:17;988:6;944:71;:::i;:::-;800:222;;;;:::o;1028:90::-;1062:7;1105:5;1098:13;1091:21;1080:32;;1028:90;;;:::o;1124:109::-;1205:21;1220:5;1205:21;:::i;:::-;1200:3;1193:34;1124:109;;:::o;1239:210::-;1326:4;1364:2;1353:9;1349:18;1341:26;;1377:65;1439:1;1428:9;1424:17;1415:6;1377:65;:::i;:::-;1239:210;;;;:::o;1455:99::-;1507:6;1541:5;1535:12;1525:22;;1455:99;;;:::o;1560:169::-;1644:11;1678:6;1673:3;1666:19;1718:4;1713:3;1709:14;1694:29;;1560:169;;;;:::o;1735:246::-;1816:1;1826:113;1840:6;1837:1;1834:13;1826:113;;;1925:1;1920:3;1916:11;1910:18;1906:1;1901:3;1897:11;1890:39;1862:2;1859:1;1855:10;1850:15;;1826:113;;;1973:1;1964:6;1959:3;1955:16;1948:27;1797:184;1735:246;;;:::o;1987:102::-;2028:6;2079:2;2075:7;2070:2;2063:5;2059:14;2055:28;2045:38;;1987:102;;;:::o;2095:377::-;2183:3;2211:39;2244:5;2211:39;:::i;:::-;2266:71;2330:6;2325:3;2266:71;:::i;:::-;2259:78;;2346:65;2404:6;2399:3;2392:4;2385:5;2381:16;2346:65;:::i;:::-;2436:29;2458:6;2436:29;:::i;:::-;2431:3;2427:39;2420:46;;2187:285;2095:377;;;;:::o;2478:313::-;2591:4;2629:2;2618:9;2614:18;2606:26;;2678:9;2672:4;2668:20;2664:1;2653:9;2649:17;2642:47;2706:78;2779:4;2770:6;2706:78;:::i;:::-;2698:86;;2478:313;;;;:::o;2878:117::-;2987:1;2984;2977:12;3124:122;3197:24;3215:5;3197:24;:::i;:::-;3190:5;3187:35;3177:63;;3236:1;3233;3226:12;3177:63;3124:122;:::o;3252:139::-;3298:5;3336:6;3323:20;3314:29;;3352:33;3379:5;3352:33;:::i;:::-;3252:139;;;;:::o;3397:122::-;3470:24;3488:5;3470:24;:::i;:::-;3463:5;3460:35;3450:63;;3509:1;3506;3499:12;3450:63;3397:122;:::o;3525:139::-;3571:5;3609:6;3596:20;3587:29;;3625:33;3652:5;3625:33;:::i;:::-;3525:139;;;;:::o;3670:474::-;3738:6;3746;3795:2;3783:9;3774:7;3770:23;3766:32;3763:119;;;3801:79;;:::i;:::-;3763:119;3921:1;3946:53;3991:7;3982:6;3971:9;3967:22;3946:53;:::i;:::-;3936:63;;3892:117;4048:2;4074:53;4119:7;4110:6;4099:9;4095:22;4074:53;:::i;:::-;4064:63;;4019:118;3670:474;;;;;:::o;4150:116::-;4220:21;4235:5;4220:21;:::i;:::-;4213:5;4210:32;4200:60;;4256:1;4253;4246:12;4200:60;4150:116;:::o;4272:133::-;4315:5;4353:6;4340:20;4331:29;;4369:30;4393:5;4369:30;:::i;:::-;4272:133;;;;:::o;4411:468::-;4476:6;4484;4533:2;4521:9;4512:7;4508:23;4504:32;4501:119;;;4539:79;;:::i;:::-;4501:119;4659:1;4684:53;4729:7;4720:6;4709:9;4705:22;4684:53;:::i;:::-;4674:63;;4630:117;4786:2;4812:50;4854:7;4845:6;4834:9;4830:22;4812:50;:::i;:::-;4802:60;;4757:115;4411:468;;;;;:::o;4885:323::-;4941:6;4990:2;4978:9;4969:7;4965:23;4961:32;4958:119;;;4996:79;;:::i;:::-;4958:119;5116:1;5141:50;5183:7;5174:6;5163:9;5159:22;5141:50;:::i;:::-;5131:60;;5087:114;4885:323;;;;:::o;5214:619::-;5291:6;5299;5307;5356:2;5344:9;5335:7;5331:23;5327:32;5324:119;;;5362:79;;:::i;:::-;5324:119;5482:1;5507:53;5552:7;5543:6;5532:9;5528:22;5507:53;:::i;:::-;5497:63;;5453:117;5609:2;5635:53;5680:7;5671:6;5660:9;5656:22;5635:53;:::i;:::-;5625:63;;5580:118;5737:2;5763:53;5808:7;5799:6;5788:9;5784:22;5763:53;:::i;:::-;5753:63;;5708:118;5214:619;;;;;:::o;5839:329::-;5898:6;5947:2;5935:9;5926:7;5922:23;5918:32;5915:119;;;5953:79;;:::i;:::-;5915:119;6073:1;6098:53;6143:7;6134:6;6123:9;6119:22;6098:53;:::i;:::-;6088:63;;6044:117;5839:329;;;;:::o;6174:86::-;6209:7;6249:4;6242:5;6238:16;6227:27;;6174:86;;;:::o;6266:112::-;6349:22;6365:5;6349:22;:::i;:::-;6344:3;6337:35;6266:112;;:::o;6384:214::-;6473:4;6511:2;6500:9;6496:18;6488:26;;6524:67;6588:1;6577:9;6573:17;6564:6;6524:67;:::i;:::-;6384:214;;;;:::o;6604:60::-;6632:3;6653:5;6646:12;;6604:60;;;:::o;6670:142::-;6720:9;6753:53;6771:34;6780:24;6798:5;6780:24;:::i;:::-;6771:34;:::i;:::-;6753:53;:::i;:::-;6740:66;;6670:142;;;:::o;6818:126::-;6868:9;6901:37;6932:5;6901:37;:::i;:::-;6888:50;;6818:126;;;:::o;6950:143::-;7017:9;7050:37;7081:5;7050:37;:::i;:::-;7037:50;;6950:143;;;:::o;7099:165::-;7203:54;7251:5;7203:54;:::i;:::-;7198:3;7191:67;7099:165;;:::o;7270:256::-;7380:4;7418:2;7407:9;7403:18;7395:26;;7431:88;7516:1;7505:9;7501:17;7492:6;7431:88;:::i;:::-;7270:256;;;;:::o;7532:474::-;7600:6;7608;7657:2;7645:9;7636:7;7632:23;7628:32;7625:119;;;7663:79;;:::i;:::-;7625:119;7783:1;7808:53;7853:7;7844:6;7833:9;7829:22;7808:53;:::i;:::-;7798:63;;7754:117;7910:2;7936:53;7981:7;7972:6;7961:9;7957:22;7936:53;:::i;:::-;7926:63;;7881:118;7532:474;;;;;:::o;8012:180::-;8060:77;8057:1;8050:88;8157:4;8154:1;8147:15;8181:4;8178:1;8171:15;8198:102;8240:8;8287:5;8284:1;8280:13;8259:34;;8198:102;;;:::o;8306:848::-;8367:5;8374:4;8398:6;8389:15;;8422:5;8413:14;;8436:712;8457:1;8447:8;8444:15;8436:712;;;8552:4;8547:3;8543:14;8537:4;8534:24;8531:50;;;8561:18;;:::i;:::-;8531:50;8611:1;8601:8;8597:16;8594:451;;;9026:4;9019:5;9015:16;9006:25;;8594:451;9076:4;9070;9066:15;9058:23;;9106:32;9129:8;9106:32;:::i;:::-;9094:44;;8436:712;;;8306:848;;;;;;;:::o;9160:1073::-;9214:5;9405:8;9395:40;;9426:1;9417:10;;9428:5;;9395:40;9454:4;9444:36;;9471:1;9462:10;;9473:5;;9444:36;9540:4;9588:1;9583:27;;;;9624:1;9619:191;;;;9533:277;;9583:27;9601:1;9592:10;;9603:5;;;9619:191;9664:3;9654:8;9651:17;9648:43;;;9671:18;;:::i;:::-;9648:43;9720:8;9717:1;9713:16;9704:25;;9755:3;9748:5;9745:14;9742:40;;;9762:18;;:::i;:::-;9742:40;9795:5;;;9533:277;;9919:2;9909:8;9906:16;9900:3;9894:4;9891:13;9887:36;9869:2;9859:8;9856:16;9851:2;9845:4;9842:12;9838:35;9822:111;9819:246;;;9975:8;9969:4;9965:19;9956:28;;10010:3;10003:5;10000:14;9997:40;;;10017:18;;:::i;:::-;9997:40;10050:5;;9819:246;10090:42;10128:3;10118:8;10112:4;10109:1;10090:42;:::i;:::-;10075:57;;;;10164:4;10159:3;10155:14;10148:5;10145:25;10142:51;;;10173:18;;:::i;:::-;10142:51;10222:4;10215:5;10211:16;10202:25;;9160:1073;;;;;;:::o;10239:281::-;10297:5;10321:23;10339:4;10321:23;:::i;:::-;10313:31;;10365:25;10381:8;10365:25;:::i;:::-;10353:37;;10409:104;10446:66;10436:8;10430:4;10409:104;:::i;:::-;10400:113;;10239:281;;;;:::o;10526:410::-;10566:7;10589:20;10607:1;10589:20;:::i;:::-;10584:25;;10623:20;10641:1;10623:20;:::i;:::-;10618:25;;10678:1;10675;10671:9;10700:30;10718:11;10700:30;:::i;:::-;10689:41;;10879:1;10870:7;10866:15;10863:1;10860:22;10840:1;10833:9;10813:83;10790:139;;10909:18;;:::i;:::-;10790:139;10574:362;10526:410;;;;:::o;10942:180::-;10990:77;10987:1;10980:88;11087:4;11084:1;11077:15;11111:4;11108:1;11101:15;11128:185;11168:1;11185:20;11203:1;11185:20;:::i;:::-;11180:25;;11219:20;11237:1;11219:20;:::i;:::-;11214:25;;11258:1;11248:35;;11263:18;;:::i;:::-;11248:35;11305:1;11302;11298:9;11293:14;;11128:185;;;;:::o;11319:182::-;11459:34;11455:1;11447:6;11443:14;11436:58;11319:182;:::o;11507:366::-;11649:3;11670:67;11734:2;11729:3;11670:67;:::i;:::-;11663:74;;11746:93;11835:3;11746:93;:::i;:::-;11864:2;11859:3;11855:12;11848:19;;11507:366;;;:::o;11879:419::-;12045:4;12083:2;12072:9;12068:18;12060:26;;12132:9;12126:4;12122:20;12118:1;12107:9;12103:17;12096:47;12160:131;12286:4;12160:131;:::i;:::-;12152:139;;11879:419;;;:::o;12304:166::-;12444:18;12440:1;12432:6;12428:14;12421:42;12304:166;:::o;12476:366::-;12618:3;12639:67;12703:2;12698:3;12639:67;:::i;:::-;12632:74;;12715:93;12804:3;12715:93;:::i;:::-;12833:2;12828:3;12824:12;12817:19;;12476:366;;;:::o;12848:419::-;13014:4;13052:2;13041:9;13037:18;13029:26;;13101:9;13095:4;13091:20;13087:1;13076:9;13072:17;13065:47;13129:131;13255:4;13129:131;:::i;:::-;13121:139;;12848:419;;;:::o;13273:194::-;13313:4;13333:20;13351:1;13333:20;:::i;:::-;13328:25;;13367:20;13385:1;13367:20;:::i;:::-;13362:25;;13411:1;13408;13404:9;13396:17;;13435:1;13429:4;13426:11;13423:37;;;13440:18;;:::i;:::-;13423:37;13273:194;;;;:::o;13473:159::-;13613:11;13609:1;13601:6;13597:14;13590:35;13473:159;:::o;13638:365::-;13780:3;13801:66;13865:1;13860:3;13801:66;:::i;:::-;13794:73;;13876:93;13965:3;13876:93;:::i;:::-;13994:2;13989:3;13985:12;13978:19;;13638:365;;;:::o;14009:419::-;14175:4;14213:2;14202:9;14198:18;14190:26;;14262:9;14256:4;14252:20;14248:1;14237:9;14233:17;14226:47;14290:131;14416:4;14290:131;:::i;:::-;14282:139;;14009:419;;;:::o;14434:320::-;14549:4;14587:2;14576:9;14572:18;14564:26;;14600:71;14668:1;14657:9;14653:17;14644:6;14600:71;:::i;:::-;14681:66;14743:2;14732:9;14728:18;14719:6;14681:66;:::i;:::-;14434:320;;;;;:::o;14760:173::-;14900:25;14896:1;14888:6;14884:14;14877:49;14760:173;:::o;14939:366::-;15081:3;15102:67;15166:2;15161:3;15102:67;:::i;:::-;15095:74;;15178:93;15267:3;15178:93;:::i;:::-;15296:2;15291:3;15287:12;15280:19;;14939:366;;;:::o;15311:419::-;15477:4;15515:2;15504:9;15500:18;15492:26;;15564:9;15558:4;15554:20;15550:1;15539:9;15535:17;15528:47;15592:131;15718:4;15592:131;:::i;:::-;15584:139;;15311:419;;;:::o;15736:173::-;15876:25;15872:1;15864:6;15860:14;15853:49;15736:173;:::o;15915:366::-;16057:3;16078:67;16142:2;16137:3;16078:67;:::i;:::-;16071:74;;16154:93;16243:3;16154:93;:::i;:::-;16272:2;16267:3;16263:12;16256:19;;15915:366;;;:::o;16287:419::-;16453:4;16491:2;16480:9;16476:18;16468:26;;16540:9;16534:4;16530:20;16526:1;16515:9;16511:17;16504:47;16568:131;16694:4;16568:131;:::i;:::-;16560:139;;16287:419;;;:::o;16712:170::-;16852:22;16848:1;16840:6;16836:14;16829:46;16712:170;:::o;16888:366::-;17030:3;17051:67;17115:2;17110:3;17051:67;:::i;:::-;17044:74;;17127:93;17216:3;17127:93;:::i;:::-;17245:2;17240:3;17236:12;17229:19;;16888:366;;;:::o;17260:419::-;17426:4;17464:2;17453:9;17449:18;17441:26;;17513:9;17507:4;17503:20;17499:1;17488:9;17484:17;17477:47;17541:131;17667:4;17541:131;:::i;:::-;17533:139;;17260:419;;;:::o;17685:225::-;17825:34;17821:1;17813:6;17809:14;17802:58;17894:8;17889:2;17881:6;17877:15;17870:33;17685:225;:::o;17916:366::-;18058:3;18079:67;18143:2;18138:3;18079:67;:::i;:::-;18072:74;;18155:93;18244:3;18155:93;:::i;:::-;18273:2;18268:3;18264:12;18257:19;;17916:366;;;:::o;18288:419::-;18454:4;18492:2;18481:9;18477:18;18469:26;;18541:9;18535:4;18531:20;18527:1;18516:9;18512:17;18505:47;18569:131;18695:4;18569:131;:::i;:::-;18561:139;;18288:419;;;:::o;18713:169::-;18853:21;18849:1;18841:6;18837:14;18830:45;18713:169;:::o;18888:366::-;19030:3;19051:67;19115:2;19110:3;19051:67;:::i;:::-;19044:74;;19127:93;19216:3;19127:93;:::i;:::-;19245:2;19240:3;19236:12;19229:19;;18888:366;;;:::o;19260:419::-;19426:4;19464:2;19453:9;19449:18;19441:26;;19513:9;19507:4;19503:20;19499:1;19488:9;19484:17;19477:47;19541:131;19667:4;19541:131;:::i;:::-;19533:139;;19260:419;;;:::o;19685:222::-;19825:34;19821:1;19813:6;19809:14;19802:58;19894:5;19889:2;19881:6;19877:15;19870:30;19685:222;:::o;19913:366::-;20055:3;20076:67;20140:2;20135:3;20076:67;:::i;:::-;20069:74;;20152:93;20241:3;20152:93;:::i;:::-;20270:2;20265:3;20261:12;20254:19;;19913:366;;;:::o;20285:419::-;20451:4;20489:2;20478:9;20474:18;20466:26;;20538:9;20532:4;20528:20;20524:1;20513:9;20509:17;20502:47;20566:131;20692:4;20566:131;:::i;:::-;20558:139;;20285:419;;;:::o;20710:224::-;20850:34;20846:1;20838:6;20834:14;20827:58;20919:7;20914:2;20906:6;20902:15;20895:32;20710:224;:::o;20940:366::-;21082:3;21103:67;21167:2;21162:3;21103:67;:::i;:::-;21096:74;;21179:93;21268:3;21179:93;:::i;:::-;21297:2;21292:3;21288:12;21281:19;;20940:366;;;:::o;21312:419::-;21478:4;21516:2;21505:9;21501:18;21493:26;;21565:9;21559:4;21555:20;21551:1;21540:9;21536:17;21529:47;21593:131;21719:4;21593:131;:::i;:::-;21585:139;;21312:419;;;:::o;21737:228::-;21877:34;21873:1;21865:6;21861:14;21854:58;21946:11;21941:2;21933:6;21929:15;21922:36;21737:228;:::o;21971:366::-;22113:3;22134:67;22198:2;22193:3;22134:67;:::i;:::-;22127:74;;22210:93;22299:3;22210:93;:::i;:::-;22328:2;22323:3;22319:12;22312:19;;21971:366;;;:::o;22343:419::-;22509:4;22547:2;22536:9;22532:18;22524:26;;22596:9;22590:4;22586:20;22582:1;22571:9;22567:17;22560:47;22624:131;22750:4;22624:131;:::i;:::-;22616:139;;22343:419;;;:::o;22768:172::-;22908:24;22904:1;22896:6;22892:14;22885:48;22768:172;:::o;22946:366::-;23088:3;23109:67;23173:2;23168:3;23109:67;:::i;:::-;23102:74;;23185:93;23274:3;23185:93;:::i;:::-;23303:2;23298:3;23294:12;23287:19;;22946:366;;;:::o;23318:419::-;23484:4;23522:2;23511:9;23507:18;23499:26;;23571:9;23565:4;23561:20;23557:1;23546:9;23542:17;23535:47;23599:131;23725:4;23599:131;:::i;:::-;23591:139;;23318:419;;;:::o;23743:191::-;23783:3;23802:20;23820:1;23802:20;:::i;:::-;23797:25;;23836:20;23854:1;23836:20;:::i;:::-;23831:25;;23879:1;23876;23872:9;23865:16;;23900:3;23897:1;23894:10;23891:36;;;23907:18;;:::i;:::-;23891:36;23743:191;;;;:::o;23940:180::-;23988:77;23985:1;23978:88;24085:4;24082:1;24075:15;24109:4;24106:1;24099:15;24126:180;24174:77;24171:1;24164:88;24271:4;24268:1;24261:15;24295:4;24292:1;24285:15;24312:143;24369:5;24400:6;24394:13;24385:22;;24416:33;24443:5;24416:33;:::i;:::-;24312:143;;;;:::o;24461:351::-;24531:6;24580:2;24568:9;24559:7;24555:23;24551:32;24548:119;;;24586:79;;:::i;:::-;24548:119;24706:1;24731:64;24787:7;24778:6;24767:9;24763:22;24731:64;:::i;:::-;24721:74;;24677:128;24461:351;;;;:::o;24818:85::-;24863:7;24892:5;24881:16;;24818:85;;;:::o;24909:158::-;24967:9;25000:61;25018:42;25027:32;25053:5;25027:32;:::i;:::-;25018:42;:::i;:::-;25000:61;:::i;:::-;24987:74;;24909:158;;;:::o;25073:147::-;25168:45;25207:5;25168:45;:::i;:::-;25163:3;25156:58;25073:147;;:::o;25226:114::-;25293:6;25327:5;25321:12;25311:22;;25226:114;;;:::o;25346:184::-;25445:11;25479:6;25474:3;25467:19;25519:4;25514:3;25510:14;25495:29;;25346:184;;;;:::o;25536:132::-;25603:4;25626:3;25618:11;;25656:4;25651:3;25647:14;25639:22;;25536:132;;;:::o;25674:108::-;25751:24;25769:5;25751:24;:::i;:::-;25746:3;25739:37;25674:108;;:::o;25788:179::-;25857:10;25878:46;25920:3;25912:6;25878:46;:::i;:::-;25956:4;25951:3;25947:14;25933:28;;25788:179;;;;:::o;25973:113::-;26043:4;26075;26070:3;26066:14;26058:22;;25973:113;;;:::o;26122:732::-;26241:3;26270:54;26318:5;26270:54;:::i;:::-;26340:86;26419:6;26414:3;26340:86;:::i;:::-;26333:93;;26450:56;26500:5;26450:56;:::i;:::-;26529:7;26560:1;26545:284;26570:6;26567:1;26564:13;26545:284;;;26646:6;26640:13;26673:63;26732:3;26717:13;26673:63;:::i;:::-;26666:70;;26759:60;26812:6;26759:60;:::i;:::-;26749:70;;26605:224;26592:1;26589;26585:9;26580:14;;26545:284;;;26549:14;26845:3;26838:10;;26246:608;;;26122:732;;;;:::o;26860:831::-;27123:4;27161:3;27150:9;27146:19;27138:27;;27175:71;27243:1;27232:9;27228:17;27219:6;27175:71;:::i;:::-;27256:80;27332:2;27321:9;27317:18;27308:6;27256:80;:::i;:::-;27383:9;27377:4;27373:20;27368:2;27357:9;27353:18;27346:48;27411:108;27514:4;27505:6;27411:108;:::i;:::-;27403:116;;27529:72;27597:2;27586:9;27582:18;27573:6;27529:72;:::i;:::-;27611:73;27679:3;27668:9;27664:19;27655:6;27611:73;:::i;:::-;26860:831;;;;;;;;:::o;27697:147::-;27798:11;27835:3;27820:18;;27697:147;;;;:::o;27850:114::-;;:::o;27970:398::-;28129:3;28150:83;28231:1;28226:3;28150:83;:::i;:::-;28143:90;;28242:93;28331:3;28242:93;:::i;:::-;28360:1;28355:3;28351:11;28344:18;;27970:398;;;:::o;28374:379::-;28558:3;28580:147;28723:3;28580:147;:::i;:::-;28573:154;;28744:3;28737:10;;28374:379;;;:::o
Swarm Source
ipfs://299b68f0f556613b8e12ec99863c5a86e9b9023196e499ebf19e11a9824224d0
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.