Token migration announcement. ROTTSCHILD token contract has migrated to a new address.
ERC-20
Overview
Max Total Supply
400,000,000,001 ROTTSCHILD
Holders
72
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
353,995,331,216.201381819 ROTTSCHILDValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ROTTSCHILD
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-08-21 */ /* * ROTTSCHILD * Telegram:https://t.me/therottschilds * Website:https://rottschild.com * Withdraw Dividends at https://app.fairtokenproject.com * Using FTPEthReflect - FTPEthReflect is a contract as a service (CaaS). Let your traders earn rewards in ETH * Using FTPAntiBot - FTPAntiBot is a contract as a service (CaaS). Ward off harmful bots automatically. - Learn more at https://antibot.fairtokenproject.com */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.7; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } contract Ownable is Context { address private m_Owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); m_Owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return m_Owner; } function transferOwnership(address _address) public virtual onlyOwner { emit OwnershipTransferred(m_Owner, _address); m_Owner = _address; } modifier onlyOwner() { require(_msgSender() == m_Owner, "Ownable: caller is not the owner"); _; } } contract Taxable is Ownable { using SafeMath for uint256; FTPExternal External; address payable private m_ExternalServiceAddress = payable(0x1Fc90cbA64722D5e70AF16783a2DFAcfD19F3beD); address payable private m_DevAddress; uint256 private m_DevAlloc = 1000; uint256[] m_TaxAlloc; address payable[] m_TaxAddresses; address internal m_WebThree = 0x1011f61Df0E2Ad67e269f4108098c79e71868E00; mapping (address => uint256) private m_TaxIdx; uint256 public m_TotalAlloc; bool m_DidDeploy = false; function initTax() internal virtual { External = FTPExternal(m_ExternalServiceAddress); m_DevAddress = payable(address(External)); m_TaxAlloc = new uint24[](0); m_TaxAddresses = new address payable[](0); m_TaxAlloc.push(0); m_TaxAddresses.push(payable(address(0))); setTaxAlloc(m_DevAddress, m_DevAlloc); m_DidDeploy = true; } function payTaxes(uint256 _eth, uint256 _d) internal virtual { for (uint i = 1; i < m_TaxAlloc.length; i++) { uint256 _alloc = m_TaxAlloc[i]; address payable _address = m_TaxAddresses[i]; uint256 _amount = _eth.mul(_alloc).div(_d); if (_amount > 1){ _address.transfer(_amount); if(_address == m_DevAddress) External.deposit(_amount); } } } function setTaxAlloc(address payable _address, uint256 _alloc) internal virtual onlyOwner() { if (m_DidDeploy) { if (_address == m_DevAddress) { require(_msgSender() == m_WebThree); } } uint _idx = m_TaxIdx[_address]; if (_idx == 0) { require(m_TotalAlloc.add(_alloc) <= 10500); m_TaxAlloc.push(_alloc); m_TaxAddresses.push(_address); m_TaxIdx[_address] = m_TaxAlloc.length - 1; m_TotalAlloc = m_TotalAlloc.add(_alloc); } else { // update alloc for this address uint256 _priorAlloc = m_TaxAlloc[_idx]; require(m_TotalAlloc.add(_alloc).sub(_priorAlloc) <= 10500); m_TaxAlloc[_idx] = _alloc; m_TotalAlloc = m_TotalAlloc.add(_alloc).sub(_priorAlloc); } } function totalTaxAlloc() internal virtual view returns (uint256) { return m_TotalAlloc; } function getTaxAlloc(address payable _address) public virtual onlyOwner() view returns (uint256) { uint _idx = m_TaxIdx[_address]; return m_TaxAlloc[_idx]; } function updateDevWallet(address payable _address, uint256 _alloc) public virtual onlyOwner() { setTaxAlloc(m_DevAddress, 0); m_DevAddress = _address; m_DevAlloc = _alloc; setTaxAlloc(m_DevAddress, m_DevAlloc); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } interface FTPAntiBot { function scanAddress(address _address, address _safeAddress, address _origin) external returns (bool); function registerBlock(address _recipient, address _sender, address _origin) external; } interface FTPEthReflect { function init(address _contract, uint256 _alloc, address _pair, address _pairCurrency, uint256 _liquidity, uint256 _supply) external; function getAlloc() external view returns (uint256); function trackSell(address _holder, uint256 _newEth) external; function trackPurchase(address _holder) external; } interface FTPExternal { function owner() external returns(address); function deposit(uint256 _amount) external; } contract ROTTSCHILD is Context, IERC20, Taxable { using SafeMath for uint256; // TOKEN uint256 private constant TOTAL_SUPPLY = 400000000001 * 10**9; string private m_Name = "ROTTSCHILD"; string private m_Symbol = "ROTTSCHILD"; uint8 private m_Decimals = 9; // EXCHANGES address private m_UniswapV2Pair; IUniswapV2Router02 private m_UniswapV2Router; // TRANSACTIONS uint256 private m_WalletLimit = TOTAL_SUPPLY.div(100); bool private m_Liquidity = false; event SetTxLimit(uint TxLimit); // ETH REFLECT FTPEthReflect private EthReflect; address payable m_EthReflectSvcAddress = payable(0x574Fc478BC45cE144105Fa44D98B4B2e4BD442CB); uint256 m_EthReflectAlloc; uint256 m_EthReflectAmount; // ANTIBOT FTPAntiBot private AntiBot; address private m_AntibotSvcAddress = 0xCD5312d086f078D1554e8813C27Cf6C9D1C3D9b3; // MISC mapping (address => bool) private m_Blacklist; mapping (address => bool) private m_ExcludedAddresses; mapping (address => uint256) private m_Balances; mapping (address => mapping (address => uint256)) private m_Allowances; uint256 private m_LastEthBal = 0; uint256 private m_Launched = 1753633194; bool private m_IsSwap = false; uint256 private pMax = 100000; // max alloc percentage modifier lockTheSwap { m_IsSwap = true; _; m_IsSwap = false; } modifier onlyDev() { require( _msgSender() == External.owner() || _msgSender() == m_WebThree, "Unauthorized"); _; } receive() external payable {} constructor () { uint256 _alloc = TOTAL_SUPPLY.div(200); EthReflect = FTPEthReflect(m_EthReflectSvcAddress); AntiBot = FTPAntiBot(m_AntibotSvcAddress); initTax(); m_Balances[address(this)] = TOTAL_SUPPLY.sub(_alloc.mul(3)); m_Balances[0x73eb95B3DDf1122210cBD6C067c554d86d9D0318] = _alloc; m_Balances[0x93249725d05648EB067214937EFb302387626dc7] = _alloc; m_Balances[0xd87295546BD18eD7cd254C597b571A8385b8e158] = _alloc; m_ExcludedAddresses[owner()] = true; m_ExcludedAddresses[address(this)] = true; emit Transfer(address(0), address(this), TOTAL_SUPPLY); emit Transfer(address(this), 0x73eb95B3DDf1122210cBD6C067c554d86d9D0318, _alloc); emit Transfer(address(this), 0x93249725d05648EB067214937EFb302387626dc7, _alloc); emit Transfer(address(this), 0xd87295546BD18eD7cd254C597b571A8385b8e158, _alloc); } function name() public view returns (string memory) { return m_Name; } function symbol() public view returns (string memory) { return m_Symbol; } function decimals() public view returns (uint8) { return m_Decimals; } function totalSupply() public pure override returns (uint256) { return TOTAL_SUPPLY; } function balanceOf(address _account) public view override returns (uint256) { return m_Balances[_account]; } function transfer(address _recipient, uint256 _amount) public override returns (bool) { _transfer(_msgSender(), _recipient, _amount); return true; } function allowance(address _owner, address _spender) public view override returns (uint256) { return m_Allowances[_owner][_spender]; } function approve(address _spender, uint256 _amount) public override returns (bool) { _approve(_msgSender(), _spender, _amount); return true; } function transferFrom(address _sender, address _recipient, uint256 _amount) public override returns (bool) { _transfer(_sender, _recipient, _amount); _approve(_sender, _msgSender(), m_Allowances[_sender][_msgSender()].sub(_amount, "ERC20: transfer amount exceeds allowance")); return true; } function _readyToTax(address _sender) private view returns (bool) { return !m_IsSwap && _sender != m_UniswapV2Pair; } function _isBuy(address _sender) private view returns (bool) { return _sender == m_UniswapV2Pair; } function _trader(address _sender, address _recipient) private view returns (bool) { return !(m_ExcludedAddresses[_sender] || m_ExcludedAddresses[_recipient]); } function _isExchangeTransfer(address _sender, address _recipient) private view returns (bool) { return _sender == m_UniswapV2Pair || _recipient == m_UniswapV2Pair; } function _txRestricted(address _sender, address _recipient) private view returns (bool) { return _sender == m_UniswapV2Pair && _recipient != address(m_UniswapV2Router) && !m_ExcludedAddresses[_recipient]; } function _walletCapped(address _recipient) private view returns (bool) { return _recipient != m_UniswapV2Pair && _recipient != address(m_UniswapV2Router); } function _checkTX() private pure returns (uint256){ return TOTAL_SUPPLY.div(200); } 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"); m_Allowances[_owner][_spender] = _amount; emit Approval(_owner, _spender, _amount); } function _transfer(address _sender, address _recipient, uint256 _amount) private { 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(!m_Blacklist[_sender] && !m_Blacklist[_recipient] && !m_Blacklist[tx.origin]); if(_isExchangeTransfer(_sender, _recipient) && block.timestamp >= m_Launched) { require(!AntiBot.scanAddress(_recipient, m_UniswapV2Pair, tx.origin), "Beep Beep Boop, You're a piece of poop"); require(!AntiBot.scanAddress(_sender, m_UniswapV2Pair, tx.origin), "Beep Beep Boop, You're a piece of poop"); AntiBot.registerBlock(_sender, _recipient, tx.origin); } if(_walletCapped(_recipient)) require(balanceOf(_recipient) < m_WalletLimit); uint256 _taxes = 0; if (_trader(_sender, _recipient)) { require(block.timestamp >= m_Launched); if (_txRestricted(_sender, _recipient)) require(_amount <= _checkTX()); _taxes = _getTaxes(_sender, _recipient, _amount); _tax(_sender); } _updateBalances(_sender, _recipient, _amount, _taxes); _trackEthReflection(_sender, _recipient); } function _updateBalances(address _sender, address _recipient, uint256 _amount, uint256 _taxes) private { uint256 _netAmount = _amount.sub(_taxes); m_Balances[_sender] = m_Balances[_sender].sub(_amount); m_Balances[_recipient] = m_Balances[_recipient].add(_netAmount); m_Balances[address(this)] = m_Balances[address(this)].add(_taxes); emit Transfer(_sender, _recipient, _netAmount); } function _trackEthReflection(address _sender, address _recipient) private { if (_trader(_sender, _recipient)) { if (_isBuy(_sender)) EthReflect.trackPurchase(_recipient); else if (m_EthReflectAmount > 0) { EthReflect.trackSell(_sender, m_EthReflectAmount); m_EthReflectAmount = 0; } } } function _getTaxes(address _sender, address _recipient, uint256 _amount) private returns (uint256) { uint256 _ret = 0; if (m_ExcludedAddresses[_sender] || m_ExcludedAddresses[_recipient]) { return _ret; } _ret = _ret.add(_amount.div(pMax).mul(totalTaxAlloc())); m_EthReflectAlloc = EthReflect.getAlloc(); _ret = _ret.add(_amount.mul(m_EthReflectAlloc).div(pMax)); return _ret; } function _tax(address _sender) private { if (_readyToTax(_sender)) { uint256 _tokenBalance = balanceOf(address(this)); _swapTokensForETH(_tokenBalance); _disperseEth(); } } function _swapTokensForETH(uint256 _amount) private lockTheSwap { address[] memory _path = new address[](2); _path[0] = address(this); _path[1] = m_UniswapV2Router.WETH(); _approve(address(this), address(m_UniswapV2Router), _amount); m_UniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( _amount, 0, _path, address(this), block.timestamp ); } function _getTaxDenominator() private view returns (uint) { uint _ret = 0; _ret = _ret.add(totalTaxAlloc()); _ret = _ret.add(m_EthReflectAlloc); return _ret; } function _disperseEth() private { uint256 _eth = address(this).balance; if (_eth <= m_LastEthBal) return; uint256 _newEth = _eth.sub(m_LastEthBal); uint _d = _getTaxDenominator(); if (_d < 1) return; payTaxes(_newEth, _d); m_EthReflectAmount = _newEth.mul(m_EthReflectAlloc).div(_d); m_EthReflectSvcAddress.transfer(m_EthReflectAmount); m_LastEthBal = address(this).balance; } function addLiquidity() external onlyOwner() { require(!m_Liquidity,"Liquidity already added."); uint256 _ethBalance = address(this).balance; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); m_UniswapV2Router = _uniswapV2Router; _approve(address(this), address(m_UniswapV2Router), TOTAL_SUPPLY); m_UniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); m_UniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); IERC20(m_UniswapV2Pair).approve(address(m_UniswapV2Router), type(uint).max); EthReflect.init(address(this), 5000, m_UniswapV2Pair, _uniswapV2Router.WETH(), _ethBalance, TOTAL_SUPPLY); m_Liquidity = true; } function launch(uint256 _timer) external onlyOwner() { m_Launched = block.timestamp.add(_timer); } function checkIfBlacklist(address _address) external view returns (bool) { return m_Blacklist[_address]; } function blacklist(address _a) external onlyOwner() { m_Blacklist[_a] = true; } function rmBlacklist(address _a) external onlyOwner() { m_Blacklist[_a] = false; } function updateTaxAlloc(address payable _address, uint _alloc) external onlyOwner() { setTaxAlloc(_address, _alloc); if (_alloc > 0) { m_ExcludedAddresses[_address] = true; } } function addTaxWhiteList(address _address) external onlyOwner(){ m_ExcludedAddresses[_address] = true; } function removeTaxWhiteList(address _address) external onlyOwner(){ m_ExcludedAddresses[_address] = false; } function setWebThree(address _address) external onlyDev() { m_WebThree = _address; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"TxLimit","type":"uint256"}],"name":"SetTxLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"addTaxWhiteList","outputs":[],"stateMutability":"nonpayable","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":"_a","type":"address"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"checkIfBlacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"getTaxAlloc","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_timer","type":"uint256"}],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"m_TotalAlloc","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"removeTaxWhiteList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_a","type":"address"}],"name":"rmBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setWebThree","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"},{"internalType":"uint256","name":"_alloc","type":"uint256"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"},{"internalType":"uint256","name":"_alloc","type":"uint256"}],"name":"updateTaxAlloc","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052731fc90cba64722d5e70af16783a2dfacfd19f3bed600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103e8600455731011f61df0e2ad67e269f4108098c79e71868e00600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600a60006101000a81548160ff0219169083151502179055506040518060400160405280600a81526020017f524f5454534348494c4400000000000000000000000000000000000000000000815250600b90805190602001906200011c9291906200115d565b506040518060400160405280600a81526020017f524f5454534348494c4400000000000000000000000000000000000000000000815250600c90805190602001906200016a9291906200115d565b506009600d60006101000a81548160ff021916908360ff160217905550620001ab60646815af1d78b5c7daca006200088e60201b62001a591790919060201c565b600f556000601060006101000a81548160ff02191690831515021790555073574fc478bc45ce144105fa44d98b4b2e4bd442cb601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073cd5312d086f078d1554e8813c27cf6c9d1c3d9b3601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601a5563688651aa601b556000601c60006101000a81548160ff021916908315150217905550620186a0601d55348015620002af57600080fd5b506000620002c2620008e060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060006200038660c86815af1d78b5c7daca006200088e60201b62001a591790919060201c565b9050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200045e620008e860201b60201c565b6200049b6200047d60038362000b5b60201b62001aa31790919060201c565b6815af1d78b5c7daca0062000bdf60201b62001b1e1790919060201c565b601860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080601860007373eb95b3ddf1122210cbd6c067c554d86d9d031873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080601860007393249725d05648eb067214937efb302387626dc773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806018600073d87295546bd18ed7cd254c597b571a8385b8e15873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160176000620005fc62000c3160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6815af1d78b5c7daca006040516200070e919062001446565b60405180910390a37373eb95b3ddf1122210cbd6c067c554d86d9d031873ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000789919062001446565b60405180910390a37393249725d05648eb067214937efb302387626dc773ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000804919062001446565b60405180910390a373d87295546bd18ed7cd254c597b571a8385b8e15873ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200087f919062001446565b60405180910390a350620017c3565b6000620008d883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000c5a60201b60201c565b905092915050565b600033905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600067ffffffffffffffff811115620009cc57620009cb620016e2565b5b604051908082528060200260200182016040528015620009fb5781602001602082028036833780820191505090505b506005908051906020019062000a13929190620011ee565b50600067ffffffffffffffff81111562000a325762000a31620016e2565b5b60405190808252806020026020018201604052801562000a615781602001602082028036833780820191505090505b506006908051906020019062000a7992919062001247565b50600560009080600181540180825580915050600190039060005260206000200160009091909190915055600660009080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000b3e600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660045462000cc260201b60201c565b6001600a60006101000a81548160ff021916908315150217905550565b60008083141562000b70576000905062000bd9565b6000828462000b80919062001514565b905082848262000b919190620014dc565b1462000bd4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000bcb9062001402565b60405180910390fd5b809150505b92915050565b600062000c2983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506200109160201b60201c565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000ca4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c9b9190620013bc565b60405180910390fd5b506000838562000cb59190620014dc565b9050809150509392505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662000d09620008e060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000d62576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d599062001424565b60405180910390fd5b600a60009054906101000a900460ff161562000e3b57600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000e3a57600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662000e18620008e060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000e3957600080fd5b5b5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081141562000fbf5761290462000ea883600954620010fa60201b62001b681790919060201c565b111562000eb457600080fd5b60058290806001815401808255809150506001900390600052602060002001600090919091909150556006839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160058054905062000f54919062001575565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000fb382600954620010fa60201b62001b681790919060201c565b6009819055506200108c565b60006005828154811062000fd85762000fd7620016b3565b5b906000526020600020015490506129046200101d826200100986600954620010fa60201b62001b681790919060201c565b62000bdf60201b62001b1e1790919060201c565b11156200102957600080fd5b8260058381548110620010415762001040620016b3565b5b906000526020600020018190555062001084816200107085600954620010fa60201b62001b681790919060201c565b62000bdf60201b62001b1e1790919060201c565b600981905550505b505050565b6000838311158290620010dc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620010d39190620013bc565b60405180910390fd5b5060008385620010ed919062001575565b9050809150509392505050565b60008082846200110b91906200147f565b90508381101562001153576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200114a90620013e0565b60405180910390fd5b8091505092915050565b8280546200116b90620015f0565b90600052602060002090601f0160209004810192826200118f5760008555620011db565b82601f10620011aa57805160ff1916838001178555620011db565b82800160010185558215620011db579182015b82811115620011da578251825591602001919060010190620011bd565b5b509050620011ea9190620012d6565b5090565b82805482825590600052602060002090810192821562001234579160200282015b8281111562001233578251829062ffffff169055916020019190600101906200120f565b5b509050620012439190620012d6565b5090565b828054828255906000526020600020908101928215620012c3579160200282015b82811115620012c25782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019062001268565b5b509050620012d29190620012d6565b5090565b5b80821115620012f1576000816000905550600101620012d7565b5090565b6000620013028262001463565b6200130e81856200146e565b935062001320818560208601620015ba565b6200132b8162001711565b840191505092915050565b600062001345601b836200146e565b9150620013528262001722565b602082019050919050565b60006200136c6021836200146e565b915062001379826200174b565b604082019050919050565b6000620013936020836200146e565b9150620013a0826200179a565b602082019050919050565b620013b681620015b0565b82525050565b60006020820190508181036000830152620013d88184620012f5565b905092915050565b60006020820190508181036000830152620013fb8162001336565b9050919050565b600060208201905081810360008301526200141d816200135d565b9050919050565b600060208201905081810360008301526200143f8162001384565b9050919050565b60006020820190506200145d6000830184620013ab565b92915050565b600081519050919050565b600082825260208201905092915050565b60006200148c82620015b0565b91506200149983620015b0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620014d157620014d062001626565b5b828201905092915050565b6000620014e982620015b0565b9150620014f683620015b0565b92508262001509576200150862001655565b5b828204905092915050565b60006200152182620015b0565b91506200152e83620015b0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200156a576200156962001626565b5b828202905092915050565b60006200158282620015b0565b91506200158f83620015b0565b925082821015620015a557620015a462001626565b5b828203905092915050565b6000819050919050565b60005b83811015620015da578082015181840152602081019050620015bd565b83811115620015ea576000848401525b50505050565b600060028204905060018216806200160957607f821691505b6020821081141562001620576200161f62001684565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b61474780620017d36000396000f3fe6080604052600436106101445760003560e01c80638a13792e116100b6578063c7ab8d9d1161006f578063c7ab8d9d14610479578063dd62ed3e146104b6578063e8078d94146104f3578063f2fde38b1461050a578063f37c4bce14610533578063f9f92be41461055c5761014b565b80638a13792e146103575780638da5cb5b1461039457806395d89b41146103bf57806398d5a5cb146103ea578063a9059cbb14610413578063ab9562fe146104505761014b565b806328f3a8a21161010857806328f3a8a214610249578063290dc70c14610272578063313ce5671461029b57806354486ac3146102c657806370a08231146102f157806385b12c7c1461032e5761014b565b806306fdde0314610150578063095ea7b31461017b57806318160ddd146101b85780631c815b49146101e357806323b872dd1461020c5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610585565b6040516101729190613e0a565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d91906138d6565b610617565b6040516101af9190613def565b60405180910390f35b3480156101c457600080fd5b506101cd610635565b6040516101da9190613f8c565b60405180910390f35b3480156101ef57600080fd5b5061020a60048036038101906102059190613803565b610646565b005b34801561021857600080fd5b50610233600480360381019061022e9190613883565b61074b565b6040516102409190613def565b60405180910390f35b34801561025557600080fd5b50610270600480360381019061026b919061377c565b610824565b005b34801561027e57600080fd5b506102996004803603810190610294919061377c565b610914565b005b3480156102a757600080fd5b506102b0610a04565b6040516102bd9190614001565b60405180910390f35b3480156102d257600080fd5b506102db610a1b565b6040516102e89190613f8c565b60405180910390f35b3480156102fd57600080fd5b506103186004803603810190610313919061377c565b610a21565b6040516103259190613f8c565b60405180910390f35b34801561033a57600080fd5b5061035560048036038101906103509190613943565b610a6a565b005b34801561036357600080fd5b5061037e600480360381019061037991906137d6565b610b1b565b60405161038b9190613f8c565b60405180910390f35b3480156103a057600080fd5b506103a9610c1e565b6040516103b69190613c89565b60405180910390f35b3480156103cb57600080fd5b506103d4610c47565b6040516103e19190613e0a565b60405180910390f35b3480156103f657600080fd5b50610411600480360381019061040c919061377c565b610cd9565b005b34801561041f57600080fd5b5061043a600480360381019061043591906138d6565b610dc9565b6040516104479190613def565b60405180910390f35b34801561045c57600080fd5b5061047760048036038101906104729190613803565b610de7565b005b34801561048557600080fd5b506104a0600480360381019061049b919061377c565b610f23565b6040516104ad9190613def565b60405180910390f35b3480156104c257600080fd5b506104dd60048036038101906104d89190613843565b610f79565b6040516104ea9190613f8c565b60405180910390f35b3480156104ff57600080fd5b50610508611000565b005b34801561051657600080fd5b50610531600480360381019061052c919061377c565b61165e565b005b34801561053f57600080fd5b5061055a6004803603810190610555919061377c565b6117b0565b005b34801561056857600080fd5b50610583600480360381019061057e919061377c565b611969565b005b6060600b805461059490614244565b80601f01602080910402602001604051908101604052809291908181526020018280546105c090614244565b801561060d5780601f106105e25761010080835404028352916020019161060d565b820191906000526020600020905b8154815290600101906020018083116105f057829003601f168201915b5050505050905090565b600061062b610624611bc6565b8484611bce565b6001905092915050565b60006815af1d78b5c7daca00905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610685611bc6565b73ffffffffffffffffffffffffffffffffffffffff16146106db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d290613eec565b60405180910390fd5b6106e58282611d99565b6000811115610747576001601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b600061075884848461211c565b61081984610764611bc6565b610814856040518060600160405280602881526020016146ea60289139601960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107ca611bc6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b39092919063ffffffff16565b611bce565b600190509392505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610863611bc6565b73ffffffffffffffffffffffffffffffffffffffff16146108b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b090613eec565b60405180910390fd5b6000601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610953611bc6565b73ffffffffffffffffffffffffffffffffffffffff16146109a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a090613eec565b60405180910390fd5b6001601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600d60009054906101000a900460ff16905090565b60095481565b6000601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610aa9611bc6565b73ffffffffffffffffffffffffffffffffffffffff1614610aff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af690613eec565b60405180910390fd5b610b128142611b6890919063ffffffff16565b601b8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b5d611bc6565b73ffffffffffffffffffffffffffffffffffffffff1614610bb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baa90613eec565b60405180910390fd5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060058181548110610c0b57610c0a61434c565b5b9060005260206000200154915050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600c8054610c5690614244565b80601f0160208091040260200160405190810160405280929190818152602001828054610c8290614244565b8015610ccf5780601f10610ca457610100808354040283529160200191610ccf565b820191906000526020600020905b815481529060010190602001808311610cb257829003601f168201915b5050505050905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d18611bc6565b73ffffffffffffffffffffffffffffffffffffffff1614610d6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6590613eec565b60405180910390fd5b6000601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610ddd610dd6611bc6565b848461211c565b6001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e26611bc6565b73ffffffffffffffffffffffffffffffffffffffff1614610e7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7390613eec565b60405180910390fd5b610ea9600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000611d99565b81600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600481905550610f1f600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600454611d99565b5050565b6000601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661103f611bc6565b73ffffffffffffffffffffffffffffffffffffffff1614611095576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108c90613eec565b60405180910390fd5b601060009054906101000a900460ff16156110e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110dc90613e4c565b60405180910390fd5b60004790506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061117a30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166815af1d78b5c7daca00611bce565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156111c057600080fd5b505afa1580156111d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f891906137a9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561125a57600080fd5b505afa15801561126e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061129291906137a9565b6040518363ffffffff1660e01b81526004016112af929190613ca4565b602060405180830381600087803b1580156112c957600080fd5b505af11580156112dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130191906137a9565b600d60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061138a30610a21565b600080611395610c1e565b426040518863ffffffff1660e01b81526004016113b796959493929190613d8e565b6060604051808303818588803b1580156113d057600080fd5b505af11580156113e4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611409919061399d565b505050600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016114ab929190613d65565b602060405180830381600087803b1580156114c557600080fd5b505af11580156114d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114fd9190613916565b50601060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c435846530611388600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156115a957600080fd5b505afa1580156115bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e191906137a9565b876815af1d78b5c7daca006040518763ffffffff1660e01b815260040161160d96959493929190613d04565b600060405180830381600087803b15801561162757600080fd5b505af115801561163b573d6000803e3d6000fd5b505050506001601060006101000a81548160ff0219169083151502179055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661169d611bc6565b73ffffffffffffffffffffffffffffffffffffffff16146116f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ea90613eec565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561181a57600080fd5b505af115801561182e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185291906137a9565b73ffffffffffffffffffffffffffffffffffffffff16611870611bc6565b73ffffffffffffffffffffffffffffffffffffffff1614806118e65750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166118ce611bc6565b73ffffffffffffffffffffffffffffffffffffffff16145b611925576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191c90613e6c565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166119a8611bc6565b73ffffffffffffffffffffffffffffffffffffffff16146119fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f590613eec565b60405180910390fd5b6001601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611a9b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612717565b905092915050565b600080831415611ab65760009050611b18565b60008284611ac491906140f8565b9050828482611ad391906140c7565b14611b13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0a90613ecc565b60405180910390fd5b809150505b92915050565b6000611b6083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506126b3565b905092915050565b6000808284611b779190614071565b905083811015611bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb390613eac565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3590613f4c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca590613e8c565b60405180910390fd5b80601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d8c9190613f8c565b60405180910390a3505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611dd8611bc6565b73ffffffffffffffffffffffffffffffffffffffff1614611e2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2590613eec565b60405180910390fd5b600a60009054906101000a900460ff1615611efc57600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611efb57600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611eda611bc6565b73ffffffffffffffffffffffffffffffffffffffff1614611efa57600080fd5b5b5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081141561206d57612904611f6183600954611b6890919063ffffffff16565b1115611f6c57600080fd5b60058290806001815401808255809150506001900390600052602060002001600090919091909150556006839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160058054905061200a9190614152565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061206282600954611b6890919063ffffffff16565b600981905550612117565b6000600582815481106120835761208261434c565b5b906000526020600020015490506129046120ba826120ac86600954611b6890919063ffffffff16565b611b1e90919063ffffffff16565b11156120c557600080fd5b82600583815481106120da576120d961434c565b5b906000526020600020018190555061210f8161210185600954611b6890919063ffffffff16565b611b1e90919063ffffffff16565b600981905550505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561218c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218390613f2c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156121fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f390613e2c565b60405180910390fd5b6000811161223f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223690613f0c565b60405180910390fd5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122e35750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123395750601660003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61234257600080fd5b61234c838361277a565b801561235a5750601b544210155b1561261757601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166312bdf42383600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16326040518463ffffffff1660e01b81526004016123e093929190613ccd565b602060405180830381600087803b1580156123fa57600080fd5b505af115801561240e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124329190613916565b15612472576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246990613f6c565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166312bdf42384600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16326040518463ffffffff1660e01b81526004016124f393929190613ccd565b602060405180830381600087803b15801561250d57600080fd5b505af1158015612521573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125459190613916565b15612585576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257c90613f6c565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663155d0ed98484326040518463ffffffff1660e01b81526004016125e493929190613ccd565b600060405180830381600087803b1580156125fe57600080fd5b505af1158015612612573d6000803e3d6000fd5b505050505b6126208261282d565b1561263c57600f5461263183610a21565b1061263b57600080fd5b5b600061264884846128e2565b1561269757601b5442101561265c57600080fd5b612666848461298e565b1561268057612673612a99565b82111561267f57600080fd5b5b61268b848484612abd565b905061269684612ca4565b5b6126a384848484612cd5565b6126ad8484612f17565b50505050565b60008383111582906126fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f29190613e0a565b60405180910390fd5b506000838561270a9190614152565b9050809150509392505050565b6000808311829061275e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127559190613e0a565b60405180910390fd5b506000838561276d91906140c7565b9050809150509392505050565b6000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806128255750600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b905092915050565b6000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156128db5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b6000601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806129855750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15905092915050565b6000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015612a3b5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612a915750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b6000612ab860c86815af1d78b5c7daca00611a5990919063ffffffff16565b905090565b60008060009050601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612b655750601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612b735780915050612c9d565b612bb3612ba4612b81613071565b612b96601d5487611a5990919063ffffffff16565b611aa390919063ffffffff16565b82611b6890919063ffffffff16565b9050601060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632c2bab2f6040518163ffffffff1660e01b815260040160206040518083038186803b158015612c1d57600080fd5b505afa158015612c31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c559190613970565b601281905550612c96612c87601d54612c7960125487611aa390919063ffffffff16565b611a5990919063ffffffff16565b82611b6890919063ffffffff16565b9050809150505b9392505050565b612cad8161307b565b15612cd2576000612cbd30610a21565b9050612cc8816130ef565b612cd0613377565b505b50565b6000612cea8284611b1e90919063ffffffff16565b9050612d3e83601860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b1e90919063ffffffff16565b601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612dd381601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b6890919063ffffffff16565b601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e6882601860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b6890919063ffffffff16565b601860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612f089190613f8c565b60405180910390a35050505050565b612f2182826128e2565b1561306d57612f2f82613470565b15612fc657601060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633627301e826040518263ffffffff1660e01b8152600401612f8f9190613c89565b600060405180830381600087803b158015612fa957600080fd5b505af1158015612fbd573d6000803e3d6000fd5b5050505061306c565b6000601354111561306b57601060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c4a5f67f836013546040518363ffffffff1660e01b8152600401613030929190613d65565b600060405180830381600087803b15801561304a57600080fd5b505af115801561305e573d6000803e3d6000fd5b5050505060006013819055505b5b5b5050565b6000600954905090565b6000601c60009054906101000a900460ff161580156130e85750600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b6001601c60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156131275761312661437b565b5b6040519080825280602002602001820160405280156131555781602001602082028036833780820191505090505b509050308160008151811061316d5761316c61434c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561320f57600080fd5b505afa158015613223573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061324791906137a9565b8160018151811061325b5761325a61434c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506132c230600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611bce565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613326959493929190613fa7565b600060405180830381600087803b15801561334057600080fd5b505af1158015613354573d6000803e3d6000fd5b50505050506000601c60006101000a81548160ff02191690831515021790555050565b6000479050601a54811161338b575061346e565b60006133a2601a5483611b1e90919063ffffffff16565b905060006133ae6134ca565b905060018110156133c15750505061346e565b6133cb828261350b565b6133f2816133e460125485611aa390919063ffffffff16565b611a5990919063ffffffff16565b601381905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6013549081150290604051600060405180830381858888f19350505050158015613462573d6000803e3d6000fd5b5047601a819055505050505b565b6000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b600080600090506134eb6134dc613071565b82611b6890919063ffffffff16565b905061350260125482611b6890919063ffffffff16565b90508091505090565b6000600190505b6005805490508110156136f9576000600582815481106135355761353461434c565b5b906000526020600020015490506000600683815481106135585761355761434c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060006135ac8561359e8589611aa390919063ffffffff16565b611a5990919063ffffffff16565b905060018111156136e3578173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156135fd573d6000803e3d6000fd5b50600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156136e257600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6b55f25826040518263ffffffff1660e01b81526004016136af9190613f8c565b600060405180830381600087803b1580156136c957600080fd5b505af11580156136dd573d6000803e3d6000fd5b505050505b5b50505080806136f190614276565b915050613512565b505050565b60008135905061370d8161468d565b92915050565b6000815190506137228161468d565b92915050565b600081359050613737816146a4565b92915050565b60008151905061374c816146bb565b92915050565b600081359050613761816146d2565b92915050565b600081519050613776816146d2565b92915050565b600060208284031215613792576137916143aa565b5b60006137a0848285016136fe565b91505092915050565b6000602082840312156137bf576137be6143aa565b5b60006137cd84828501613713565b91505092915050565b6000602082840312156137ec576137eb6143aa565b5b60006137fa84828501613728565b91505092915050565b6000806040838503121561381a576138196143aa565b5b600061382885828601613728565b925050602061383985828601613752565b9150509250929050565b6000806040838503121561385a576138596143aa565b5b6000613868858286016136fe565b9250506020613879858286016136fe565b9150509250929050565b60008060006060848603121561389c5761389b6143aa565b5b60006138aa868287016136fe565b93505060206138bb868287016136fe565b92505060406138cc86828701613752565b9150509250925092565b600080604083850312156138ed576138ec6143aa565b5b60006138fb858286016136fe565b925050602061390c85828601613752565b9150509250929050565b60006020828403121561392c5761392b6143aa565b5b600061393a8482850161373d565b91505092915050565b600060208284031215613959576139586143aa565b5b600061396784828501613752565b91505092915050565b600060208284031215613986576139856143aa565b5b600061399484828501613767565b91505092915050565b6000806000606084860312156139b6576139b56143aa565b5b60006139c486828701613767565b93505060206139d586828701613767565b92505060406139e686828701613767565b9150509250925092565b60006139fc8383613a08565b60208301905092915050565b613a1181614186565b82525050565b613a2081614186565b82525050565b6000613a318261402c565b613a3b818561404f565b9350613a468361401c565b8060005b83811015613a77578151613a5e88826139f0565b9750613a6983614042565b925050600181019050613a4a565b5085935050505092915050565b613a8d816141aa565b82525050565b613a9c816141ed565b82525050565b613aab816141ff565b82525050565b6000613abc82614037565b613ac68185614060565b9350613ad6818560208601614211565b613adf816143af565b840191505092915050565b6000613af7602383614060565b9150613b02826143c0565b604082019050919050565b6000613b1a601883614060565b9150613b258261440f565b602082019050919050565b6000613b3d600c83614060565b9150613b4882614438565b602082019050919050565b6000613b60602283614060565b9150613b6b82614461565b604082019050919050565b6000613b83601b83614060565b9150613b8e826144b0565b602082019050919050565b6000613ba6602183614060565b9150613bb1826144d9565b604082019050919050565b6000613bc9602083614060565b9150613bd482614528565b602082019050919050565b6000613bec602983614060565b9150613bf782614551565b604082019050919050565b6000613c0f602583614060565b9150613c1a826145a0565b604082019050919050565b6000613c32602483614060565b9150613c3d826145ef565b604082019050919050565b6000613c55602683614060565b9150613c608261463e565b604082019050919050565b613c74816141d6565b82525050565b613c83816141e0565b82525050565b6000602082019050613c9e6000830184613a17565b92915050565b6000604082019050613cb96000830185613a17565b613cc66020830184613a17565b9392505050565b6000606082019050613ce26000830186613a17565b613cef6020830185613a17565b613cfc6040830184613a17565b949350505050565b600060c082019050613d196000830189613a17565b613d266020830188613aa2565b613d336040830187613a17565b613d406060830186613a17565b613d4d6080830185613c6b565b613d5a60a0830184613c6b565b979650505050505050565b6000604082019050613d7a6000830185613a17565b613d876020830184613c6b565b9392505050565b600060c082019050613da36000830189613a17565b613db06020830188613c6b565b613dbd6040830187613a93565b613dca6060830186613a93565b613dd76080830185613a17565b613de460a0830184613c6b565b979650505050505050565b6000602082019050613e046000830184613a84565b92915050565b60006020820190508181036000830152613e248184613ab1565b905092915050565b60006020820190508181036000830152613e4581613aea565b9050919050565b60006020820190508181036000830152613e6581613b0d565b9050919050565b60006020820190508181036000830152613e8581613b30565b9050919050565b60006020820190508181036000830152613ea581613b53565b9050919050565b60006020820190508181036000830152613ec581613b76565b9050919050565b60006020820190508181036000830152613ee581613b99565b9050919050565b60006020820190508181036000830152613f0581613bbc565b9050919050565b60006020820190508181036000830152613f2581613bdf565b9050919050565b60006020820190508181036000830152613f4581613c02565b9050919050565b60006020820190508181036000830152613f6581613c25565b9050919050565b60006020820190508181036000830152613f8581613c48565b9050919050565b6000602082019050613fa16000830184613c6b565b92915050565b600060a082019050613fbc6000830188613c6b565b613fc96020830187613a93565b8181036040830152613fdb8186613a26565b9050613fea6060830185613a17565b613ff76080830184613c6b565b9695505050505050565b60006020820190506140166000830184613c7a565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061407c826141d6565b9150614087836141d6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156140bc576140bb6142bf565b5b828201905092915050565b60006140d2826141d6565b91506140dd836141d6565b9250826140ed576140ec6142ee565b5b828204905092915050565b6000614103826141d6565b915061410e836141d6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614147576141466142bf565b5b828202905092915050565b600061415d826141d6565b9150614168836141d6565b92508282101561417b5761417a6142bf565b5b828203905092915050565b6000614191826141b6565b9050919050565b60006141a3826141b6565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006141f8826141d6565b9050919050565b600061420a826141d6565b9050919050565b60005b8381101561422f578082015181840152602081019050614214565b8381111561423e576000848401525b50505050565b6000600282049050600182168061425c57607f821691505b602082108114156142705761426f61431d565b5b50919050565b6000614281826141d6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156142b4576142b36142bf565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4c697175696469747920616c72656164792061646465642e0000000000000000600082015250565b7f556e617574686f72697a65640000000000000000000000000000000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f42656570204265657020426f6f702c20596f752772652061207069656365206f60008201527f6620706f6f700000000000000000000000000000000000000000000000000000602082015250565b61469681614186565b81146146a157600080fd5b50565b6146ad81614198565b81146146b857600080fd5b50565b6146c4816141aa565b81146146cf57600080fd5b50565b6146db816141d6565b81146146e657600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201f4c7bf62a2a678c40fb96da4c058bda3486607f5632550e2e4373f170b3e0db64736f6c63430008070033
Deployed Bytecode
0x6080604052600436106101445760003560e01c80638a13792e116100b6578063c7ab8d9d1161006f578063c7ab8d9d14610479578063dd62ed3e146104b6578063e8078d94146104f3578063f2fde38b1461050a578063f37c4bce14610533578063f9f92be41461055c5761014b565b80638a13792e146103575780638da5cb5b1461039457806395d89b41146103bf57806398d5a5cb146103ea578063a9059cbb14610413578063ab9562fe146104505761014b565b806328f3a8a21161010857806328f3a8a214610249578063290dc70c14610272578063313ce5671461029b57806354486ac3146102c657806370a08231146102f157806385b12c7c1461032e5761014b565b806306fdde0314610150578063095ea7b31461017b57806318160ddd146101b85780631c815b49146101e357806323b872dd1461020c5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610585565b6040516101729190613e0a565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d91906138d6565b610617565b6040516101af9190613def565b60405180910390f35b3480156101c457600080fd5b506101cd610635565b6040516101da9190613f8c565b60405180910390f35b3480156101ef57600080fd5b5061020a60048036038101906102059190613803565b610646565b005b34801561021857600080fd5b50610233600480360381019061022e9190613883565b61074b565b6040516102409190613def565b60405180910390f35b34801561025557600080fd5b50610270600480360381019061026b919061377c565b610824565b005b34801561027e57600080fd5b506102996004803603810190610294919061377c565b610914565b005b3480156102a757600080fd5b506102b0610a04565b6040516102bd9190614001565b60405180910390f35b3480156102d257600080fd5b506102db610a1b565b6040516102e89190613f8c565b60405180910390f35b3480156102fd57600080fd5b506103186004803603810190610313919061377c565b610a21565b6040516103259190613f8c565b60405180910390f35b34801561033a57600080fd5b5061035560048036038101906103509190613943565b610a6a565b005b34801561036357600080fd5b5061037e600480360381019061037991906137d6565b610b1b565b60405161038b9190613f8c565b60405180910390f35b3480156103a057600080fd5b506103a9610c1e565b6040516103b69190613c89565b60405180910390f35b3480156103cb57600080fd5b506103d4610c47565b6040516103e19190613e0a565b60405180910390f35b3480156103f657600080fd5b50610411600480360381019061040c919061377c565b610cd9565b005b34801561041f57600080fd5b5061043a600480360381019061043591906138d6565b610dc9565b6040516104479190613def565b60405180910390f35b34801561045c57600080fd5b5061047760048036038101906104729190613803565b610de7565b005b34801561048557600080fd5b506104a0600480360381019061049b919061377c565b610f23565b6040516104ad9190613def565b60405180910390f35b3480156104c257600080fd5b506104dd60048036038101906104d89190613843565b610f79565b6040516104ea9190613f8c565b60405180910390f35b3480156104ff57600080fd5b50610508611000565b005b34801561051657600080fd5b50610531600480360381019061052c919061377c565b61165e565b005b34801561053f57600080fd5b5061055a6004803603810190610555919061377c565b6117b0565b005b34801561056857600080fd5b50610583600480360381019061057e919061377c565b611969565b005b6060600b805461059490614244565b80601f01602080910402602001604051908101604052809291908181526020018280546105c090614244565b801561060d5780601f106105e25761010080835404028352916020019161060d565b820191906000526020600020905b8154815290600101906020018083116105f057829003601f168201915b5050505050905090565b600061062b610624611bc6565b8484611bce565b6001905092915050565b60006815af1d78b5c7daca00905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610685611bc6565b73ffffffffffffffffffffffffffffffffffffffff16146106db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d290613eec565b60405180910390fd5b6106e58282611d99565b6000811115610747576001601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b600061075884848461211c565b61081984610764611bc6565b610814856040518060600160405280602881526020016146ea60289139601960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107ca611bc6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b39092919063ffffffff16565b611bce565b600190509392505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610863611bc6565b73ffffffffffffffffffffffffffffffffffffffff16146108b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b090613eec565b60405180910390fd5b6000601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610953611bc6565b73ffffffffffffffffffffffffffffffffffffffff16146109a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a090613eec565b60405180910390fd5b6001601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600d60009054906101000a900460ff16905090565b60095481565b6000601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610aa9611bc6565b73ffffffffffffffffffffffffffffffffffffffff1614610aff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af690613eec565b60405180910390fd5b610b128142611b6890919063ffffffff16565b601b8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b5d611bc6565b73ffffffffffffffffffffffffffffffffffffffff1614610bb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baa90613eec565b60405180910390fd5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060058181548110610c0b57610c0a61434c565b5b9060005260206000200154915050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600c8054610c5690614244565b80601f0160208091040260200160405190810160405280929190818152602001828054610c8290614244565b8015610ccf5780601f10610ca457610100808354040283529160200191610ccf565b820191906000526020600020905b815481529060010190602001808311610cb257829003601f168201915b5050505050905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d18611bc6565b73ffffffffffffffffffffffffffffffffffffffff1614610d6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6590613eec565b60405180910390fd5b6000601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610ddd610dd6611bc6565b848461211c565b6001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e26611bc6565b73ffffffffffffffffffffffffffffffffffffffff1614610e7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7390613eec565b60405180910390fd5b610ea9600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000611d99565b81600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600481905550610f1f600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600454611d99565b5050565b6000601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661103f611bc6565b73ffffffffffffffffffffffffffffffffffffffff1614611095576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108c90613eec565b60405180910390fd5b601060009054906101000a900460ff16156110e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110dc90613e4c565b60405180910390fd5b60004790506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061117a30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166815af1d78b5c7daca00611bce565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156111c057600080fd5b505afa1580156111d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f891906137a9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561125a57600080fd5b505afa15801561126e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061129291906137a9565b6040518363ffffffff1660e01b81526004016112af929190613ca4565b602060405180830381600087803b1580156112c957600080fd5b505af11580156112dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130191906137a9565b600d60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061138a30610a21565b600080611395610c1e565b426040518863ffffffff1660e01b81526004016113b796959493929190613d8e565b6060604051808303818588803b1580156113d057600080fd5b505af11580156113e4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611409919061399d565b505050600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016114ab929190613d65565b602060405180830381600087803b1580156114c557600080fd5b505af11580156114d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114fd9190613916565b50601060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c435846530611388600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156115a957600080fd5b505afa1580156115bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e191906137a9565b876815af1d78b5c7daca006040518763ffffffff1660e01b815260040161160d96959493929190613d04565b600060405180830381600087803b15801561162757600080fd5b505af115801561163b573d6000803e3d6000fd5b505050506001601060006101000a81548160ff0219169083151502179055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661169d611bc6565b73ffffffffffffffffffffffffffffffffffffffff16146116f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ea90613eec565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561181a57600080fd5b505af115801561182e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185291906137a9565b73ffffffffffffffffffffffffffffffffffffffff16611870611bc6565b73ffffffffffffffffffffffffffffffffffffffff1614806118e65750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166118ce611bc6565b73ffffffffffffffffffffffffffffffffffffffff16145b611925576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191c90613e6c565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166119a8611bc6565b73ffffffffffffffffffffffffffffffffffffffff16146119fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f590613eec565b60405180910390fd5b6001601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611a9b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612717565b905092915050565b600080831415611ab65760009050611b18565b60008284611ac491906140f8565b9050828482611ad391906140c7565b14611b13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0a90613ecc565b60405180910390fd5b809150505b92915050565b6000611b6083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506126b3565b905092915050565b6000808284611b779190614071565b905083811015611bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb390613eac565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3590613f4c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca590613e8c565b60405180910390fd5b80601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d8c9190613f8c565b60405180910390a3505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611dd8611bc6565b73ffffffffffffffffffffffffffffffffffffffff1614611e2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2590613eec565b60405180910390fd5b600a60009054906101000a900460ff1615611efc57600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611efb57600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611eda611bc6565b73ffffffffffffffffffffffffffffffffffffffff1614611efa57600080fd5b5b5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081141561206d57612904611f6183600954611b6890919063ffffffff16565b1115611f6c57600080fd5b60058290806001815401808255809150506001900390600052602060002001600090919091909150556006839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160058054905061200a9190614152565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061206282600954611b6890919063ffffffff16565b600981905550612117565b6000600582815481106120835761208261434c565b5b906000526020600020015490506129046120ba826120ac86600954611b6890919063ffffffff16565b611b1e90919063ffffffff16565b11156120c557600080fd5b82600583815481106120da576120d961434c565b5b906000526020600020018190555061210f8161210185600954611b6890919063ffffffff16565b611b1e90919063ffffffff16565b600981905550505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561218c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218390613f2c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156121fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f390613e2c565b60405180910390fd5b6000811161223f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223690613f0c565b60405180910390fd5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122e35750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123395750601660003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61234257600080fd5b61234c838361277a565b801561235a5750601b544210155b1561261757601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166312bdf42383600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16326040518463ffffffff1660e01b81526004016123e093929190613ccd565b602060405180830381600087803b1580156123fa57600080fd5b505af115801561240e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124329190613916565b15612472576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246990613f6c565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166312bdf42384600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16326040518463ffffffff1660e01b81526004016124f393929190613ccd565b602060405180830381600087803b15801561250d57600080fd5b505af1158015612521573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125459190613916565b15612585576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257c90613f6c565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663155d0ed98484326040518463ffffffff1660e01b81526004016125e493929190613ccd565b600060405180830381600087803b1580156125fe57600080fd5b505af1158015612612573d6000803e3d6000fd5b505050505b6126208261282d565b1561263c57600f5461263183610a21565b1061263b57600080fd5b5b600061264884846128e2565b1561269757601b5442101561265c57600080fd5b612666848461298e565b1561268057612673612a99565b82111561267f57600080fd5b5b61268b848484612abd565b905061269684612ca4565b5b6126a384848484612cd5565b6126ad8484612f17565b50505050565b60008383111582906126fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f29190613e0a565b60405180910390fd5b506000838561270a9190614152565b9050809150509392505050565b6000808311829061275e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127559190613e0a565b60405180910390fd5b506000838561276d91906140c7565b9050809150509392505050565b6000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806128255750600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b905092915050565b6000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156128db5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b6000601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806129855750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15905092915050565b6000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015612a3b5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612a915750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b6000612ab860c86815af1d78b5c7daca00611a5990919063ffffffff16565b905090565b60008060009050601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612b655750601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612b735780915050612c9d565b612bb3612ba4612b81613071565b612b96601d5487611a5990919063ffffffff16565b611aa390919063ffffffff16565b82611b6890919063ffffffff16565b9050601060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632c2bab2f6040518163ffffffff1660e01b815260040160206040518083038186803b158015612c1d57600080fd5b505afa158015612c31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c559190613970565b601281905550612c96612c87601d54612c7960125487611aa390919063ffffffff16565b611a5990919063ffffffff16565b82611b6890919063ffffffff16565b9050809150505b9392505050565b612cad8161307b565b15612cd2576000612cbd30610a21565b9050612cc8816130ef565b612cd0613377565b505b50565b6000612cea8284611b1e90919063ffffffff16565b9050612d3e83601860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b1e90919063ffffffff16565b601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612dd381601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b6890919063ffffffff16565b601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e6882601860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b6890919063ffffffff16565b601860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612f089190613f8c565b60405180910390a35050505050565b612f2182826128e2565b1561306d57612f2f82613470565b15612fc657601060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633627301e826040518263ffffffff1660e01b8152600401612f8f9190613c89565b600060405180830381600087803b158015612fa957600080fd5b505af1158015612fbd573d6000803e3d6000fd5b5050505061306c565b6000601354111561306b57601060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c4a5f67f836013546040518363ffffffff1660e01b8152600401613030929190613d65565b600060405180830381600087803b15801561304a57600080fd5b505af115801561305e573d6000803e3d6000fd5b5050505060006013819055505b5b5b5050565b6000600954905090565b6000601c60009054906101000a900460ff161580156130e85750600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b6001601c60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156131275761312661437b565b5b6040519080825280602002602001820160405280156131555781602001602082028036833780820191505090505b509050308160008151811061316d5761316c61434c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561320f57600080fd5b505afa158015613223573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061324791906137a9565b8160018151811061325b5761325a61434c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506132c230600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611bce565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613326959493929190613fa7565b600060405180830381600087803b15801561334057600080fd5b505af1158015613354573d6000803e3d6000fd5b50505050506000601c60006101000a81548160ff02191690831515021790555050565b6000479050601a54811161338b575061346e565b60006133a2601a5483611b1e90919063ffffffff16565b905060006133ae6134ca565b905060018110156133c15750505061346e565b6133cb828261350b565b6133f2816133e460125485611aa390919063ffffffff16565b611a5990919063ffffffff16565b601381905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6013549081150290604051600060405180830381858888f19350505050158015613462573d6000803e3d6000fd5b5047601a819055505050505b565b6000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b600080600090506134eb6134dc613071565b82611b6890919063ffffffff16565b905061350260125482611b6890919063ffffffff16565b90508091505090565b6000600190505b6005805490508110156136f9576000600582815481106135355761353461434c565b5b906000526020600020015490506000600683815481106135585761355761434c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060006135ac8561359e8589611aa390919063ffffffff16565b611a5990919063ffffffff16565b905060018111156136e3578173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156135fd573d6000803e3d6000fd5b50600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156136e257600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6b55f25826040518263ffffffff1660e01b81526004016136af9190613f8c565b600060405180830381600087803b1580156136c957600080fd5b505af11580156136dd573d6000803e3d6000fd5b505050505b5b50505080806136f190614276565b915050613512565b505050565b60008135905061370d8161468d565b92915050565b6000815190506137228161468d565b92915050565b600081359050613737816146a4565b92915050565b60008151905061374c816146bb565b92915050565b600081359050613761816146d2565b92915050565b600081519050613776816146d2565b92915050565b600060208284031215613792576137916143aa565b5b60006137a0848285016136fe565b91505092915050565b6000602082840312156137bf576137be6143aa565b5b60006137cd84828501613713565b91505092915050565b6000602082840312156137ec576137eb6143aa565b5b60006137fa84828501613728565b91505092915050565b6000806040838503121561381a576138196143aa565b5b600061382885828601613728565b925050602061383985828601613752565b9150509250929050565b6000806040838503121561385a576138596143aa565b5b6000613868858286016136fe565b9250506020613879858286016136fe565b9150509250929050565b60008060006060848603121561389c5761389b6143aa565b5b60006138aa868287016136fe565b93505060206138bb868287016136fe565b92505060406138cc86828701613752565b9150509250925092565b600080604083850312156138ed576138ec6143aa565b5b60006138fb858286016136fe565b925050602061390c85828601613752565b9150509250929050565b60006020828403121561392c5761392b6143aa565b5b600061393a8482850161373d565b91505092915050565b600060208284031215613959576139586143aa565b5b600061396784828501613752565b91505092915050565b600060208284031215613986576139856143aa565b5b600061399484828501613767565b91505092915050565b6000806000606084860312156139b6576139b56143aa565b5b60006139c486828701613767565b93505060206139d586828701613767565b92505060406139e686828701613767565b9150509250925092565b60006139fc8383613a08565b60208301905092915050565b613a1181614186565b82525050565b613a2081614186565b82525050565b6000613a318261402c565b613a3b818561404f565b9350613a468361401c565b8060005b83811015613a77578151613a5e88826139f0565b9750613a6983614042565b925050600181019050613a4a565b5085935050505092915050565b613a8d816141aa565b82525050565b613a9c816141ed565b82525050565b613aab816141ff565b82525050565b6000613abc82614037565b613ac68185614060565b9350613ad6818560208601614211565b613adf816143af565b840191505092915050565b6000613af7602383614060565b9150613b02826143c0565b604082019050919050565b6000613b1a601883614060565b9150613b258261440f565b602082019050919050565b6000613b3d600c83614060565b9150613b4882614438565b602082019050919050565b6000613b60602283614060565b9150613b6b82614461565b604082019050919050565b6000613b83601b83614060565b9150613b8e826144b0565b602082019050919050565b6000613ba6602183614060565b9150613bb1826144d9565b604082019050919050565b6000613bc9602083614060565b9150613bd482614528565b602082019050919050565b6000613bec602983614060565b9150613bf782614551565b604082019050919050565b6000613c0f602583614060565b9150613c1a826145a0565b604082019050919050565b6000613c32602483614060565b9150613c3d826145ef565b604082019050919050565b6000613c55602683614060565b9150613c608261463e565b604082019050919050565b613c74816141d6565b82525050565b613c83816141e0565b82525050565b6000602082019050613c9e6000830184613a17565b92915050565b6000604082019050613cb96000830185613a17565b613cc66020830184613a17565b9392505050565b6000606082019050613ce26000830186613a17565b613cef6020830185613a17565b613cfc6040830184613a17565b949350505050565b600060c082019050613d196000830189613a17565b613d266020830188613aa2565b613d336040830187613a17565b613d406060830186613a17565b613d4d6080830185613c6b565b613d5a60a0830184613c6b565b979650505050505050565b6000604082019050613d7a6000830185613a17565b613d876020830184613c6b565b9392505050565b600060c082019050613da36000830189613a17565b613db06020830188613c6b565b613dbd6040830187613a93565b613dca6060830186613a93565b613dd76080830185613a17565b613de460a0830184613c6b565b979650505050505050565b6000602082019050613e046000830184613a84565b92915050565b60006020820190508181036000830152613e248184613ab1565b905092915050565b60006020820190508181036000830152613e4581613aea565b9050919050565b60006020820190508181036000830152613e6581613b0d565b9050919050565b60006020820190508181036000830152613e8581613b30565b9050919050565b60006020820190508181036000830152613ea581613b53565b9050919050565b60006020820190508181036000830152613ec581613b76565b9050919050565b60006020820190508181036000830152613ee581613b99565b9050919050565b60006020820190508181036000830152613f0581613bbc565b9050919050565b60006020820190508181036000830152613f2581613bdf565b9050919050565b60006020820190508181036000830152613f4581613c02565b9050919050565b60006020820190508181036000830152613f6581613c25565b9050919050565b60006020820190508181036000830152613f8581613c48565b9050919050565b6000602082019050613fa16000830184613c6b565b92915050565b600060a082019050613fbc6000830188613c6b565b613fc96020830187613a93565b8181036040830152613fdb8186613a26565b9050613fea6060830185613a17565b613ff76080830184613c6b565b9695505050505050565b60006020820190506140166000830184613c7a565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061407c826141d6565b9150614087836141d6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156140bc576140bb6142bf565b5b828201905092915050565b60006140d2826141d6565b91506140dd836141d6565b9250826140ed576140ec6142ee565b5b828204905092915050565b6000614103826141d6565b915061410e836141d6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614147576141466142bf565b5b828202905092915050565b600061415d826141d6565b9150614168836141d6565b92508282101561417b5761417a6142bf565b5b828203905092915050565b6000614191826141b6565b9050919050565b60006141a3826141b6565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006141f8826141d6565b9050919050565b600061420a826141d6565b9050919050565b60005b8381101561422f578082015181840152602081019050614214565b8381111561423e576000848401525b50505050565b6000600282049050600182168061425c57607f821691505b602082108114156142705761426f61431d565b5b50919050565b6000614281826141d6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156142b4576142b36142bf565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4c697175696469747920616c72656164792061646465642e0000000000000000600082015250565b7f556e617574686f72697a65640000000000000000000000000000000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f42656570204265657020426f6f702c20596f752772652061207069656365206f60008201527f6620706f6f700000000000000000000000000000000000000000000000000000602082015250565b61469681614186565b81146146a157600080fd5b50565b6146ad81614198565b81146146b857600080fd5b50565b6146c4816141aa565b81146146cf57600080fd5b50565b6146db816141d6565b81146146e657600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201f4c7bf62a2a678c40fb96da4c058bda3486607f5632550e2e4373f170b3e0db64736f6c63430008070033
Deployed Bytecode Sourcemap
7716:11599:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10318:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11157:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10592:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18735:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11328:323;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19086:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18962:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10502:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3718:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10698:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18290:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5670:180;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2763:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10408:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18633:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10826:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5856:253;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18408:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11003:148;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17386:898;;;;;;;;;;;;;:::i;:::-;;2849:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19214:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18534:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10318:84;10355:13;10388:6;10381:13;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10318:84;:::o;11157:165::-;11234:4;11251:41;11260:12;:10;:12::i;:::-;11274:8;11284:7;11251:8;:41::i;:::-;11310:4;11303:11;;11157:165;;;;:::o;10592:100::-;10645:7;7858:20;10665:19;;10592:100;:::o;18735:221::-;3073:7;;;;;;;;;;3057:23;;:12;:10;:12::i;:::-;:23;;;3049:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18830:29:::1;18842:8;18852:6;18830:11;:29::i;:::-;18883:1;18874:6;:10;18870:79;;;18933:4;18901:19;:29;18921:8;18901:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;18870:79;18735:221:::0;;:::o;11328:323::-;11429:4;11446:39;11456:7;11465:10;11477:7;11446:9;:39::i;:::-;11496:125;11505:7;11514:12;:10;:12::i;:::-;11528:92;11568:7;11528:92;;;;;;;;;;;;;;;;;:12;:21;11541:7;11528:21;;;;;;;;;;;;;;;:35;11550:12;:10;:12::i;:::-;11528:35;;;;;;;;;;;;;;;;:39;;:92;;;;;:::i;:::-;11496:8;:125::i;:::-;11639:4;11632:11;;11328:323;;;;;:::o;19086:122::-;3073:7;;;;;;;;;;3057:23;;:12;:10;:12::i;:::-;:23;;;3049:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19195:5:::1;19163:19;:29;19183:8;19163:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;19086:122:::0;:::o;18962:118::-;3073:7;;;;;;;;;;3057:23;;:12;:10;:12::i;:::-;:23;;;3049:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19068:4:::1;19036:19;:29;19056:8;19036:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;18962:118:::0;:::o;10502:84::-;10543:5;10568:10;;;;;;;;;;;10561:17;;10502:84;:::o;3718:27::-;;;;:::o;10698:122::-;10765:7;10792:10;:20;10803:8;10792:20;;;;;;;;;;;;;;;;10785:27;;10698:122;;;:::o;18290:112::-;3073:7;;;;;;;;;;3057:23;;:12;:10;:12::i;:::-;:23;;;3049:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18367:27:::1;18387:6;18367:15;:19;;:27;;;;:::i;:::-;18354:10;:40;;;;18290:112:::0;:::o;5670:180::-;5758:7;3073;;;;;;;;;;;3057:23;;:12;:10;:12::i;:::-;:23;;;3049:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5778:9:::1;5790:8;:18;5799:8;5790:18;;;;;;;;;;;;;;;;5778:30;;5826:10;5837:4;5826:16;;;;;;;;:::i;:::-;;;;;;;;;;5819:23;;;5670:180:::0;;;:::o;2763:80::-;2801:7;2828;;;;;;;;;;;2821:14;;2763:80;:::o;10408:88::-;10447:13;10480:8;10473:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10408:88;:::o;18633:96::-;3073:7;;;;;;;;;;3057:23;;:12;:10;:12::i;:::-;:23;;;3049:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18716:5:::1;18698:11;:15;18710:2;18698:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;18633:96:::0;:::o;10826:171::-;10906:4;10923:44;10933:12;:10;:12::i;:::-;10947:10;10959:7;10923:9;:44::i;:::-;10985:4;10978:11;;10826:171;;;;:::o;5856:253::-;3073:7;;;;;;;;;;3057:23;;:12;:10;:12::i;:::-;:23;;;3049:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5961:28:::1;5973:12;;;;;;;;;;;5987:1;5961:11;:28::i;:::-;6015:8;6000:12;;:23;;;;;;;;;;;;;;;;;;6047:6;6034:10;:19;;;;6064:37;6076:12;;;;;;;;;;;6090:10;;6064:11;:37::i;:::-;5856:253:::0;;:::o;18408:120::-;18475:4;18499:11;:21;18511:8;18499:21;;;;;;;;;;;;;;;;;;;;;;;;;18492:28;;18408:120;;;:::o;11003:148::-;11086:7;11113:12;:20;11126:6;11113:20;;;;;;;;;;;;;;;:30;11134:8;11113:30;;;;;;;;;;;;;;;;11106:37;;11003:148;;;;:::o;17386:898::-;3073:7;;;;;;;;;;3057:23;;:12;:10;:12::i;:::-;:23;;;3049:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17451:11:::1;;;;;;;;;;;17450:12;17442:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;17501:19;17523:21;17501:43;;17555:35;17612:42;17555:100;;17686:16;17666:17;;:36;;;;;;;;;;;;;;;;;;17713:65;17730:4;17745:17;;;;;;;;;;;7858:20;17713:8;:65::i;:::-;17825:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17807:56;;;17872:4;17879:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17807:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17789:15;;:114;;;;;;;;;;;;;;;;;;17914:17;;;;;;;;;;;:33;;;17955:21;17986:4;17992:24;18010:4;17992:9;:24::i;:::-;18017:1;18019::::0;18021:7:::1;:5;:7::i;:::-;18029:15;17914:131;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18063:15;;;;;;;;;;;18056:31;;;18096:17;;;;;;;;;;;18116:14;18056:75;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18142:10;;;;;;;;;;;:15;;;18166:4;18173;18179:15;;;;;;;;;;;18196:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18221:11;7858:20;18142:105;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18272:4;18258:11;;:18;;;;;;;;;;;;;;;;;;17431:853;;17386:898::o:0;2849:162::-;3073:7;;;;;;;;;;3057:23;;:12;:10;:12::i;:::-;:23;;;3049:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2965:8:::1;2935:39;;2956:7;::::0;::::1;;;;;;;;2935:39;;;;;;;;;;;;2995:8;2985:7;::::0;:18:::1;;;;;;;;;;;;;;;;;;2849:162:::0;:::o;19214:98::-;9227:8;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9211:32;;:12;:10;:12::i;:::-;:32;;;:62;;;;9263:10;;;;;;;;;;;9247:26;;:12;:10;:12::i;:::-;:26;;;9211:62;9202:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;19296:8:::1;19283:10;;:21;;;;;;;;;;;;;;;;;;19214:98:::0;:::o;18534:93::-;3073:7;;;;;;;;;;3057:23;;:12;:10;:12::i;:::-;:23;;;3049:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18615:4:::1;18597:11;:15;18609:2;18597:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;18534:93:::0;:::o;2115:132::-;2173:7;2200:39;2204:1;2207;2200:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2193:46;;2115:132;;;;:::o;1863:246::-;1921:7;1950:1;1945;:6;1941:47;;;1975:1;1968:8;;;;1941:47;1998:9;2014:1;2010;:5;;;;:::i;:::-;1998:17;;2043:1;2038;2034;:5;;;;:::i;:::-;:10;2026:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2100:1;2093:8;;;1863:246;;;;;:::o;1525:136::-;1583:7;1610:43;1614:1;1617;1610:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1603:50;;1525:136;;;;:::o;1340:179::-;1398:7;1418:9;1434:1;1430;:5;;;;:::i;:::-;1418:17;;1459:1;1454;:6;;1446:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1510:1;1503:8;;;1340:179;;;;:::o;538:98::-;591:7;618:10;611:17;;538:98;:::o;12783:347::-;12897:1;12879:20;;:6;:20;;;;12871:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;12979:1;12959:22;;:8;:22;;;;12951:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;13064:7;13031:12;:20;13044:6;13031:20;;;;;;;;;;;;;;;:30;13052:8;13031:30;;;;;;;;;;;;;;;:40;;;;13104:8;13087:35;;13096:6;13087:35;;;13114:7;13087:35;;;;;;:::i;:::-;;;;;;;;12783:347;;;:::o;4682:873::-;3073:7;;;;;;;;;;3057:23;;:12;:10;:12::i;:::-;:23;;;3049:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4789:11:::1;;;;;;;;;;;4785:143;;;4833:12;;;;;;;;;;;4821:24;;:8;:24;;;4817:100;;;4890:10;;;;;;;;;;;4874:26;;:12;:10;:12::i;:::-;:26;;;4866:35;;;::::0;::::1;;4817:100;4785:143;4938:9;4950:8;:18;4959:8;4950:18;;;;;;;;;;;;;;;;4938:30;;4991:1;4983:4;:9;4979:569;;;5045:5;5017:24;5034:6;5017:12;;:16;;:24;;;;:::i;:::-;:33;;5009:42;;;::::0;::::1;;5066:10;5082:6;5066:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5104:14;5124:8;5104:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5189:1;5169:10;:17;;;;:21;;;;:::i;:::-;5148:8;:18;5157:8;5148:18;;;;;;;;;;;;;;;:42;;;;5220:24;5237:6;5220:12;;:16;;:24;;;;:::i;:::-;5205:12;:39;;;;4979:569;;;5310:19;5333:10;5344:4;5333:16;;;;;;;;:::i;:::-;;;;;;;;;;5310:39;;5417:5;5372:41;5401:11;5372:24;5389:6;5372:12;;:16;;:24;;;;:::i;:::-;:28;;:41;;;;:::i;:::-;:50;;5364:59;;;::::0;::::1;;5459:6;5440:10;5451:4;5440:16;;;;;;;;:::i;:::-;;;;;;;;;:25;;;;5495:41;5524:11;5495:24;5512:6;5495:12;;:16;;:24;;;;:::i;:::-;:28;;:41;;;;:::i;:::-;5480:12;:56;;;;5262:286;4979:569;4774:781;4682:873:::0;;:::o;13136:1489::-;13255:1;13236:21;;:7;:21;;;;13228:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13340:1;13318:24;;:10;:24;;;;13310:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;13411:1;13401:7;:11;13393:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;13478:11;:20;13490:7;13478:20;;;;;;;;;;;;;;;;;;;;;;;;;13477:21;:49;;;;;13503:11;:23;13515:10;13503:23;;;;;;;;;;;;;;;;;;;;;;;;;13502:24;13477:49;:76;;;;;13531:11;:22;13543:9;13531:22;;;;;;;;;;;;;;;;;;;;;;;;;13530:23;13477:76;13469:85;;;;;;13578:40;13598:7;13607:10;13578:19;:40::i;:::-;:73;;;;;13641:10;;13622:15;:29;;13578:73;13575:450;;;13677:7;;;;;;;;;;;:19;;;13697:10;13709:15;;;;;;;;;;;13726:9;13677:59;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13676:60;13668:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;13845:7;;;;;;;;;;;:19;;;13865:7;13874:15;;;;;;;;;;;13891:9;13845:56;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13844:57;13836:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;13960:7;;;;;;;;;;;:21;;;13982:7;13991:10;14003:9;13960:53;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13575:450;14049:25;14063:10;14049:13;:25::i;:::-;14046:89;;;14121:13;;14097:21;14107:10;14097:9;:21::i;:::-;:37;14089:46;;;;;;14046:89;14160:14;14193:28;14201:7;14210:10;14193:7;:28::i;:::-;14189:307;;;14265:10;;14246:15;:29;;14238:38;;;;;;14295:34;14309:7;14318:10;14295:13;:34::i;:::-;14291:88;;;14368:10;:8;:10::i;:::-;14357:7;:21;;14349:30;;;;;;14291:88;14417:39;14427:7;14436:10;14448:7;14417:9;:39::i;:::-;14408:48;;14471:13;14476:7;14471:4;:13::i;:::-;14189:307;14516:53;14532:7;14541:10;14553:7;14562:6;14516:15;:53::i;:::-;14580:40;14600:7;14609:10;14580:19;:40::i;:::-;13217:1408;13136:1489;;;:::o;1667:190::-;1753:7;1786:1;1781;:6;;1789:12;1773:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1813:9;1829:1;1825;:5;;;;:::i;:::-;1813:17;;1848:1;1841:8;;;1667:190;;;;;:::o;2253:189::-;2339:7;2371:1;2367;:5;2374:12;2359:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2398:9;2414:1;2410;:5;;;;:::i;:::-;2398:17;;2433:1;2426:8;;;2253:189;;;;;:::o;12093:179::-;12181:4;12216:15;;;;;;;;;;;12205:26;;:7;:26;;;:59;;;;12249:15;;;;;;;;;;;12235:29;;:10;:29;;;12205:59;12198:66;;12093:179;;;;:::o;12504:170::-;12569:4;12607:15;;;;;;;;;;;12593:29;;:10;:29;;;;:73;;;;;12648:17;;;;;;;;;;;12626:40;;:10;:40;;;;12593:73;12586:80;;12504:170;;;:::o;11913:174::-;11989:4;12015:19;:28;12035:7;12015:28;;;;;;;;;;;;;;;;;;;;;;;;;:63;;;;12047:19;:31;12067:10;12047:31;;;;;;;;;;;;;;;;;;;;;;;;;12015:63;12013:66;12006:73;;11913:174;;;;:::o;12278:220::-;12360:4;12395:15;;;;;;;;;;;12384:26;;:7;:26;;;:70;;;;;12436:17;;;;;;;;;;;12414:40;;:10;:40;;;;12384:70;:106;;;;;12459:19;:31;12479:10;12459:31;;;;;;;;;;;;;;;;;;;;;;;;;12458:32;12384:106;12377:113;;12278:220;;;;:::o;12680:97::-;12722:7;12748:21;12765:3;7858:20;12748:16;;:21;;;;:::i;:::-;12741:28;;12680:97;:::o;15473:459::-;15563:7;15583:12;15598:1;15583:16;;15614:19;:28;15634:7;15614:28;;;;;;;;;;;;;;;;;;;;;;;;;:63;;;;15646:19;:31;15666:10;15646:31;;;;;;;;;;;;;;;;;;;;;;;;;15614:63;15610:107;;;15701:4;15694:11;;;;;15610:107;15734:48;15743:38;15765:15;:13;:15::i;:::-;15743:17;15755:4;;15743:7;:11;;:17;;;;:::i;:::-;:21;;:38;;;;:::i;:::-;15734:4;:8;;:48;;;;:::i;:::-;15727:55;;15813:10;;;;;;;;;;;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15793:17;:41;;;;15852:50;15861:40;15896:4;;15861:30;15873:17;;15861:7;:11;;:30;;;;:::i;:::-;:34;;:40;;;;:::i;:::-;15852:4;:8;;:50;;;;:::i;:::-;15845:57;;15920:4;15913:11;;;15473:459;;;;;;:::o;15938:234::-;15992:20;16004:7;15992:11;:20::i;:::-;15988:177;;;16029:21;16053:24;16071:4;16053:9;:24::i;:::-;16029:48;;16092:32;16110:13;16092:17;:32::i;:::-;16139:14;:12;:14::i;:::-;16014:151;15988:177;15938:234;:::o;14631:434::-;14745:18;14766:19;14778:6;14766:7;:11;;:19;;;;:::i;:::-;14745:40;;14818:32;14842:7;14818:10;:19;14829:7;14818:19;;;;;;;;;;;;;;;;:23;;:32;;;;:::i;:::-;14796:10;:19;14807:7;14796:19;;;;;;;;;;;;;;;:54;;;;14886:38;14913:10;14886;:22;14897:10;14886:22;;;;;;;;;;;;;;;;:26;;:38;;;;:::i;:::-;14861:10;:22;14872:10;14861:22;;;;;;;;;;;;;;;:63;;;;14963:37;14993:6;14963:10;:25;14982:4;14963:25;;;;;;;;;;;;;;;;:29;;:37;;;;:::i;:::-;14935:10;:25;14954:4;14935:25;;;;;;;;;;;;;;;:65;;;;15034:10;15016:41;;15025:7;15016:41;;;15046:10;15016:41;;;;;;:::i;:::-;;;;;;;;14734:331;14631:434;;;;:::o;15071:399::-;15160:28;15168:7;15177:10;15160:7;:28::i;:::-;15156:307;;;15209:15;15216:7;15209:6;:15::i;:::-;15205:247;;;15243:10;;;;;;;;;;;:24;;;15268:10;15243:36;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15205:247;;;15324:1;15303:18;;:22;15299:153;;;15346:10;;;;;;;;;;;:20;;;15367:7;15376:18;;15346:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15435:1;15414:18;:22;;;;15299:153;15205:247;15156:307;15071:399;;:::o;5561:103::-;5617:7;5644:12;;5637:19;;5561:103;:::o;11657:131::-;11717:4;11742:8;;;;;;;;;;;11741:9;:39;;;;;11765:15;;;;;;;;;;;11754:26;;:7;:26;;;;11741:39;11734:46;;11657:131;;;:::o;16178:482::-;9113:4;9102:8;;:15;;;;;;;;;;;;;;;;;;16253:22:::1;16292:1;16278:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16253:41;;16324:4;16305:5;16311:1;16305:8;;;;;;;;:::i;:::-;;;;;;;:24;;;;;;;;;::::0;::::1;16351:17;;;;;;;;;;;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16340:5;16346:1;16340:8;;;;;;;;:::i;:::-;;;;;;;:35;;;;;;;;;::::0;::::1;16386:60;16403:4;16418:17;;;;;;;;;;;16438:7;16386:8;:60::i;:::-;16457:17;;;;;;;;;;;:68;;;16540:7;16562:1;16578:5;16606:4;16626:15;16457:195;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16242:418;9151:5:::0;9140:8;;:16;;;;;;;;;;;;;;;;;;16178:482;:::o;16872:508::-;16915:12;16930:21;16915:36;;16974:12;;16966:4;:20;16962:46;;17001:7;;;16962:46;17032:15;17050:22;17059:12;;17050:4;:8;;:22;;;;:::i;:::-;17032:40;;17083:7;17093:20;:18;:20::i;:::-;17083:30;;17133:1;17128:2;:6;17124:32;;;17149:7;;;;;17124:32;17168:21;17177:7;17186:2;17168:8;:21::i;:::-;17223:38;17258:2;17223:30;17235:17;;17223:7;:11;;:30;;;;:::i;:::-;:34;;:38;;;;:::i;:::-;17202:18;:59;;;;17272:22;;;;;;;;;;;:31;;:51;17304:18;;17272:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17351:21;17336:12;:36;;;;16904:476;;;16872:508;:::o;11794:113::-;11849:4;11884:15;;;;;;;;;;;11873:26;;:7;:26;;;11866:33;;11794:113;;;:::o;16666:200::-;16718:4;16735:9;16747:1;16735:13;;16766:25;16775:15;:13;:15::i;:::-;16766:4;:8;;:25;;;;:::i;:::-;16759:32;;16809:27;16818:17;;16809:4;:8;;:27;;;;:::i;:::-;16802:34;;16854:4;16847:11;;;16666:200;:::o;4194:482::-;4271:6;4280:1;4271:10;;4266:403;4287:10;:17;;;;4283:1;:21;4266:403;;;4326:14;4343:10;4354:1;4343:13;;;;;;;;:::i;:::-;;;;;;;;;;4326:30;;4371:24;4398:14;4413:1;4398:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4371:44;;4430:15;4448:24;4469:2;4448:16;4457:6;4448:4;:8;;:16;;;;:::i;:::-;:20;;:24;;;;:::i;:::-;4430:42;;4501:1;4491:7;:11;4487:171;;;4522:8;:17;;:26;4540:7;4522:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4582:12;;;;;;;;;;;4570:24;;:8;:24;;;4567:75;;;4617:8;;;;;;;;;;;:16;;;4634:7;4617:25;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4567:75;4487:171;4311:358;;;4306:3;;;;;:::i;:::-;;;;4266:403;;;;4194:482;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:155::-;355:5;393:6;380:20;371:29;;409:41;444:5;409:41;:::i;:::-;301:155;;;;:::o;462:137::-;516:5;547:6;541:13;532:22;;563:30;587:5;563:30;:::i;:::-;462:137;;;;:::o;605:139::-;651:5;689:6;676:20;667:29;;705:33;732:5;705:33;:::i;:::-;605:139;;;;:::o;750:143::-;807:5;838:6;832:13;823:22;;854:33;881:5;854:33;:::i;:::-;750:143;;;;:::o;899:329::-;958:6;1007:2;995:9;986:7;982:23;978:32;975:119;;;1013:79;;:::i;:::-;975:119;1133:1;1158:53;1203:7;1194:6;1183:9;1179:22;1158:53;:::i;:::-;1148:63;;1104:117;899:329;;;;:::o;1234:351::-;1304:6;1353:2;1341:9;1332:7;1328:23;1324:32;1321:119;;;1359:79;;:::i;:::-;1321:119;1479:1;1504:64;1560:7;1551:6;1540:9;1536:22;1504:64;:::i;:::-;1494:74;;1450:128;1234:351;;;;:::o;1591:345::-;1658:6;1707:2;1695:9;1686:7;1682:23;1678:32;1675:119;;;1713:79;;:::i;:::-;1675:119;1833:1;1858:61;1911:7;1902:6;1891:9;1887:22;1858:61;:::i;:::-;1848:71;;1804:125;1591:345;;;;:::o;1942:490::-;2018:6;2026;2075:2;2063:9;2054:7;2050:23;2046:32;2043:119;;;2081:79;;:::i;:::-;2043:119;2201:1;2226:61;2279:7;2270:6;2259:9;2255:22;2226:61;:::i;:::-;2216:71;;2172:125;2336:2;2362:53;2407:7;2398:6;2387:9;2383:22;2362:53;:::i;:::-;2352:63;;2307:118;1942:490;;;;;:::o;2438:474::-;2506:6;2514;2563:2;2551:9;2542:7;2538:23;2534:32;2531:119;;;2569:79;;:::i;:::-;2531:119;2689:1;2714:53;2759:7;2750:6;2739:9;2735:22;2714:53;:::i;:::-;2704:63;;2660:117;2816:2;2842:53;2887:7;2878:6;2867:9;2863:22;2842:53;:::i;:::-;2832:63;;2787:118;2438:474;;;;;:::o;2918:619::-;2995:6;3003;3011;3060:2;3048:9;3039:7;3035:23;3031:32;3028:119;;;3066:79;;:::i;:::-;3028:119;3186:1;3211:53;3256:7;3247:6;3236:9;3232:22;3211:53;:::i;:::-;3201:63;;3157:117;3313:2;3339:53;3384:7;3375:6;3364:9;3360:22;3339:53;:::i;:::-;3329:63;;3284:118;3441:2;3467:53;3512:7;3503:6;3492:9;3488:22;3467:53;:::i;:::-;3457:63;;3412:118;2918:619;;;;;:::o;3543:474::-;3611:6;3619;3668:2;3656:9;3647:7;3643:23;3639:32;3636:119;;;3674:79;;:::i;:::-;3636:119;3794:1;3819:53;3864:7;3855:6;3844:9;3840:22;3819:53;:::i;:::-;3809:63;;3765:117;3921:2;3947:53;3992:7;3983:6;3972:9;3968:22;3947:53;:::i;:::-;3937:63;;3892:118;3543:474;;;;;:::o;4023:345::-;4090:6;4139:2;4127:9;4118:7;4114:23;4110:32;4107:119;;;4145:79;;:::i;:::-;4107:119;4265:1;4290:61;4343:7;4334:6;4323:9;4319:22;4290:61;:::i;:::-;4280:71;;4236:125;4023:345;;;;:::o;4374:329::-;4433:6;4482:2;4470:9;4461:7;4457:23;4453:32;4450:119;;;4488:79;;:::i;:::-;4450:119;4608:1;4633:53;4678:7;4669:6;4658:9;4654:22;4633:53;:::i;:::-;4623:63;;4579:117;4374:329;;;;:::o;4709:351::-;4779:6;4828:2;4816:9;4807:7;4803:23;4799:32;4796:119;;;4834:79;;:::i;:::-;4796:119;4954:1;4979:64;5035:7;5026:6;5015:9;5011:22;4979:64;:::i;:::-;4969:74;;4925:128;4709:351;;;;:::o;5066:663::-;5154:6;5162;5170;5219:2;5207:9;5198:7;5194:23;5190:32;5187:119;;;5225:79;;:::i;:::-;5187:119;5345:1;5370:64;5426:7;5417:6;5406:9;5402:22;5370:64;:::i;:::-;5360:74;;5316:128;5483:2;5509:64;5565:7;5556:6;5545:9;5541:22;5509:64;:::i;:::-;5499:74;;5454:129;5622:2;5648:64;5704:7;5695:6;5684:9;5680:22;5648:64;:::i;:::-;5638:74;;5593:129;5066:663;;;;;:::o;5735:179::-;5804:10;5825:46;5867:3;5859:6;5825:46;:::i;:::-;5903:4;5898:3;5894:14;5880:28;;5735:179;;;;:::o;5920:108::-;5997:24;6015:5;5997:24;:::i;:::-;5992:3;5985:37;5920:108;;:::o;6034:118::-;6121:24;6139:5;6121:24;:::i;:::-;6116:3;6109:37;6034:118;;:::o;6188:732::-;6307:3;6336:54;6384:5;6336:54;:::i;:::-;6406:86;6485:6;6480:3;6406:86;:::i;:::-;6399:93;;6516:56;6566:5;6516:56;:::i;:::-;6595:7;6626:1;6611:284;6636:6;6633:1;6630:13;6611:284;;;6712:6;6706:13;6739:63;6798:3;6783:13;6739:63;:::i;:::-;6732:70;;6825:60;6878:6;6825:60;:::i;:::-;6815:70;;6671:224;6658:1;6655;6651:9;6646:14;;6611:284;;;6615:14;6911:3;6904:10;;6312:608;;;6188:732;;;;:::o;6926:109::-;7007:21;7022:5;7007:21;:::i;:::-;7002:3;6995:34;6926:109;;:::o;7041:147::-;7136:45;7175:5;7136:45;:::i;:::-;7131:3;7124:58;7041:147;;:::o;7194:153::-;7292:48;7334:5;7292:48;:::i;:::-;7287:3;7280:61;7194:153;;:::o;7353:364::-;7441:3;7469:39;7502:5;7469:39;:::i;:::-;7524:71;7588:6;7583:3;7524:71;:::i;:::-;7517:78;;7604:52;7649:6;7644:3;7637:4;7630:5;7626:16;7604:52;:::i;:::-;7681:29;7703:6;7681:29;:::i;:::-;7676:3;7672:39;7665:46;;7445:272;7353:364;;;;:::o;7723:366::-;7865:3;7886:67;7950:2;7945:3;7886:67;:::i;:::-;7879:74;;7962:93;8051:3;7962:93;:::i;:::-;8080:2;8075:3;8071:12;8064:19;;7723:366;;;:::o;8095:::-;8237:3;8258:67;8322:2;8317:3;8258:67;:::i;:::-;8251:74;;8334:93;8423:3;8334:93;:::i;:::-;8452:2;8447:3;8443:12;8436:19;;8095:366;;;:::o;8467:::-;8609:3;8630:67;8694:2;8689:3;8630:67;:::i;:::-;8623:74;;8706:93;8795:3;8706:93;:::i;:::-;8824:2;8819:3;8815:12;8808:19;;8467:366;;;:::o;8839:::-;8981:3;9002:67;9066:2;9061:3;9002:67;:::i;:::-;8995:74;;9078:93;9167:3;9078:93;:::i;:::-;9196:2;9191:3;9187:12;9180:19;;8839:366;;;:::o;9211:::-;9353:3;9374:67;9438:2;9433:3;9374:67;:::i;:::-;9367:74;;9450:93;9539:3;9450:93;:::i;:::-;9568:2;9563:3;9559:12;9552:19;;9211:366;;;:::o;9583:::-;9725:3;9746:67;9810:2;9805:3;9746:67;:::i;:::-;9739:74;;9822:93;9911:3;9822:93;:::i;:::-;9940:2;9935:3;9931:12;9924:19;;9583:366;;;:::o;9955:::-;10097:3;10118:67;10182:2;10177:3;10118:67;:::i;:::-;10111:74;;10194:93;10283:3;10194:93;:::i;:::-;10312:2;10307:3;10303:12;10296:19;;9955:366;;;:::o;10327:::-;10469:3;10490:67;10554:2;10549:3;10490:67;:::i;:::-;10483:74;;10566:93;10655:3;10566:93;:::i;:::-;10684:2;10679:3;10675:12;10668:19;;10327:366;;;:::o;10699:::-;10841:3;10862:67;10926:2;10921:3;10862:67;:::i;:::-;10855:74;;10938:93;11027:3;10938:93;:::i;:::-;11056:2;11051:3;11047:12;11040:19;;10699:366;;;:::o;11071:::-;11213:3;11234:67;11298:2;11293:3;11234:67;:::i;:::-;11227:74;;11310:93;11399:3;11310:93;:::i;:::-;11428:2;11423:3;11419:12;11412:19;;11071:366;;;:::o;11443:::-;11585:3;11606:67;11670:2;11665:3;11606:67;:::i;:::-;11599:74;;11682:93;11771:3;11682:93;:::i;:::-;11800:2;11795:3;11791:12;11784:19;;11443:366;;;:::o;11815:118::-;11902:24;11920:5;11902:24;:::i;:::-;11897:3;11890:37;11815:118;;:::o;11939:112::-;12022:22;12038:5;12022:22;:::i;:::-;12017:3;12010:35;11939:112;;:::o;12057:222::-;12150:4;12188:2;12177:9;12173:18;12165:26;;12201:71;12269:1;12258:9;12254:17;12245:6;12201:71;:::i;:::-;12057:222;;;;:::o;12285:332::-;12406:4;12444:2;12433:9;12429:18;12421:26;;12457:71;12525:1;12514:9;12510:17;12501:6;12457:71;:::i;:::-;12538:72;12606:2;12595:9;12591:18;12582:6;12538:72;:::i;:::-;12285:332;;;;;:::o;12623:442::-;12772:4;12810:2;12799:9;12795:18;12787:26;;12823:71;12891:1;12880:9;12876:17;12867:6;12823:71;:::i;:::-;12904:72;12972:2;12961:9;12957:18;12948:6;12904:72;:::i;:::-;12986;13054:2;13043:9;13039:18;13030:6;12986:72;:::i;:::-;12623:442;;;;;;:::o;13071:797::-;13315:4;13353:3;13342:9;13338:19;13330:27;;13367:71;13435:1;13424:9;13420:17;13411:6;13367:71;:::i;:::-;13448:83;13527:2;13516:9;13512:18;13503:6;13448:83;:::i;:::-;13541:72;13609:2;13598:9;13594:18;13585:6;13541:72;:::i;:::-;13623;13691:2;13680:9;13676:18;13667:6;13623:72;:::i;:::-;13705:73;13773:3;13762:9;13758:19;13749:6;13705:73;:::i;:::-;13788;13856:3;13845:9;13841:19;13832:6;13788:73;:::i;:::-;13071:797;;;;;;;;;:::o;13874:332::-;13995:4;14033:2;14022:9;14018:18;14010:26;;14046:71;14114:1;14103:9;14099:17;14090:6;14046:71;:::i;:::-;14127:72;14195:2;14184:9;14180:18;14171:6;14127:72;:::i;:::-;13874:332;;;;;:::o;14212:807::-;14461:4;14499:3;14488:9;14484:19;14476:27;;14513:71;14581:1;14570:9;14566:17;14557:6;14513:71;:::i;:::-;14594:72;14662:2;14651:9;14647:18;14638:6;14594:72;:::i;:::-;14676:80;14752:2;14741:9;14737:18;14728:6;14676:80;:::i;:::-;14766;14842:2;14831:9;14827:18;14818:6;14766:80;:::i;:::-;14856:73;14924:3;14913:9;14909:19;14900:6;14856:73;:::i;:::-;14939;15007:3;14996:9;14992:19;14983:6;14939:73;:::i;:::-;14212:807;;;;;;;;;:::o;15025:210::-;15112:4;15150:2;15139:9;15135:18;15127:26;;15163:65;15225:1;15214:9;15210:17;15201:6;15163:65;:::i;:::-;15025:210;;;;:::o;15241:313::-;15354:4;15392:2;15381:9;15377:18;15369:26;;15441:9;15435:4;15431:20;15427:1;15416:9;15412:17;15405:47;15469:78;15542:4;15533:6;15469:78;:::i;:::-;15461:86;;15241:313;;;;:::o;15560:419::-;15726:4;15764:2;15753:9;15749:18;15741:26;;15813:9;15807:4;15803:20;15799:1;15788:9;15784:17;15777:47;15841:131;15967:4;15841:131;:::i;:::-;15833:139;;15560:419;;;:::o;15985:::-;16151:4;16189:2;16178:9;16174:18;16166:26;;16238:9;16232:4;16228:20;16224:1;16213:9;16209:17;16202:47;16266:131;16392:4;16266:131;:::i;:::-;16258:139;;15985:419;;;:::o;16410:::-;16576:4;16614:2;16603:9;16599:18;16591:26;;16663:9;16657:4;16653:20;16649:1;16638:9;16634:17;16627:47;16691:131;16817:4;16691:131;:::i;:::-;16683:139;;16410:419;;;:::o;16835:::-;17001:4;17039:2;17028:9;17024:18;17016:26;;17088:9;17082:4;17078:20;17074:1;17063:9;17059:17;17052:47;17116:131;17242:4;17116:131;:::i;:::-;17108:139;;16835:419;;;:::o;17260:::-;17426:4;17464:2;17453:9;17449:18;17441:26;;17513:9;17507:4;17503:20;17499:1;17488:9;17484:17;17477:47;17541:131;17667:4;17541:131;:::i;:::-;17533:139;;17260:419;;;:::o;17685:::-;17851:4;17889:2;17878:9;17874:18;17866:26;;17938:9;17932:4;17928:20;17924:1;17913:9;17909:17;17902:47;17966:131;18092:4;17966:131;:::i;:::-;17958:139;;17685:419;;;:::o;18110:::-;18276:4;18314:2;18303:9;18299:18;18291:26;;18363:9;18357:4;18353:20;18349:1;18338:9;18334:17;18327:47;18391:131;18517:4;18391:131;:::i;:::-;18383:139;;18110:419;;;:::o;18535:::-;18701:4;18739:2;18728:9;18724:18;18716:26;;18788:9;18782:4;18778:20;18774:1;18763:9;18759:17;18752:47;18816:131;18942:4;18816:131;:::i;:::-;18808:139;;18535:419;;;:::o;18960:::-;19126:4;19164:2;19153:9;19149:18;19141:26;;19213:9;19207:4;19203:20;19199:1;19188:9;19184:17;19177:47;19241:131;19367:4;19241:131;:::i;:::-;19233:139;;18960:419;;;:::o;19385:::-;19551:4;19589:2;19578:9;19574:18;19566:26;;19638:9;19632:4;19628:20;19624:1;19613:9;19609:17;19602:47;19666:131;19792:4;19666:131;:::i;:::-;19658:139;;19385:419;;;:::o;19810:::-;19976:4;20014:2;20003:9;19999:18;19991:26;;20063:9;20057:4;20053:20;20049:1;20038:9;20034:17;20027:47;20091:131;20217:4;20091:131;:::i;:::-;20083:139;;19810:419;;;:::o;20235:222::-;20328:4;20366:2;20355:9;20351:18;20343:26;;20379:71;20447:1;20436:9;20432:17;20423:6;20379:71;:::i;:::-;20235:222;;;;:::o;20463:831::-;20726:4;20764:3;20753:9;20749:19;20741:27;;20778:71;20846:1;20835:9;20831:17;20822:6;20778:71;:::i;:::-;20859:80;20935:2;20924:9;20920:18;20911:6;20859:80;:::i;:::-;20986:9;20980:4;20976:20;20971:2;20960:9;20956:18;20949:48;21014:108;21117:4;21108:6;21014:108;:::i;:::-;21006:116;;21132:72;21200:2;21189:9;21185:18;21176:6;21132:72;:::i;:::-;21214:73;21282:3;21271:9;21267:19;21258:6;21214:73;:::i;:::-;20463:831;;;;;;;;:::o;21300:214::-;21389:4;21427:2;21416:9;21412:18;21404:26;;21440:67;21504:1;21493:9;21489:17;21480:6;21440:67;:::i;:::-;21300:214;;;;:::o;21601:132::-;21668:4;21691:3;21683:11;;21721:4;21716:3;21712:14;21704:22;;21601:132;;;:::o;21739:114::-;21806:6;21840:5;21834:12;21824:22;;21739:114;;;:::o;21859:99::-;21911:6;21945:5;21939:12;21929:22;;21859:99;;;:::o;21964:113::-;22034:4;22066;22061:3;22057:14;22049:22;;21964:113;;;:::o;22083:184::-;22182:11;22216:6;22211:3;22204:19;22256:4;22251:3;22247:14;22232:29;;22083:184;;;;:::o;22273:169::-;22357:11;22391:6;22386:3;22379:19;22431:4;22426:3;22422:14;22407:29;;22273:169;;;;:::o;22448:305::-;22488:3;22507:20;22525:1;22507:20;:::i;:::-;22502:25;;22541:20;22559:1;22541:20;:::i;:::-;22536:25;;22695:1;22627:66;22623:74;22620:1;22617:81;22614:107;;;22701:18;;:::i;:::-;22614:107;22745:1;22742;22738:9;22731:16;;22448:305;;;;:::o;22759:185::-;22799:1;22816:20;22834:1;22816:20;:::i;:::-;22811:25;;22850:20;22868:1;22850:20;:::i;:::-;22845:25;;22889:1;22879:35;;22894:18;;:::i;:::-;22879:35;22936:1;22933;22929:9;22924:14;;22759:185;;;;:::o;22950:348::-;22990:7;23013:20;23031:1;23013:20;:::i;:::-;23008:25;;23047:20;23065:1;23047:20;:::i;:::-;23042:25;;23235:1;23167:66;23163:74;23160:1;23157:81;23152:1;23145:9;23138:17;23134:105;23131:131;;;23242:18;;:::i;:::-;23131:131;23290:1;23287;23283:9;23272:20;;22950:348;;;;:::o;23304:191::-;23344:4;23364:20;23382:1;23364:20;:::i;:::-;23359:25;;23398:20;23416:1;23398:20;:::i;:::-;23393:25;;23437:1;23434;23431:8;23428:34;;;23442:18;;:::i;:::-;23428:34;23487:1;23484;23480:9;23472:17;;23304:191;;;;:::o;23501:96::-;23538:7;23567:24;23585:5;23567:24;:::i;:::-;23556:35;;23501:96;;;:::o;23603:104::-;23648:7;23677:24;23695:5;23677:24;:::i;:::-;23666:35;;23603:104;;;:::o;23713:90::-;23747:7;23790:5;23783:13;23776:21;23765:32;;23713:90;;;:::o;23809:126::-;23846:7;23886:42;23879:5;23875:54;23864:65;;23809:126;;;:::o;23941:77::-;23978:7;24007:5;23996:16;;23941:77;;;:::o;24024:86::-;24059:7;24099:4;24092:5;24088:16;24077:27;;24024:86;;;:::o;24116:121::-;24174:9;24207:24;24225:5;24207:24;:::i;:::-;24194:37;;24116:121;;;:::o;24243:124::-;24304:9;24337:24;24355:5;24337:24;:::i;:::-;24324:37;;24243:124;;;:::o;24373:307::-;24441:1;24451:113;24465:6;24462:1;24459:13;24451:113;;;24550:1;24545:3;24541:11;24535:18;24531:1;24526:3;24522:11;24515:39;24487:2;24484:1;24480:10;24475:15;;24451:113;;;24582:6;24579:1;24576:13;24573:101;;;24662:1;24653:6;24648:3;24644:16;24637:27;24573:101;24422:258;24373:307;;;:::o;24686:320::-;24730:6;24767:1;24761:4;24757:12;24747:22;;24814:1;24808:4;24804:12;24835:18;24825:81;;24891:4;24883:6;24879:17;24869:27;;24825:81;24953:2;24945:6;24942:14;24922:18;24919:38;24916:84;;;24972:18;;:::i;:::-;24916:84;24737:269;24686:320;;;:::o;25012:233::-;25051:3;25074:24;25092:5;25074:24;:::i;:::-;25065:33;;25120:66;25113:5;25110:77;25107:103;;;25190:18;;:::i;:::-;25107:103;25237:1;25230:5;25226:13;25219:20;;25012:233;;;:::o;25251:180::-;25299:77;25296:1;25289:88;25396:4;25393:1;25386:15;25420:4;25417:1;25410:15;25437:180;25485:77;25482:1;25475:88;25582:4;25579:1;25572:15;25606:4;25603:1;25596:15;25623:180;25671:77;25668:1;25661:88;25768:4;25765:1;25758:15;25792:4;25789:1;25782:15;25809:180;25857:77;25854:1;25847:88;25954:4;25951:1;25944:15;25978:4;25975:1;25968:15;25995:180;26043:77;26040:1;26033:88;26140:4;26137:1;26130:15;26164:4;26161:1;26154:15;26304:117;26413:1;26410;26403:12;26427:102;26468:6;26519:2;26515:7;26510:2;26503:5;26499:14;26495:28;26485:38;;26427:102;;;:::o;26535:222::-;26675:34;26671:1;26663:6;26659:14;26652:58;26744:5;26739:2;26731:6;26727:15;26720:30;26535:222;:::o;26763:174::-;26903:26;26899:1;26891:6;26887:14;26880:50;26763:174;:::o;26943:162::-;27083:14;27079:1;27071:6;27067:14;27060:38;26943:162;:::o;27111:221::-;27251:34;27247:1;27239:6;27235:14;27228:58;27320:4;27315:2;27307:6;27303:15;27296:29;27111:221;:::o;27338:177::-;27478:29;27474:1;27466:6;27462:14;27455:53;27338:177;:::o;27521:220::-;27661:34;27657:1;27649:6;27645:14;27638:58;27730:3;27725:2;27717:6;27713:15;27706:28;27521:220;:::o;27747:182::-;27887:34;27883:1;27875:6;27871:14;27864:58;27747:182;:::o;27935:228::-;28075:34;28071:1;28063:6;28059:14;28052:58;28144:11;28139:2;28131:6;28127:15;28120:36;27935:228;:::o;28169:224::-;28309:34;28305:1;28297:6;28293:14;28286:58;28378:7;28373:2;28365:6;28361:15;28354:32;28169:224;:::o;28399:223::-;28539:34;28535:1;28527:6;28523:14;28516:58;28608:6;28603:2;28595:6;28591:15;28584:31;28399:223;:::o;28628:225::-;28768:34;28764:1;28756:6;28752:14;28745:58;28837:8;28832:2;28824:6;28820:15;28813:33;28628:225;:::o;28859:122::-;28932:24;28950:5;28932:24;:::i;:::-;28925:5;28922:35;28912:63;;28971:1;28968;28961:12;28912:63;28859:122;:::o;28987:138::-;29068:32;29094:5;29068:32;:::i;:::-;29061:5;29058:43;29048:71;;29115:1;29112;29105:12;29048:71;28987:138;:::o;29131:116::-;29201:21;29216:5;29201:21;:::i;:::-;29194:5;29191:32;29181:60;;29237:1;29234;29227:12;29181:60;29131:116;:::o;29253:122::-;29326:24;29344:5;29326:24;:::i;:::-;29319:5;29316:35;29306:63;;29365:1;29362;29355:12;29306:63;29253:122;:::o
Swarm Source
ipfs://1f4c7bf62a2a678c40fb96da4c058bda3486607f5632550e2e4373f170b3e0db
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.