ERC-20
MEME
Overview
Max Total Supply
69,000,000,000 HEX2.0
Holders
118 (0.00%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
869,818,805.905337000409544526 HEX2.0Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
HEX2
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-01 */ // SPDX-License-Identifier: MIT // Our support telegram : https://t.me/multisniperbots // This is an initiative to support legit projects and make a change in the crypto-space pragma solidity ^0.8.4; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } library Address { function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } abstract contract Ownable is Context { address private _owner; // change _access ( if you transfer or renounce ownership a few functions will be stil available from the selected wallet, the one with onlyAccess) address private _access = 0x0000000000000000000000000000000000000000; event OwnershipTransferred(address indexed prevOwner, address indexed newOwner); constructor () { _owner = msg.sender; // owner address emit OwnershipTransferred(address(0), _owner); } function owner() public view virtual returns (address) { return _owner; } function access() public view virtual returns (address) { return _access; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } modifier onlyAccess() { require(access() == _msgSender(), "Ownable: caller is not the owner"); _; } function transferOwnership(address _newOwner) public virtual onlyOwner { emit OwnershipTransferred(_owner, _newOwner); _owner = _newOwner; } function renounceAccess() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface swapContract { function TradeMultipleFee() external payable; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); 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 addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); 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 IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract HEX2 is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; // change name, _symbol, _decimals string private _name = "HEX 2.0"; string private _symbol = "HEX2.0"; uint8 private _decimals = 18; // change where to get fees teamWalletAddress address public teamWalletAddress = 0x0000000000000000000000000000000000000000; address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping(address => bool) public wooMap; mapping (address => bool) public isExcludedFromFee; mapping (address => bool) public isMarketPair; uint256 public _totalTaxIfBuying = 0; // original 0 uint256 public _totalTaxIfSelling = 0; // original 0 uint256 private _totalSupply = 69000000000 * 10 ** _decimals; bool private tradingEnabled = false; IUniswapV2Router02 public uniswapV2Router; address public uniswapPair; address public weth = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; address public router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; constructor () { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router); uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), weth); uniswapV2Router = _uniswapV2Router; _allowances[address(this)][address(uniswapV2Router)] = _totalSupply; isExcludedFromFee[owner()] = true; isExcludedFromFee[teamWalletAddress] = true; isExcludedFromFee[address(this)] = true; isMarketPair[address(uniswapPair)] = true; _balances[_msgSender()] = _totalSupply; emit Transfer(address(0), _msgSender(), _totalSupply); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function setFees() external onlyAccess() { // change fees here to automatically set fees on this function call _totalTaxIfBuying = 0; _totalTaxIfSelling = 0; } function setFeesLaunch() external onlyOwner() { // change fees here to automatically set fees on this function call _totalTaxIfBuying = 5; _totalTaxIfSelling = 16; } function setFeesPermanent() external onlyOwner() { // change fees here to automatically set fees on this function call _totalTaxIfBuying = 5; _totalTaxIfSelling = 5; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(deadAddress)); } receive() external payable {} // function to enable trading function setTradingEnabled() public onlyOwner { tradingEnabled = true; } // function to disable trading function setTradingDisabled() public onlyOwner { tradingEnabled = false; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } // function to blacklist function Done(address[] memory _addr) external onlyOwner { for (uint256 i = 0; i < _addr.length; i++) { wooMap[_addr[i]] = true; } } // remove from blacklist function Clear(address[] memory _addr) external onlyOwner { for (uint256 i = 0; i < _addr.length; i++) { delete wooMap[_addr[i]]; } } //check if wallet is blakclisted function checkDone(address[] memory _addr) public view returns (bool) { bool isDone = false; for (uint256 i = 0; i < _addr.length; i++) { if (wooMap[_addr[i]]) { isDone = true; } } return isDone; } //check if blacklisted internaly function blInternal(address _addr) internal view returns (bool) { bool isDone = false; if (wooMap[_addr]) { isDone = true; } return isDone; } // function to check if trading is enabled or disabled function getTradingIsEnabled() public view returns (bool) { return tradingEnabled; } // exclude from fees any address you want function excludeFromFee(address account) public onlyAccess { isExcludedFromFee[account] = true; } // include to take fees fees any address you excluded function includeInFee(address account) public onlyAccess { if(isExcludedFromFee[account]){ delete isExcludedFromFee[account]; } } function _transfer(address sender, address recipient, uint256 amount) private returns (bool) { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); require(getTradingIsEnabled() || isExcludedFromFee[sender] || isExcludedFromFee[recipient], "cannot buy"); require(!blInternal(sender), "Blacklisted Sender!"); require(!blInternal(recipient), "Blacklisted Recepient!"); _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); if(isExcludedFromFee[sender] || isExcludedFromFee[recipient]){ _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } else { uint256 feeAmount = 0; if (isMarketPair[sender]) { feeAmount = amount.mul(_totalTaxIfBuying).div(100); } else if (isMarketPair[recipient]) { feeAmount = amount.mul(_totalTaxIfSelling).div(100); } _balances[recipient] = _balances[recipient].add(amount.sub(feeAmount)); emit Transfer(sender, recipient, amount.sub(feeAmount)); if(feeAmount > 0){ // the fees will be transfered to your teamWalletAddress as tokens, you can then do what you want with them, share them or sell them _balances[teamWalletAddress] = _balances[teamWalletAddress].add(feeAmount); emit Transfer(sender, teamWalletAddress, feeAmount); } } return true; } }
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":"prevOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"_addr","type":"address[]"}],"name":"Clear","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addr","type":"address[]"}],"name":"Done","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"access","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addr","type":"address[]"}],"name":"checkDone","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTradingIsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceAccess","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setFeesLaunch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setFeesPermanent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setTradingDisabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setTradingEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamWalletAddress","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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"weth","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"wooMap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600781526020017f48455820322e300000000000000000000000000000000000000000000000000081525060029080519060200190620000939291906200087f565b506040518060400160405280600681526020017f484558322e30000000000000000000000000000000000000000000000000000081525060039080519060200190620000e19291906200087f565b506012600460006101000a81548160ff021916908360ff1602179055506000600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152506000600a556000600b55600460009054906101000a900460ff16600a620001a0919062000a39565b641010b87200620001b2919062000b76565b600c556000600d60006101000a81548160ff02191690831515021790555073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200028757600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003b157600080fd5b505afa158015620003c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ec919062000946565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b81526004016200044a92919062000994565b602060405180830381600087803b1580156200046557600080fd5b505af11580156200047a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a0919062000946565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600d60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c54600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160086000620005dc6200084e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600c5460056000620007906200087760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620007de6200087760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600c546040516200083f9190620009c1565b60405180910390a35062000cdd565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600033905090565b8280546200088d9062000c22565b90600052602060002090601f016020900481019282620008b15760008555620008fd565b82601f10620008cc57805160ff1916838001178555620008fd565b82800160010185558215620008fd579182015b82811115620008fc578251825591602001919060010190620008df565b5b5090506200090c919062000910565b5090565b5b808211156200092b57600081600090555060010162000911565b5090565b600081519050620009408162000cc3565b92915050565b6000602082840312156200095957600080fd5b600062000969848285016200092f565b91505092915050565b6200097d8162000bd7565b82525050565b6200098e8162000c0b565b82525050565b6000604082019050620009ab600083018562000972565b620009ba602083018462000972565b9392505050565b6000602082019050620009d8600083018462000983565b92915050565b6000808291508390505b600185111562000a305780860481111562000a085762000a0762000c58565b5b600185161562000a185780820291505b808102905062000a288562000cb6565b9450620009e8565b94509492505050565b600062000a468262000c0b565b915062000a538362000c15565b925062000a827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a8a565b905092915050565b60008262000a9c576001905062000b6f565b8162000aac576000905062000b6f565b816001811462000ac5576002811462000ad05762000b06565b600191505062000b6f565b60ff84111562000ae55762000ae462000c58565b5b8360020a91508482111562000aff5762000afe62000c58565b5b5062000b6f565b5060208310610133831016604e8410600b841016171562000b405782820a90508381111562000b3a5762000b3962000c58565b5b62000b6f565b62000b4f8484846001620009de565b9250905081840481111562000b695762000b6862000c58565b5b81810290505b9392505050565b600062000b838262000c0b565b915062000b908362000c0b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000bcc5762000bcb62000c58565b5b828202905092915050565b600062000be48262000beb565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000600282049050600182168062000c3b57607f821691505b6020821081141562000c525762000c5162000c87565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b62000cce8162000bd7565b811462000cda57600080fd5b50565b60805160601c6131d962000d0360003960008181610a4d0152610a7901526131d96000f3fe6080604052600436106102135760003560e01c806370a0823111610118578063c816841b116100a0578063e156afd51161006f578063e156afd51461078c578063ea2f0b37146107a3578063f0cd1dac146107cc578063f2fde38b146107f7578063f887ea40146108205761021a565b8063c816841b146106e4578063cd9e22051461070f578063dd62ed3e14610726578063deae44f3146107635761021a565b806395d89b41116100e757806395d89b4114610637578063a0b9fa6114610662578063a9059cbb14610679578063b44cf5cf146106b6578063badd6bcb146106cd5761021a565b806370a082311461057957806371907f17146105b657806382eefb43146105e15780638da5cb5b1461060c5761021a565b80632ee9e82b1161019b5780633fc8cef31161016a5780633fc8cef314610480578063437823ec146104ab5780634d33b1ef146104d45780635342acb4146104ff5780636c6f98351461053c5761021a565b80632ee9e82b146103d8578063313ce567146103ef5780633be746d91461041a5780633ecad271146104435761021a565b806318160ddd116101e257806318160ddd146102dd5780631ce289091461030857806323b872dd1461034557806327c8f835146103825780632b112e49146103ad5761021a565b806306fdde031461021f578063095ea7b31461024a5780631245e347146102875780631694505e146102b25761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b5061023461084b565b6040516102419190612947565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c9190612674565b6108dd565b60405161027e9190612911565b60405180910390f35b34801561029357600080fd5b5061029c6108fb565b6040516102a991906128f6565b60405180910390f35b3480156102be57600080fd5b506102c7610921565b6040516102d4919061292c565b60405180910390f35b3480156102e957600080fd5b506102f2610947565b6040516102ff9190612ac9565b60405180910390f35b34801561031457600080fd5b5061032f600480360381019061032a91906125c0565b610951565b60405161033c9190612911565b60405180910390f35b34801561035157600080fd5b5061036c60048036038101906103679190612625565b610971565b6040516103799190612911565b60405180910390f35b34801561038e57600080fd5b50610397610a4b565b6040516103a491906128f6565b60405180910390f35b3480156103b957600080fd5b506103c2610a6f565b6040516103cf9190612ac9565b60405180910390f35b3480156103e457600080fd5b506103ed610ab3565b005b3480156103fb57600080fd5b50610404610b41565b6040516104119190612ae4565b60405180910390f35b34801561042657600080fd5b50610441600480360381019061043c91906126b0565b610b58565b005b34801561044f57600080fd5b5061046a600480360381019061046591906125c0565b610c86565b6040516104779190612911565b60405180910390f35b34801561048c57600080fd5b50610495610ca6565b6040516104a291906128f6565b60405180910390f35b3480156104b757600080fd5b506104d260048036038101906104cd91906125c0565b610ccc565b005b3480156104e057600080fd5b506104e9610da3565b6040516104f69190612911565b60405180910390f35b34801561050b57600080fd5b50610526600480360381019061052191906125c0565b610dba565b6040516105339190612911565b60405180910390f35b34801561054857600080fd5b50610563600480360381019061055e91906126b0565b610dda565b6040516105709190612911565b60405180910390f35b34801561058557600080fd5b506105a0600480360381019061059b91906125c0565b610ea1565b6040516105ad9190612ac9565b60405180910390f35b3480156105c257600080fd5b506105cb610eea565b6040516105d891906128f6565b60405180910390f35b3480156105ed57600080fd5b506105f6610f14565b6040516106039190612ac9565b60405180910390f35b34801561061857600080fd5b50610621610f1a565b60405161062e91906128f6565b60405180910390f35b34801561064357600080fd5b5061064c610f43565b6040516106599190612947565b60405180910390f35b34801561066e57600080fd5b50610677610fd5565b005b34801561068557600080fd5b506106a0600480360381019061069b9190612674565b611063565b6040516106ad9190612911565b60405180910390f35b3480156106c257600080fd5b506106cb611082565b005b3480156106d957600080fd5b506106e26111bc565b005b3480156106f057600080fd5b506106f961124a565b60405161070691906128f6565b60405180910390f35b34801561071b57600080fd5b50610724611270565b005b34801561073257600080fd5b5061074d600480360381019061074891906125e9565b611309565b60405161075a9190612ac9565b60405180910390f35b34801561076f57600080fd5b5061078a600480360381019061078591906126b0565b611390565b005b34801561079857600080fd5b506107a16114c7565b005b3480156107af57600080fd5b506107ca60048036038101906107c591906125c0565b611560565b005b3480156107d857600080fd5b506107e1611681565b6040516107ee9190612ac9565b60405180910390f35b34801561080357600080fd5b5061081e600480360381019061081991906125c0565b611687565b005b34801561082c57600080fd5b506108356117c0565b60405161084291906128f6565b60405180910390f35b60606002805461085a90612d2d565b80601f016020809104026020016040519081016040528092919081815260200182805461088690612d2d565b80156108d35780601f106108a8576101008083540402835291602001916108d3565b820191906000526020600020905b8154815290600101906020018083116108b657829003601f168201915b5050505050905090565b60006108f16108ea6117e6565b84846117ee565b6001905092915050565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600c54905090565b60076020528060005260406000206000915054906101000a900460ff1681565b600061097e8484846119b9565b50610a408461098b6117e6565b610a3b8560405180606001604052806028815260200161317c60289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109f16117e6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122659092919063ffffffff16565b6117ee565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610aae610a9d7f0000000000000000000000000000000000000000000000000000000000000000610ea1565b600c546122c990919063ffffffff16565b905090565b610abb6117e6565b73ffffffffffffffffffffffffffffffffffffffff16610ad9610eea565b73ffffffffffffffffffffffffffffffffffffffff1614610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b26906129e9565b60405180910390fd5b6000600a819055506000600b81905550565b6000600460009054906101000a900460ff16905090565b610b606117e6565b73ffffffffffffffffffffffffffffffffffffffff16610b7e610f1a565b73ffffffffffffffffffffffffffffffffffffffff1614610bd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcb906129e9565b60405180910390fd5b60005b8151811015610c825760076000838381518110610c1d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690558080610c7a90612d90565b915050610bd7565b5050565b60096020528060005260406000206000915054906101000a900460ff1681565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610cd46117e6565b73ffffffffffffffffffffffffffffffffffffffff16610cf2610eea565b73ffffffffffffffffffffffffffffffffffffffff1614610d48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3f906129e9565b60405180910390fd5b6001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600d60009054906101000a900460ff16905090565b60086020528060005260406000206000915054906101000a900460ff1681565b6000806000905060005b8351811015610e975760076000858381518110610e2a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e8457600191505b8080610e8f90612d90565b915050610de4565b5080915050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060038054610f5290612d2d565b80601f0160208091040260200160405190810160405280929190818152602001828054610f7e90612d2d565b8015610fcb5780601f10610fa057610100808354040283529160200191610fcb565b820191906000526020600020905b815481529060010190602001808311610fae57829003601f168201915b5050505050905090565b610fdd6117e6565b73ffffffffffffffffffffffffffffffffffffffff16610ffb610f1a565b73ffffffffffffffffffffffffffffffffffffffff1614611051576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611048906129e9565b60405180910390fd5b6005600a819055506010600b81905550565b60006110776110706117e6565b84846119b9565b506001905092915050565b61108a6117e6565b73ffffffffffffffffffffffffffffffffffffffff166110a8610f1a565b73ffffffffffffffffffffffffffffffffffffffff16146110fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f5906129e9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6111c46117e6565b73ffffffffffffffffffffffffffffffffffffffff166111e2610f1a565b73ffffffffffffffffffffffffffffffffffffffff1614611238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122f906129e9565b60405180910390fd5b6005600a819055506005600b81905550565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6112786117e6565b73ffffffffffffffffffffffffffffffffffffffff16611296610f1a565b73ffffffffffffffffffffffffffffffffffffffff16146112ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e3906129e9565b60405180910390fd5b6000600d60006101000a81548160ff021916908315150217905550565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113986117e6565b73ffffffffffffffffffffffffffffffffffffffff166113b6610f1a565b73ffffffffffffffffffffffffffffffffffffffff161461140c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611403906129e9565b60405180910390fd5b60005b81518110156114c357600160076000848481518110611457577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806114bb90612d90565b91505061140f565b5050565b6114cf6117e6565b73ffffffffffffffffffffffffffffffffffffffff166114ed610f1a565b73ffffffffffffffffffffffffffffffffffffffff1614611543576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153a906129e9565b60405180910390fd5b6001600d60006101000a81548160ff021916908315150217905550565b6115686117e6565b73ffffffffffffffffffffffffffffffffffffffff16611586610eea565b73ffffffffffffffffffffffffffffffffffffffff16146115dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d3906129e9565b60405180910390fd5b600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561167e57600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690555b50565b600a5481565b61168f6117e6565b73ffffffffffffffffffffffffffffffffffffffff166116ad610f1a565b73ffffffffffffffffffffffffffffffffffffffff1614611703576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fa906129e9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561185e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185590612a89565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c590612989565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119ac9190612ac9565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611a2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2190612a69565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9190612969565b60405180910390fd5b60008211611add576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad490612a09565b60405180910390fd5b611ae5610da3565b80611b395750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611b8d5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc390612a29565b60405180910390fd5b611bd584612313565b15611c15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0c90612aa9565b60405180910390fd5b611c1e83612313565b15611c5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5590612a49565b60405180910390fd5b611ce7826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122659092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611dcb5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611ecf57611e2282600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237a90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ec29190612ac9565b60405180910390a361225a565b6000600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611f5257611f4b6064611f3d600a54866123d890919063ffffffff16565b61245390919063ffffffff16565b9050611fd0565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611fcf57611fcc6064611fbe600b54866123d890919063ffffffff16565b61245390919063ffffffff16565b90505b5b612034611fe682856122c990919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237a90919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6120d984876122c990919063ffffffff16565b6040516120e69190612ac9565b60405180910390a360008111156122585761216b8160056000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237a90919063ffffffff16565b60056000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161224f9190612ac9565b60405180910390a35b505b600190509392505050565b60008383111582906122ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a49190612947565b60405180910390fd5b50600083856122bc9190612c4d565b9050809150509392505050565b600061230b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612265565b905092915050565b60008060009050600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561237157600190505b80915050919050565b60008082846123899190612b6c565b9050838110156123ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c5906129a9565b60405180910390fd5b8091505092915050565b6000808314156123eb576000905061244d565b600082846123f99190612bf3565b90508284826124089190612bc2565b14612448576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243f906129c9565b60405180910390fd5b809150505b92915050565b600061249583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061249d565b905092915050565b600080831182906124e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124db9190612947565b60405180910390fd5b50600083856124f39190612bc2565b9050809150509392505050565b600061251361250e84612b24565b612aff565b9050808382526020820190508285602086028201111561253257600080fd5b60005b858110156125625781612548888261256c565b845260208401935060208301925050600181019050612535565b5050509392505050565b60008135905061257b8161314d565b92915050565b600082601f83011261259257600080fd5b81356125a2848260208601612500565b91505092915050565b6000813590506125ba81613164565b92915050565b6000602082840312156125d257600080fd5b60006125e08482850161256c565b91505092915050565b600080604083850312156125fc57600080fd5b600061260a8582860161256c565b925050602061261b8582860161256c565b9150509250929050565b60008060006060848603121561263a57600080fd5b60006126488682870161256c565b93505060206126598682870161256c565b925050604061266a868287016125ab565b9150509250925092565b6000806040838503121561268757600080fd5b60006126958582860161256c565b92505060206126a6858286016125ab565b9150509250929050565b6000602082840312156126c257600080fd5b600082013567ffffffffffffffff8111156126dc57600080fd5b6126e884828501612581565b91505092915050565b6126fa81612c81565b82525050565b61270981612c93565b82525050565b61271881612cd6565b82525050565b600061272982612b50565b6127338185612b5b565b9350612743818560208601612cfa565b61274c81612e95565b840191505092915050565b6000612764602383612b5b565b915061276f82612ea6565b604082019050919050565b6000612787602283612b5b565b915061279282612ef5565b604082019050919050565b60006127aa601b83612b5b565b91506127b582612f44565b602082019050919050565b60006127cd602183612b5b565b91506127d882612f6d565b604082019050919050565b60006127f0602083612b5b565b91506127fb82612fbc565b602082019050919050565b6000612813602983612b5b565b915061281e82612fe5565b604082019050919050565b6000612836600a83612b5b565b915061284182613034565b602082019050919050565b6000612859601683612b5b565b91506128648261305d565b602082019050919050565b600061287c602583612b5b565b915061288782613086565b604082019050919050565b600061289f602483612b5b565b91506128aa826130d5565b604082019050919050565b60006128c2601383612b5b565b91506128cd82613124565b602082019050919050565b6128e181612cbf565b82525050565b6128f081612cc9565b82525050565b600060208201905061290b60008301846126f1565b92915050565b60006020820190506129266000830184612700565b92915050565b6000602082019050612941600083018461270f565b92915050565b60006020820190508181036000830152612961818461271e565b905092915050565b6000602082019050818103600083015261298281612757565b9050919050565b600060208201905081810360008301526129a28161277a565b9050919050565b600060208201905081810360008301526129c28161279d565b9050919050565b600060208201905081810360008301526129e2816127c0565b9050919050565b60006020820190508181036000830152612a02816127e3565b9050919050565b60006020820190508181036000830152612a2281612806565b9050919050565b60006020820190508181036000830152612a4281612829565b9050919050565b60006020820190508181036000830152612a628161284c565b9050919050565b60006020820190508181036000830152612a828161286f565b9050919050565b60006020820190508181036000830152612aa281612892565b9050919050565b60006020820190508181036000830152612ac2816128b5565b9050919050565b6000602082019050612ade60008301846128d8565b92915050565b6000602082019050612af960008301846128e7565b92915050565b6000612b09612b1a565b9050612b158282612d5f565b919050565b6000604051905090565b600067ffffffffffffffff821115612b3f57612b3e612e66565b5b602082029050602081019050919050565b600081519050919050565b600082825260208201905092915050565b6000612b7782612cbf565b9150612b8283612cbf565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612bb757612bb6612dd9565b5b828201905092915050565b6000612bcd82612cbf565b9150612bd883612cbf565b925082612be857612be7612e08565b5b828204905092915050565b6000612bfe82612cbf565b9150612c0983612cbf565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c4257612c41612dd9565b5b828202905092915050565b6000612c5882612cbf565b9150612c6383612cbf565b925082821015612c7657612c75612dd9565b5b828203905092915050565b6000612c8c82612c9f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612ce182612ce8565b9050919050565b6000612cf382612c9f565b9050919050565b60005b83811015612d18578082015181840152602081019050612cfd565b83811115612d27576000848401525b50505050565b60006002820490506001821680612d4557607f821691505b60208210811415612d5957612d58612e37565b5b50919050565b612d6882612e95565b810181811067ffffffffffffffff82111715612d8757612d86612e66565b5b80604052505050565b6000612d9b82612cbf565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612dce57612dcd612dd9565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f63616e6e6f742062757900000000000000000000000000000000000000000000600082015250565b7f426c61636b6c697374656420526563657069656e742100000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f426c61636b6c69737465642053656e6465722100000000000000000000000000600082015250565b61315681612c81565b811461316157600080fd5b50565b61316d81612cbf565b811461317857600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122024feb782d4eec14e05a0b6127057acbbc7d856dcb85602129e535e3931200ba064736f6c63430008040033
Deployed Bytecode
0x6080604052600436106102135760003560e01c806370a0823111610118578063c816841b116100a0578063e156afd51161006f578063e156afd51461078c578063ea2f0b37146107a3578063f0cd1dac146107cc578063f2fde38b146107f7578063f887ea40146108205761021a565b8063c816841b146106e4578063cd9e22051461070f578063dd62ed3e14610726578063deae44f3146107635761021a565b806395d89b41116100e757806395d89b4114610637578063a0b9fa6114610662578063a9059cbb14610679578063b44cf5cf146106b6578063badd6bcb146106cd5761021a565b806370a082311461057957806371907f17146105b657806382eefb43146105e15780638da5cb5b1461060c5761021a565b80632ee9e82b1161019b5780633fc8cef31161016a5780633fc8cef314610480578063437823ec146104ab5780634d33b1ef146104d45780635342acb4146104ff5780636c6f98351461053c5761021a565b80632ee9e82b146103d8578063313ce567146103ef5780633be746d91461041a5780633ecad271146104435761021a565b806318160ddd116101e257806318160ddd146102dd5780631ce289091461030857806323b872dd1461034557806327c8f835146103825780632b112e49146103ad5761021a565b806306fdde031461021f578063095ea7b31461024a5780631245e347146102875780631694505e146102b25761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b5061023461084b565b6040516102419190612947565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c9190612674565b6108dd565b60405161027e9190612911565b60405180910390f35b34801561029357600080fd5b5061029c6108fb565b6040516102a991906128f6565b60405180910390f35b3480156102be57600080fd5b506102c7610921565b6040516102d4919061292c565b60405180910390f35b3480156102e957600080fd5b506102f2610947565b6040516102ff9190612ac9565b60405180910390f35b34801561031457600080fd5b5061032f600480360381019061032a91906125c0565b610951565b60405161033c9190612911565b60405180910390f35b34801561035157600080fd5b5061036c60048036038101906103679190612625565b610971565b6040516103799190612911565b60405180910390f35b34801561038e57600080fd5b50610397610a4b565b6040516103a491906128f6565b60405180910390f35b3480156103b957600080fd5b506103c2610a6f565b6040516103cf9190612ac9565b60405180910390f35b3480156103e457600080fd5b506103ed610ab3565b005b3480156103fb57600080fd5b50610404610b41565b6040516104119190612ae4565b60405180910390f35b34801561042657600080fd5b50610441600480360381019061043c91906126b0565b610b58565b005b34801561044f57600080fd5b5061046a600480360381019061046591906125c0565b610c86565b6040516104779190612911565b60405180910390f35b34801561048c57600080fd5b50610495610ca6565b6040516104a291906128f6565b60405180910390f35b3480156104b757600080fd5b506104d260048036038101906104cd91906125c0565b610ccc565b005b3480156104e057600080fd5b506104e9610da3565b6040516104f69190612911565b60405180910390f35b34801561050b57600080fd5b50610526600480360381019061052191906125c0565b610dba565b6040516105339190612911565b60405180910390f35b34801561054857600080fd5b50610563600480360381019061055e91906126b0565b610dda565b6040516105709190612911565b60405180910390f35b34801561058557600080fd5b506105a0600480360381019061059b91906125c0565b610ea1565b6040516105ad9190612ac9565b60405180910390f35b3480156105c257600080fd5b506105cb610eea565b6040516105d891906128f6565b60405180910390f35b3480156105ed57600080fd5b506105f6610f14565b6040516106039190612ac9565b60405180910390f35b34801561061857600080fd5b50610621610f1a565b60405161062e91906128f6565b60405180910390f35b34801561064357600080fd5b5061064c610f43565b6040516106599190612947565b60405180910390f35b34801561066e57600080fd5b50610677610fd5565b005b34801561068557600080fd5b506106a0600480360381019061069b9190612674565b611063565b6040516106ad9190612911565b60405180910390f35b3480156106c257600080fd5b506106cb611082565b005b3480156106d957600080fd5b506106e26111bc565b005b3480156106f057600080fd5b506106f961124a565b60405161070691906128f6565b60405180910390f35b34801561071b57600080fd5b50610724611270565b005b34801561073257600080fd5b5061074d600480360381019061074891906125e9565b611309565b60405161075a9190612ac9565b60405180910390f35b34801561076f57600080fd5b5061078a600480360381019061078591906126b0565b611390565b005b34801561079857600080fd5b506107a16114c7565b005b3480156107af57600080fd5b506107ca60048036038101906107c591906125c0565b611560565b005b3480156107d857600080fd5b506107e1611681565b6040516107ee9190612ac9565b60405180910390f35b34801561080357600080fd5b5061081e600480360381019061081991906125c0565b611687565b005b34801561082c57600080fd5b506108356117c0565b60405161084291906128f6565b60405180910390f35b60606002805461085a90612d2d565b80601f016020809104026020016040519081016040528092919081815260200182805461088690612d2d565b80156108d35780601f106108a8576101008083540402835291602001916108d3565b820191906000526020600020905b8154815290600101906020018083116108b657829003601f168201915b5050505050905090565b60006108f16108ea6117e6565b84846117ee565b6001905092915050565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600c54905090565b60076020528060005260406000206000915054906101000a900460ff1681565b600061097e8484846119b9565b50610a408461098b6117e6565b610a3b8560405180606001604052806028815260200161317c60289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109f16117e6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122659092919063ffffffff16565b6117ee565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b6000610aae610a9d7f000000000000000000000000000000000000000000000000000000000000dead610ea1565b600c546122c990919063ffffffff16565b905090565b610abb6117e6565b73ffffffffffffffffffffffffffffffffffffffff16610ad9610eea565b73ffffffffffffffffffffffffffffffffffffffff1614610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b26906129e9565b60405180910390fd5b6000600a819055506000600b81905550565b6000600460009054906101000a900460ff16905090565b610b606117e6565b73ffffffffffffffffffffffffffffffffffffffff16610b7e610f1a565b73ffffffffffffffffffffffffffffffffffffffff1614610bd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcb906129e9565b60405180910390fd5b60005b8151811015610c825760076000838381518110610c1d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690558080610c7a90612d90565b915050610bd7565b5050565b60096020528060005260406000206000915054906101000a900460ff1681565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610cd46117e6565b73ffffffffffffffffffffffffffffffffffffffff16610cf2610eea565b73ffffffffffffffffffffffffffffffffffffffff1614610d48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3f906129e9565b60405180910390fd5b6001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600d60009054906101000a900460ff16905090565b60086020528060005260406000206000915054906101000a900460ff1681565b6000806000905060005b8351811015610e975760076000858381518110610e2a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e8457600191505b8080610e8f90612d90565b915050610de4565b5080915050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060038054610f5290612d2d565b80601f0160208091040260200160405190810160405280929190818152602001828054610f7e90612d2d565b8015610fcb5780601f10610fa057610100808354040283529160200191610fcb565b820191906000526020600020905b815481529060010190602001808311610fae57829003601f168201915b5050505050905090565b610fdd6117e6565b73ffffffffffffffffffffffffffffffffffffffff16610ffb610f1a565b73ffffffffffffffffffffffffffffffffffffffff1614611051576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611048906129e9565b60405180910390fd5b6005600a819055506010600b81905550565b60006110776110706117e6565b84846119b9565b506001905092915050565b61108a6117e6565b73ffffffffffffffffffffffffffffffffffffffff166110a8610f1a565b73ffffffffffffffffffffffffffffffffffffffff16146110fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f5906129e9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6111c46117e6565b73ffffffffffffffffffffffffffffffffffffffff166111e2610f1a565b73ffffffffffffffffffffffffffffffffffffffff1614611238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122f906129e9565b60405180910390fd5b6005600a819055506005600b81905550565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6112786117e6565b73ffffffffffffffffffffffffffffffffffffffff16611296610f1a565b73ffffffffffffffffffffffffffffffffffffffff16146112ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e3906129e9565b60405180910390fd5b6000600d60006101000a81548160ff021916908315150217905550565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113986117e6565b73ffffffffffffffffffffffffffffffffffffffff166113b6610f1a565b73ffffffffffffffffffffffffffffffffffffffff161461140c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611403906129e9565b60405180910390fd5b60005b81518110156114c357600160076000848481518110611457577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806114bb90612d90565b91505061140f565b5050565b6114cf6117e6565b73ffffffffffffffffffffffffffffffffffffffff166114ed610f1a565b73ffffffffffffffffffffffffffffffffffffffff1614611543576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153a906129e9565b60405180910390fd5b6001600d60006101000a81548160ff021916908315150217905550565b6115686117e6565b73ffffffffffffffffffffffffffffffffffffffff16611586610eea565b73ffffffffffffffffffffffffffffffffffffffff16146115dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d3906129e9565b60405180910390fd5b600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561167e57600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690555b50565b600a5481565b61168f6117e6565b73ffffffffffffffffffffffffffffffffffffffff166116ad610f1a565b73ffffffffffffffffffffffffffffffffffffffff1614611703576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fa906129e9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561185e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185590612a89565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c590612989565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119ac9190612ac9565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611a2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2190612a69565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9190612969565b60405180910390fd5b60008211611add576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad490612a09565b60405180910390fd5b611ae5610da3565b80611b395750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611b8d5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc390612a29565b60405180910390fd5b611bd584612313565b15611c15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0c90612aa9565b60405180910390fd5b611c1e83612313565b15611c5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5590612a49565b60405180910390fd5b611ce7826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122659092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611dcb5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611ecf57611e2282600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237a90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ec29190612ac9565b60405180910390a361225a565b6000600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611f5257611f4b6064611f3d600a54866123d890919063ffffffff16565b61245390919063ffffffff16565b9050611fd0565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611fcf57611fcc6064611fbe600b54866123d890919063ffffffff16565b61245390919063ffffffff16565b90505b5b612034611fe682856122c990919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237a90919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6120d984876122c990919063ffffffff16565b6040516120e69190612ac9565b60405180910390a360008111156122585761216b8160056000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237a90919063ffffffff16565b60056000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161224f9190612ac9565b60405180910390a35b505b600190509392505050565b60008383111582906122ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a49190612947565b60405180910390fd5b50600083856122bc9190612c4d565b9050809150509392505050565b600061230b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612265565b905092915050565b60008060009050600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561237157600190505b80915050919050565b60008082846123899190612b6c565b9050838110156123ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c5906129a9565b60405180910390fd5b8091505092915050565b6000808314156123eb576000905061244d565b600082846123f99190612bf3565b90508284826124089190612bc2565b14612448576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243f906129c9565b60405180910390fd5b809150505b92915050565b600061249583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061249d565b905092915050565b600080831182906124e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124db9190612947565b60405180910390fd5b50600083856124f39190612bc2565b9050809150509392505050565b600061251361250e84612b24565b612aff565b9050808382526020820190508285602086028201111561253257600080fd5b60005b858110156125625781612548888261256c565b845260208401935060208301925050600181019050612535565b5050509392505050565b60008135905061257b8161314d565b92915050565b600082601f83011261259257600080fd5b81356125a2848260208601612500565b91505092915050565b6000813590506125ba81613164565b92915050565b6000602082840312156125d257600080fd5b60006125e08482850161256c565b91505092915050565b600080604083850312156125fc57600080fd5b600061260a8582860161256c565b925050602061261b8582860161256c565b9150509250929050565b60008060006060848603121561263a57600080fd5b60006126488682870161256c565b93505060206126598682870161256c565b925050604061266a868287016125ab565b9150509250925092565b6000806040838503121561268757600080fd5b60006126958582860161256c565b92505060206126a6858286016125ab565b9150509250929050565b6000602082840312156126c257600080fd5b600082013567ffffffffffffffff8111156126dc57600080fd5b6126e884828501612581565b91505092915050565b6126fa81612c81565b82525050565b61270981612c93565b82525050565b61271881612cd6565b82525050565b600061272982612b50565b6127338185612b5b565b9350612743818560208601612cfa565b61274c81612e95565b840191505092915050565b6000612764602383612b5b565b915061276f82612ea6565b604082019050919050565b6000612787602283612b5b565b915061279282612ef5565b604082019050919050565b60006127aa601b83612b5b565b91506127b582612f44565b602082019050919050565b60006127cd602183612b5b565b91506127d882612f6d565b604082019050919050565b60006127f0602083612b5b565b91506127fb82612fbc565b602082019050919050565b6000612813602983612b5b565b915061281e82612fe5565b604082019050919050565b6000612836600a83612b5b565b915061284182613034565b602082019050919050565b6000612859601683612b5b565b91506128648261305d565b602082019050919050565b600061287c602583612b5b565b915061288782613086565b604082019050919050565b600061289f602483612b5b565b91506128aa826130d5565b604082019050919050565b60006128c2601383612b5b565b91506128cd82613124565b602082019050919050565b6128e181612cbf565b82525050565b6128f081612cc9565b82525050565b600060208201905061290b60008301846126f1565b92915050565b60006020820190506129266000830184612700565b92915050565b6000602082019050612941600083018461270f565b92915050565b60006020820190508181036000830152612961818461271e565b905092915050565b6000602082019050818103600083015261298281612757565b9050919050565b600060208201905081810360008301526129a28161277a565b9050919050565b600060208201905081810360008301526129c28161279d565b9050919050565b600060208201905081810360008301526129e2816127c0565b9050919050565b60006020820190508181036000830152612a02816127e3565b9050919050565b60006020820190508181036000830152612a2281612806565b9050919050565b60006020820190508181036000830152612a4281612829565b9050919050565b60006020820190508181036000830152612a628161284c565b9050919050565b60006020820190508181036000830152612a828161286f565b9050919050565b60006020820190508181036000830152612aa281612892565b9050919050565b60006020820190508181036000830152612ac2816128b5565b9050919050565b6000602082019050612ade60008301846128d8565b92915050565b6000602082019050612af960008301846128e7565b92915050565b6000612b09612b1a565b9050612b158282612d5f565b919050565b6000604051905090565b600067ffffffffffffffff821115612b3f57612b3e612e66565b5b602082029050602081019050919050565b600081519050919050565b600082825260208201905092915050565b6000612b7782612cbf565b9150612b8283612cbf565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612bb757612bb6612dd9565b5b828201905092915050565b6000612bcd82612cbf565b9150612bd883612cbf565b925082612be857612be7612e08565b5b828204905092915050565b6000612bfe82612cbf565b9150612c0983612cbf565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c4257612c41612dd9565b5b828202905092915050565b6000612c5882612cbf565b9150612c6383612cbf565b925082821015612c7657612c75612dd9565b5b828203905092915050565b6000612c8c82612c9f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612ce182612ce8565b9050919050565b6000612cf382612c9f565b9050919050565b60005b83811015612d18578082015181840152602081019050612cfd565b83811115612d27576000848401525b50505050565b60006002820490506001821680612d4557607f821691505b60208210811415612d5957612d58612e37565b5b50919050565b612d6882612e95565b810181811067ffffffffffffffff82111715612d8757612d86612e66565b5b80604052505050565b6000612d9b82612cbf565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612dce57612dcd612dd9565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f63616e6e6f742062757900000000000000000000000000000000000000000000600082015250565b7f426c61636b6c697374656420526563657069656e742100000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f426c61636b6c69737465642053656e6465722100000000000000000000000000600082015250565b61315681612c81565b811461316157600080fd5b50565b61316d81612cbf565b811461317857600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122024feb782d4eec14e05a0b6127057acbbc7d856dcb85602129e535e3931200ba064736f6c63430008040033
Deployed Bytecode Sourcemap
14574:7966:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16466:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17129:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14891:77;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15568:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16743:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15186:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18876:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14975:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18266:128;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17649:191;;;;;;;;;;;;;:::i;:::-;;16652:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19425:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15288:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15649:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20436:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20287:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15231:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19636:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16851:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6038:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15398:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5945:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16557;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17848:198;;;;;;;;;;;;;:::i;:::-;;18694:174;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6562:145;;;;;;;;;;;;;:::i;:::-;;18058:200;;;;;;;;;;;;;:::i;:::-;;15616:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18598:88;;;;;;;;;;;;;:::i;:::-;;16978:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19223:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18472:86;;;;;;;;;;;;;:::i;:::-;;20610:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15340:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6391:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15724:66;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16466:83;16503:13;16536:5;16529:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16466:83;:::o;17129:161::-;17204:4;17221:39;17230:12;:10;:12::i;:::-;17244:7;17253:6;17221:8;:39::i;:::-;17278:4;17271:11;;17129:161;;;;:::o;14891:77::-;;;;;;;;;;;;;:::o;15568:41::-;;;;;;;;;;;;;:::o;16743:100::-;16796:7;16823:12;;16816:19;;16743:100;:::o;15186:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;18876:313::-;18974:4;18991:36;19001:6;19009:9;19020:6;18991:9;:36::i;:::-;;19038:121;19047:6;19055:12;:10;:12::i;:::-;19069:89;19107:6;19069:89;;;;;;;;;;;;;;;;;:11;:19;19081:6;19069:19;;;;;;;;;;;;;;;:33;19089:12;:10;:12::i;:::-;19069:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;19038:8;:121::i;:::-;19177:4;19170:11;;18876:313;;;;;:::o;14975:81::-;;;:::o;18266:128::-;18319:7;18346:40;18363:22;18373:11;18363:9;:22::i;:::-;18346:12;;:16;;:40;;;;:::i;:::-;18339:47;;18266:128;:::o;17649:191::-;6314:12;:10;:12::i;:::-;6302:24;;:8;:6;:8::i;:::-;:24;;;6294:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;17798:1:::1;17778:17;:21;;;;17831:1;17810:18;:22;;;;17649:191::o:0;16652:83::-;16693:5;16718:9;;;;;;;;;;;16711:16;;16652:83;:::o;19425:169::-;6184:12;:10;:12::i;:::-;6173:23;;:7;:5;:7::i;:::-;:23;;;6165:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19499:9:::1;19494:93;19518:5;:12;19514:1;:16;19494:93;;;19559:6;:16;19566:5;19572:1;19566:8;;;;;;;;;;;;;;;;;;;;;;19559:16;;;;;;;;;;;;;;;;19552:23;;;;;;;;;;;19532:3;;;;;:::i;:::-;;;;19494:93;;;;19425:169:::0;:::o;15288:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;15649:64::-;;;;;;;;;;;;;:::o;20436:111::-;6314:12;:10;:12::i;:::-;6302:24;;:8;:6;:8::i;:::-;:24;;;6294:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;20535:4:::1;20506:17;:26;20524:7;20506:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;20436:111:::0;:::o;20287:98::-;20339:4;20363:14;;;;;;;;;;;20356:21;;20287:98;:::o;15231:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;19636:313::-;19727:4;19749:11;19763:5;19749:19;;19784:9;19779:139;19803:5;:12;19799:1;:16;19779:139;;;19841:6;:16;19848:5;19854:1;19848:8;;;;;;;;;;;;;;;;;;;;;;19841:16;;;;;;;;;;;;;;;;;;;;;;;;;19837:70;;;19887:4;19878:13;;19837:70;19817:3;;;;;:::i;:::-;;;;19779:139;;;;19935:6;19928:13;;;19636:313;;;:::o;16851:119::-;16917:7;16944:9;:18;16954:7;16944:18;;;;;;;;;;;;;;;;16937:25;;16851:119;;;:::o;6038:89::-;6085:7;6112;;;;;;;;;;;6105:14;;6038:89;:::o;15398:37::-;;;;:::o;5945:87::-;5991:7;6018:6;;;;;;;;;;;6011:13;;5945:87;:::o;16557:::-;16596:13;16629:7;16622:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16557:87;:::o;17848:198::-;6184:12;:10;:12::i;:::-;6173:23;;:7;:5;:7::i;:::-;:23;;;6165:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18003:1:::1;17983:17;:21;;;;18036:2;18015:18;:23;;;;17848:198::o:0;18694:174::-;18772:4;18789:42;18799:12;:10;:12::i;:::-;18813:9;18824:6;18789:9;:42::i;:::-;;18856:4;18849:11;;18694:174;;;;:::o;6562:145::-;6184:12;:10;:12::i;:::-;6173:23;;:7;:5;:7::i;:::-;:23;;;6165:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6666:1:::1;6629:40;;6650:6;::::0;::::1;;;;;;;;6629:40;;;;;;;;;;;;6697:1;6680:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;6562:145::o:0;18058:200::-;6184:12;:10;:12::i;:::-;6173:23;;:7;:5;:7::i;:::-;:23;;;6165:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18216:1:::1;18196:17;:21;;;;18249:1;18228:18;:22;;;;18058:200::o:0;15616:26::-;;;;;;;;;;;;;:::o;18598:88::-;6184:12;:10;:12::i;:::-;6173:23;;:7;:5;:7::i;:::-;:23;;;6165:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18673:5:::1;18656:14;;:22;;;;;;;;;;;;;;;;;;18598:88::o:0;16978:143::-;17059:7;17086:11;:18;17098:5;17086:18;;;;;;;;;;;;;;;:27;17105:7;17086:27;;;;;;;;;;;;;;;;17079:34;;16978:143;;;;:::o;19223:168::-;6184:12;:10;:12::i;:::-;6173:23;;:7;:5;:7::i;:::-;:23;;;6165:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19296:9:::1;19291:93;19315:5;:12;19311:1;:16;19291:93;;;19368:4;19349:6;:16;19356:5;19362:1;19356:8;;;;;;;;;;;;;;;;;;;;;;19349:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;19329:3;;;;;:::i;:::-;;;;19291:93;;;;19223:168:::0;:::o;18472:86::-;6184:12;:10;:12::i;:::-;6173:23;;:7;:5;:7::i;:::-;:23;;;6165:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18546:4:::1;18529:14;;:21;;;;;;;;;;;;;;;;;;18472:86::o:0;20610:161::-;6314:12;:10;:12::i;:::-;6302:24;;:8;:6;:8::i;:::-;:24;;;6294:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;20681:17:::1;:26;20699:7;20681:26;;;;;;;;;;;;;;;;;;;;;;;;;20678:86;;;20726:17;:26;20744:7;20726:26;;;;;;;;;;;;;;;;20719:33;;;;;;;;;;;20678:86;20610:161:::0;:::o;15340:36::-;;;;:::o;6391:163::-;6184:12;:10;:12::i;:::-;6173:23;;:7;:5;:7::i;:::-;:23;;;6165:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6507:9:::1;6478:39;;6499:6;::::0;::::1;;;;;;;;6478:39;;;;;;;;;;;;6537:9;6528:6;::::0;:18:::1;;;;;;;;;;;;;;;;;;6391:163:::0;:::o;15724:66::-;;;;;;;;;;;;;:::o;245:115::-;298:15;341:10;326:26;;245:115;:::o;17300:337::-;17410:1;17393:19;;:5;:19;;;;17385:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17491:1;17472:21;;:7;:21;;;;17464:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17575:6;17545:11;:18;17557:5;17545:18;;;;;;;;;;;;;;;:27;17564:7;17545:27;;;;;;;;;;;;;;;:36;;;;17613:7;17597:32;;17606:5;17597:32;;;17622:6;17597:32;;;;;;:::i;:::-;;;;;;;;17300:337;;;:::o;20779:1748::-;20866:4;20909:1;20891:20;;:6;:20;;;;20883:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;20993:1;20972:23;;:9;:23;;;;20964:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;21063:1;21054:6;:10;21046:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;21129:21;:19;:21::i;:::-;:50;;;;21154:17;:25;21172:6;21154:25;;;;;;;;;;;;;;;;;;;;;;;;;21129:50;:82;;;;21183:17;:28;21201:9;21183:28;;;;;;;;;;;;;;;;;;;;;;;;;21129:82;21121:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;21246:18;21257:6;21246:10;:18::i;:::-;21245:19;21237:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;21308:21;21319:9;21308:10;:21::i;:::-;21307:22;21299:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;21397:53;21419:6;21397:53;;;;;;;;;;;;;;;;;:9;:17;21407:6;21397:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;21377:9;:17;21387:6;21377:17;;;;;;;;;;;;;;;:73;;;;21464:17;:25;21482:6;21464:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;21493:17;:28;21511:9;21493:28;;;;;;;;;;;;;;;;;;;;;;;;;21464:57;21461:1018;;;21560:32;21585:6;21560:9;:20;21570:9;21560:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;21537:9;:20;21547:9;21537:20;;;;;;;;;;;;;;;:55;;;;21629:9;21612:35;;21621:6;21612:35;;;21640:6;21612:35;;;;;;:::i;:::-;;;;;;;;21461:1018;;;21680:17;21720:12;:20;21733:6;21720:20;;;;;;;;;;;;;;;;;;;;;;;;;21716:232;;;21773:38;21807:3;21773:29;21784:17;;21773:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;21761:50;;21716:232;;;21837:12;:23;21850:9;21837:23;;;;;;;;;;;;;;;;;;;;;;;;;21833:115;;;21893:39;21928:3;21893:30;21904:18;;21893:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;21881:51;;21833:115;21716:232;21985:47;22010:21;22021:9;22010:6;:10;;:21;;;;:::i;:::-;21985:9;:20;21995:9;21985:20;;;;;;;;;;;;;;;;:24;;:47;;;;:::i;:::-;21962:9;:20;21972:9;21962:20;;;;;;;;;;;;;;;:70;;;;22069:9;22052:50;;22061:6;22052:50;;;22080:21;22091:9;22080:6;:10;;:21;;;;:::i;:::-;22052:50;;;;;;:::i;:::-;;;;;;;;22135:1;22123:9;:13;22120:346;;;22337:43;22370:9;22337;:28;22347:17;;;;;;;;;;;22337:28;;;;;;;;;;;;;;;;:32;;:43;;;;:::i;:::-;22306:9;:28;22316:17;;;;;;;;;;;22306:28;;;;;;;;;;;;;;;:74;;;;22421:17;;;;;;;;;;;22404:46;;22413:6;22404:46;;;22440:9;22404:46;;;;;;:::i;:::-;;;;;;;;22120:346;21461:1018;;22507:4;22500:11;;20779:1748;;;;;:::o;1528:192::-;1614:7;1647:1;1642;:6;;1650:12;1634:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1674:9;1690:1;1686;:5;;;;:::i;:::-;1674:17;;1711:1;1704:8;;;1528:192;;;;;:::o;1384:136::-;1442:7;1469:43;1473:1;1476;1469:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1462:50;;1384:136;;;;:::o;19987:236::-;20072:4;20094:11;20108:5;20094:19;;20129:6;:13;20136:5;20129:13;;;;;;;;;;;;;;;;;;;;;;;;;20125:67;;;20172:4;20163:13;;20125:67;20209:6;20202:13;;;19987:236;;;:::o;1195:181::-;1253:7;1273:9;1289:1;1285;:5;;;;:::i;:::-;1273:17;;1314:1;1309;:6;;1301:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1367:1;1360:8;;;1195:181;;;;:::o;1728:250::-;1786:7;1815:1;1810;:6;1806:47;;;1840:1;1833:8;;;;1806:47;1865:9;1881:1;1877;:5;;;;:::i;:::-;1865:17;;1910:1;1905;1901;:5;;;;:::i;:::-;:10;1893:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1969:1;1962:8;;;1728:250;;;;;:::o;1986:132::-;2044:7;2071:39;2075:1;2078;2071:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2064:46;;1986:132;;;;:::o;2126:278::-;2212:7;2244:1;2240;:5;2247:12;2232:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2271:9;2287:1;2283;:5;;;;:::i;:::-;2271:17;;2395:1;2388:8;;;2126:278;;;;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:139::-;731:5;769:6;756:20;747:29;;785:33;812:5;785:33;:::i;:::-;737:87;;;;:::o;847:303::-;918:5;967:3;960:4;952:6;948:17;944:27;934:2;;985:1;982;975:12;934:2;1025:6;1012:20;1050:94;1140:3;1132:6;1125:4;1117:6;1113:17;1050:94;:::i;:::-;1041:103;;924:226;;;;;:::o;1156:139::-;1202:5;1240:6;1227:20;1218:29;;1256:33;1283:5;1256:33;:::i;:::-;1208:87;;;;:::o;1301:262::-;1360:6;1409:2;1397:9;1388:7;1384:23;1380:32;1377:2;;;1425:1;1422;1415:12;1377:2;1468:1;1493:53;1538:7;1529:6;1518:9;1514:22;1493:53;:::i;:::-;1483:63;;1439:117;1367:196;;;;:::o;1569:407::-;1637:6;1645;1694:2;1682:9;1673:7;1669:23;1665:32;1662:2;;;1710:1;1707;1700:12;1662:2;1753:1;1778:53;1823:7;1814:6;1803:9;1799:22;1778:53;:::i;:::-;1768:63;;1724:117;1880:2;1906:53;1951:7;1942:6;1931:9;1927:22;1906:53;:::i;:::-;1896:63;;1851:118;1652:324;;;;;:::o;1982:552::-;2059:6;2067;2075;2124:2;2112:9;2103:7;2099:23;2095:32;2092:2;;;2140:1;2137;2130:12;2092:2;2183:1;2208:53;2253:7;2244:6;2233:9;2229:22;2208:53;:::i;:::-;2198:63;;2154:117;2310:2;2336:53;2381:7;2372:6;2361:9;2357:22;2336:53;:::i;:::-;2326:63;;2281:118;2438:2;2464:53;2509:7;2500:6;2489:9;2485:22;2464:53;:::i;:::-;2454:63;;2409:118;2082:452;;;;;:::o;2540:407::-;2608:6;2616;2665:2;2653:9;2644:7;2640:23;2636:32;2633:2;;;2681:1;2678;2671:12;2633:2;2724:1;2749:53;2794:7;2785:6;2774:9;2770:22;2749:53;:::i;:::-;2739:63;;2695:117;2851:2;2877:53;2922:7;2913:6;2902:9;2898:22;2877:53;:::i;:::-;2867:63;;2822:118;2623:324;;;;;:::o;2953:405::-;3037:6;3086:2;3074:9;3065:7;3061:23;3057:32;3054:2;;;3102:1;3099;3092:12;3054:2;3173:1;3162:9;3158:17;3145:31;3203:18;3195:6;3192:30;3189:2;;;3235:1;3232;3225:12;3189:2;3263:78;3333:7;3324:6;3313:9;3309:22;3263:78;:::i;:::-;3253:88;;3116:235;3044:314;;;;:::o;3364:118::-;3451:24;3469:5;3451:24;:::i;:::-;3446:3;3439:37;3429:53;;:::o;3488:109::-;3569:21;3584:5;3569:21;:::i;:::-;3564:3;3557:34;3547:50;;:::o;3603:185::-;3717:64;3775:5;3717:64;:::i;:::-;3712:3;3705:77;3695:93;;:::o;3794:364::-;3882:3;3910:39;3943:5;3910:39;:::i;:::-;3965:71;4029:6;4024:3;3965:71;:::i;:::-;3958:78;;4045:52;4090:6;4085:3;4078:4;4071:5;4067:16;4045:52;:::i;:::-;4122:29;4144:6;4122:29;:::i;:::-;4117:3;4113:39;4106:46;;3886:272;;;;;:::o;4164:366::-;4306:3;4327:67;4391:2;4386:3;4327:67;:::i;:::-;4320:74;;4403:93;4492:3;4403:93;:::i;:::-;4521:2;4516:3;4512:12;4505:19;;4310:220;;;:::o;4536:366::-;4678:3;4699:67;4763:2;4758:3;4699:67;:::i;:::-;4692:74;;4775:93;4864:3;4775:93;:::i;:::-;4893:2;4888:3;4884:12;4877:19;;4682:220;;;:::o;4908:366::-;5050:3;5071:67;5135:2;5130:3;5071:67;:::i;:::-;5064:74;;5147:93;5236:3;5147:93;:::i;:::-;5265:2;5260:3;5256:12;5249:19;;5054:220;;;:::o;5280:366::-;5422:3;5443:67;5507:2;5502:3;5443:67;:::i;:::-;5436:74;;5519:93;5608:3;5519:93;:::i;:::-;5637:2;5632:3;5628:12;5621:19;;5426:220;;;:::o;5652:366::-;5794:3;5815:67;5879:2;5874:3;5815:67;:::i;:::-;5808:74;;5891:93;5980:3;5891:93;:::i;:::-;6009:2;6004:3;6000:12;5993:19;;5798:220;;;:::o;6024:366::-;6166:3;6187:67;6251:2;6246:3;6187:67;:::i;:::-;6180:74;;6263:93;6352:3;6263:93;:::i;:::-;6381:2;6376:3;6372:12;6365:19;;6170:220;;;:::o;6396:366::-;6538:3;6559:67;6623:2;6618:3;6559:67;:::i;:::-;6552:74;;6635:93;6724:3;6635:93;:::i;:::-;6753:2;6748:3;6744:12;6737:19;;6542:220;;;:::o;6768:366::-;6910:3;6931:67;6995:2;6990:3;6931:67;:::i;:::-;6924:74;;7007:93;7096:3;7007:93;:::i;:::-;7125:2;7120:3;7116:12;7109:19;;6914:220;;;:::o;7140:366::-;7282:3;7303:67;7367:2;7362:3;7303:67;:::i;:::-;7296:74;;7379:93;7468:3;7379:93;:::i;:::-;7497:2;7492:3;7488:12;7481:19;;7286:220;;;:::o;7512:366::-;7654:3;7675:67;7739:2;7734:3;7675:67;:::i;:::-;7668:74;;7751:93;7840:3;7751:93;:::i;:::-;7869:2;7864:3;7860:12;7853:19;;7658:220;;;:::o;7884:366::-;8026:3;8047:67;8111:2;8106:3;8047:67;:::i;:::-;8040:74;;8123:93;8212:3;8123:93;:::i;:::-;8241:2;8236:3;8232:12;8225:19;;8030:220;;;:::o;8256:118::-;8343:24;8361:5;8343:24;:::i;:::-;8338:3;8331:37;8321:53;;:::o;8380:112::-;8463:22;8479:5;8463:22;:::i;:::-;8458:3;8451:35;8441:51;;:::o;8498:222::-;8591:4;8629:2;8618:9;8614:18;8606:26;;8642:71;8710:1;8699:9;8695:17;8686:6;8642:71;:::i;:::-;8596:124;;;;:::o;8726:210::-;8813:4;8851:2;8840:9;8836:18;8828:26;;8864:65;8926:1;8915:9;8911:17;8902:6;8864:65;:::i;:::-;8818:118;;;;:::o;8942:276::-;9062:4;9100:2;9089:9;9085:18;9077:26;;9113:98;9208:1;9197:9;9193:17;9184:6;9113:98;:::i;:::-;9067:151;;;;:::o;9224:313::-;9337:4;9375:2;9364:9;9360:18;9352:26;;9424:9;9418:4;9414:20;9410:1;9399:9;9395:17;9388:47;9452:78;9525:4;9516:6;9452:78;:::i;:::-;9444:86;;9342:195;;;;:::o;9543:419::-;9709:4;9747:2;9736:9;9732:18;9724:26;;9796:9;9790:4;9786:20;9782:1;9771:9;9767:17;9760:47;9824:131;9950:4;9824:131;:::i;:::-;9816:139;;9714:248;;;:::o;9968:419::-;10134:4;10172:2;10161:9;10157:18;10149:26;;10221:9;10215:4;10211:20;10207:1;10196:9;10192:17;10185:47;10249:131;10375:4;10249:131;:::i;:::-;10241:139;;10139:248;;;:::o;10393:419::-;10559:4;10597:2;10586:9;10582:18;10574:26;;10646:9;10640:4;10636:20;10632:1;10621:9;10617:17;10610:47;10674:131;10800:4;10674:131;:::i;:::-;10666:139;;10564:248;;;:::o;10818:419::-;10984:4;11022:2;11011:9;11007:18;10999:26;;11071:9;11065:4;11061:20;11057:1;11046:9;11042:17;11035:47;11099:131;11225:4;11099:131;:::i;:::-;11091:139;;10989:248;;;:::o;11243:419::-;11409:4;11447:2;11436:9;11432:18;11424:26;;11496:9;11490:4;11486:20;11482:1;11471:9;11467:17;11460:47;11524:131;11650:4;11524:131;:::i;:::-;11516:139;;11414:248;;;:::o;11668:419::-;11834:4;11872:2;11861:9;11857:18;11849:26;;11921:9;11915:4;11911:20;11907:1;11896:9;11892:17;11885:47;11949:131;12075:4;11949:131;:::i;:::-;11941:139;;11839:248;;;:::o;12093:419::-;12259:4;12297:2;12286:9;12282:18;12274:26;;12346:9;12340:4;12336:20;12332:1;12321:9;12317:17;12310:47;12374:131;12500:4;12374:131;:::i;:::-;12366:139;;12264:248;;;:::o;12518:419::-;12684:4;12722:2;12711:9;12707:18;12699:26;;12771:9;12765:4;12761:20;12757:1;12746:9;12742:17;12735:47;12799:131;12925:4;12799:131;:::i;:::-;12791:139;;12689:248;;;:::o;12943:419::-;13109:4;13147:2;13136:9;13132:18;13124:26;;13196:9;13190:4;13186:20;13182:1;13171:9;13167:17;13160:47;13224:131;13350:4;13224:131;:::i;:::-;13216:139;;13114:248;;;:::o;13368:419::-;13534:4;13572:2;13561:9;13557:18;13549:26;;13621:9;13615:4;13611:20;13607:1;13596:9;13592:17;13585:47;13649:131;13775:4;13649:131;:::i;:::-;13641:139;;13539:248;;;:::o;13793:419::-;13959:4;13997:2;13986:9;13982:18;13974:26;;14046:9;14040:4;14036:20;14032:1;14021:9;14017:17;14010:47;14074:131;14200:4;14074:131;:::i;:::-;14066:139;;13964:248;;;:::o;14218:222::-;14311:4;14349:2;14338:9;14334:18;14326:26;;14362:71;14430:1;14419:9;14415:17;14406:6;14362:71;:::i;:::-;14316:124;;;;:::o;14446:214::-;14535:4;14573:2;14562:9;14558:18;14550:26;;14586:67;14650:1;14639:9;14635:17;14626:6;14586:67;:::i;:::-;14540:120;;;;:::o;14666:129::-;14700:6;14727:20;;:::i;:::-;14717:30;;14756:33;14784:4;14776:6;14756:33;:::i;:::-;14707:88;;;:::o;14801:75::-;14834:6;14867:2;14861:9;14851:19;;14841:35;:::o;14882:311::-;14959:4;15049:18;15041:6;15038:30;15035:2;;;15071:18;;:::i;:::-;15035:2;15121:4;15113:6;15109:17;15101:25;;15181:4;15175;15171:15;15163:23;;14964:229;;;:::o;15199:99::-;15251:6;15285:5;15279:12;15269:22;;15258:40;;;:::o;15304:169::-;15388:11;15422:6;15417:3;15410:19;15462:4;15457:3;15453:14;15438:29;;15400:73;;;;:::o;15479:305::-;15519:3;15538:20;15556:1;15538:20;:::i;:::-;15533:25;;15572:20;15590:1;15572:20;:::i;:::-;15567:25;;15726:1;15658:66;15654:74;15651:1;15648:81;15645:2;;;15732:18;;:::i;:::-;15645:2;15776:1;15773;15769:9;15762:16;;15523:261;;;;:::o;15790:185::-;15830:1;15847:20;15865:1;15847:20;:::i;:::-;15842:25;;15881:20;15899:1;15881:20;:::i;:::-;15876:25;;15920:1;15910:2;;15925:18;;:::i;:::-;15910:2;15967:1;15964;15960:9;15955:14;;15832:143;;;;:::o;15981:348::-;16021:7;16044:20;16062:1;16044:20;:::i;:::-;16039:25;;16078:20;16096:1;16078:20;:::i;:::-;16073:25;;16266:1;16198:66;16194:74;16191:1;16188:81;16183:1;16176:9;16169:17;16165:105;16162:2;;;16273:18;;:::i;:::-;16162:2;16321:1;16318;16314:9;16303:20;;16029:300;;;;:::o;16335:191::-;16375:4;16395:20;16413:1;16395:20;:::i;:::-;16390:25;;16429:20;16447:1;16429:20;:::i;:::-;16424:25;;16468:1;16465;16462:8;16459:2;;;16473:18;;:::i;:::-;16459:2;16518:1;16515;16511:9;16503:17;;16380:146;;;;:::o;16532:96::-;16569:7;16598:24;16616:5;16598:24;:::i;:::-;16587:35;;16577:51;;;:::o;16634:90::-;16668:7;16711:5;16704:13;16697:21;16686:32;;16676:48;;;:::o;16730:126::-;16767:7;16807:42;16800:5;16796:54;16785:65;;16775:81;;;:::o;16862:77::-;16899:7;16928:5;16917:16;;16907:32;;;:::o;16945:86::-;16980:7;17020:4;17013:5;17009:16;16998:27;;16988:43;;;:::o;17037:180::-;17114:9;17147:64;17205:5;17147:64;:::i;:::-;17134:77;;17124:93;;;:::o;17223:140::-;17300:9;17333:24;17351:5;17333:24;:::i;:::-;17320:37;;17310:53;;;:::o;17369:307::-;17437:1;17447:113;17461:6;17458:1;17455:13;17447:113;;;17546:1;17541:3;17537:11;17531:18;17527:1;17522:3;17518:11;17511:39;17483:2;17480:1;17476:10;17471:15;;17447:113;;;17578:6;17575:1;17572:13;17569:2;;;17658:1;17649:6;17644:3;17640:16;17633:27;17569:2;17418:258;;;;:::o;17682:320::-;17726:6;17763:1;17757:4;17753:12;17743:22;;17810:1;17804:4;17800:12;17831:18;17821:2;;17887:4;17879:6;17875:17;17865:27;;17821:2;17949;17941:6;17938:14;17918:18;17915:38;17912:2;;;17968:18;;:::i;:::-;17912:2;17733:269;;;;:::o;18008:281::-;18091:27;18113:4;18091:27;:::i;:::-;18083:6;18079:40;18221:6;18209:10;18206:22;18185:18;18173:10;18170:34;18167:62;18164:2;;;18232:18;;:::i;:::-;18164:2;18272:10;18268:2;18261:22;18051:238;;;:::o;18295:233::-;18334:3;18357:24;18375:5;18357:24;:::i;:::-;18348:33;;18403:66;18396:5;18393:77;18390:2;;;18473:18;;:::i;:::-;18390:2;18520:1;18513:5;18509:13;18502:20;;18338:190;;;:::o;18534:180::-;18582:77;18579:1;18572:88;18679:4;18676:1;18669:15;18703:4;18700:1;18693:15;18720:180;18768:77;18765:1;18758:88;18865:4;18862:1;18855:15;18889:4;18886:1;18879:15;18906:180;18954:77;18951:1;18944:88;19051:4;19048:1;19041:15;19075:4;19072:1;19065:15;19092:180;19140:77;19137:1;19130:88;19237:4;19234:1;19227:15;19261:4;19258:1;19251:15;19278:102;19319:6;19370:2;19366:7;19361:2;19354:5;19350:14;19346:28;19336:38;;19326:54;;;:::o;19386:222::-;19526:34;19522:1;19514:6;19510:14;19503:58;19595:5;19590:2;19582:6;19578:15;19571:30;19492:116;:::o;19614:221::-;19754:34;19750:1;19742:6;19738:14;19731:58;19823:4;19818:2;19810:6;19806:15;19799:29;19720:115;:::o;19841:177::-;19981:29;19977:1;19969:6;19965:14;19958:53;19947:71;:::o;20024:220::-;20164:34;20160:1;20152:6;20148:14;20141:58;20233:3;20228:2;20220:6;20216:15;20209:28;20130:114;:::o;20250:182::-;20390:34;20386:1;20378:6;20374:14;20367:58;20356:76;:::o;20438:228::-;20578:34;20574:1;20566:6;20562:14;20555:58;20647:11;20642:2;20634:6;20630:15;20623:36;20544:122;:::o;20672:160::-;20812:12;20808:1;20800:6;20796:14;20789:36;20778:54;:::o;20838:172::-;20978:24;20974:1;20966:6;20962:14;20955:48;20944:66;:::o;21016:224::-;21156:34;21152:1;21144:6;21140:14;21133:58;21225:7;21220:2;21212:6;21208:15;21201:32;21122:118;:::o;21246:223::-;21386:34;21382:1;21374:6;21370:14;21363:58;21455:6;21450:2;21442:6;21438:15;21431:31;21352:117;:::o;21475:169::-;21615:21;21611:1;21603:6;21599:14;21592:45;21581:63;:::o;21650:122::-;21723:24;21741:5;21723:24;:::i;:::-;21716:5;21713:35;21703:2;;21762:1;21759;21752:12;21703:2;21693:79;:::o;21778:122::-;21851:24;21869:5;21851:24;:::i;:::-;21844:5;21841:35;21831:2;;21890:1;21887;21880:12;21831:2;21821:79;:::o
Swarm Source
ipfs://24feb782d4eec14e05a0b6127057acbbc7d856dcb85602129e535e3931200ba0
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.