ERC-20
Overview
Max Total Supply
100,000,000,000 WONK
Holders
159
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.000003802 WONKValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
WONK
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-05-06 */ /* $$\ $$\ $$$$$$\ $$\ $$\ $$\ $$\ $$ | $\ $$ |$$ __$$\ $$$\ $$ |$$ | $$ | $$ |$$$\ $$ |$$ / $$ |$$$$\ $$ |$$ |$$ / $$ $$ $$\$$ |$$ | $$ |$$ $$\$$ |$$$$$ / $$$$ _$$$$ |$$ | $$ |$$ \$$$$ |$$ $$< $$$ / \$$$ |$$ | $$ |$$ |\$$$ |$$ |\$$\ $$ / \$$ | $$$$$$ |$$ | \$$ |$$ | \$$\ \__/ \__| \______/ \__| \__|\__| \__| * Website: https://wonktoken.com/ * Telegram: https://t.me/WonkToken/ */ // SPDX-License-Identifier:MIT pragma solidity ^0.8.10; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address _account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _setOwner(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any _account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } interface IDexSwapFactory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDexSwapRouter { function factory() external pure returns (address); function WETH() external pure returns (address); } contract WONK is Context, IERC20, Ownable { using SafeMath for uint256; string private _name = "WONK"; // token name string private _symbol = "WONK"; // token ticker uint8 private _decimals = 9; // token decimals address constant deadAddress = 0x000000000000000000000000000000000000dEaD; address constant zeroAddress = 0x0000000000000000000000000000000000000000; uint256 public BuyFee; uint256 public SellFee; address developer; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public isExcludedFromFee; mapping (address => bool) public isMarketPair; mapping (address => bool) public isWalletLimitExempt; mapping (address => bool) public isTxLimitExempt; mapping (address => bool) public isBot; uint256 private _totalSupply = 100_000_000_000 * 10 ** _decimals; uint256 feedenominator = 1000; uint256 public _maxTxAmount = _totalSupply.mul(10).div(1000); //1% uint256 public _walletMax = _totalSupply.mul(10).div(1000); //1% bool public transferFeeEnabled = true; uint256 public initalTransferFee = 90; bool public trading; bool public EnableTxLimit = true; bool public checkWalletLimit = true; mapping (address => bool) public isWonkWL; modifier onlyGuard() { require(msg.sender == developer,"Error: Guarded!"); _; } IDexSwapRouter public dexRouter; address public dexPair; constructor() { //uniswap router v2 : 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D IDexSwapRouter _dexRouter = IDexSwapRouter( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); dexPair = IDexSwapFactory(_dexRouter.factory()).createPair( address(this), _dexRouter.WETH() ); dexRouter = _dexRouter; _allowances[address(this)][address(dexRouter)] = ~uint256(0); developer = msg.sender; isExcludedFromFee[address(this)] = true; isExcludedFromFee[msg.sender] = true; isExcludedFromFee[address(dexRouter)] = true; isWonkWL[address(msg.sender)] = true; isWonkWL[address(this)] = true; isWonkWL[address(dexRouter)] = true; isWalletLimitExempt[msg.sender] = true; isWalletLimitExempt[address(dexPair)] = true; isWalletLimitExempt[address(dexRouter)] = true; isWalletLimitExempt[address(this)] = true; isWalletLimitExempt[deadAddress] = true; isWalletLimitExempt[zeroAddress] = true; isTxLimitExempt[deadAddress] = true; isTxLimitExempt[zeroAddress] = true; isTxLimitExempt[msg.sender] = true; isTxLimitExempt[address(this)] = true; isTxLimitExempt[address(dexRouter)] = true; isMarketPair[address(dexPair)] = true; BuyFee = 100; SellFee = 500; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } //to recieve ETH from Router when swaping receive() external payable {} function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _transfer(address sender, address recipient, uint256 amount) private returns (bool) { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Amount is zero"); require(!isBot[sender], "ERC20: Bot detected"); require(!isBot[msg.sender], "ERC20: Bot detected"); if (!isWonkWL[sender] && !isWonkWL[recipient]) { require(trading, "ERC20: trading not enable yet"); } if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTxLimit) { require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 finalAmount = shouldNotTakeFee(sender,recipient) ? amount : takeFee(sender, recipient, amount); if(checkWalletLimit && !isWalletLimitExempt[recipient]) { require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Wallet Limit Exceeded!!"); } _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); return true; } function shouldNotTakeFee(address sender, address recipient) internal view returns (bool) { if(isExcludedFromFee[sender] || isExcludedFromFee[recipient]) { return true; } else if (isMarketPair[sender] || isMarketPair[recipient]) { return false; } else { return false; } } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint feeAmount; unchecked { if(isMarketPair[sender]) { //buy feeAmount = amount.mul(BuyFee).div(feedenominator); } else if(isMarketPair[recipient]) { //sell feeAmount = amount.mul(SellFee).div(feedenominator); } else { if(transferFeeEnabled) { feeAmount = amount.mul(initalTransferFee).div(100); } } if(feeAmount > 0) { _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } } function startTrading() external onlyOwner { require(!trading, "ERC20: Already Enabled"); trading = true; } //To Rescue Stucked Balance function rescueFunds() external onlyGuard { payable(msg.sender).transfer(address(this).balance); } //To Rescue Stucked Tokens function rescueTokens(IERC20 adr,address recipient,uint amount) external onlyGuard { adr.transfer(recipient,amount); } function updateSetting(address[] calldata _adr, bool _status) external onlyOwner { for(uint i = 0; i < _adr.length; i++){ isWonkWL[_adr[i]] = _status; } } function addOrRemoveBots(address[] calldata accounts, bool value) external onlyOwner { for (uint256 i = 0; i < accounts.length; i++) { isBot[accounts[i]] = value; } } function disableTransferFee(bool _status) external onlyOwner { transferFeeEnabled = _status; } function setTransferFee(uint _newFee) external onlyOwner { initalTransferFee = _newFee; } function setFee(uint _buy, uint _sell) external onlyOwner { BuyFee = _buy; SellFee = _sell; } function switchOff() external onlyOwner { BuyFee = 0; SellFee = 0; initalTransferFee = 0; transferFeeEnabled = false; } function enableTxLimit(bool _status) external onlyOwner { EnableTxLimit = _status; } function enableWalletLimit(bool _status) external onlyOwner { checkWalletLimit = _status; } function excludeFromFee(address _adr,bool _status) external onlyOwner { isExcludedFromFee[_adr] = _status; } function excludeWalletLimit(address _adr,bool _status) external onlyOwner { isWalletLimitExempt[_adr] = _status; } function excludeTxLimit(address _adr,bool _status) external onlyOwner { isTxLimitExempt[_adr] = _status; } function setMaxWalletLimit(uint256 newLimit) external onlyOwner() { _walletMax = newLimit; } function setTxLimit(uint256 newLimit) external onlyOwner() { _maxTxAmount = newLimit; } function setDevWallet(address _newWallet) external onlyOwner { developer = _newWallet; } function setMarketPair(address _pair, bool _status) external onlyOwner { isMarketPair[_pair] = _status; isWalletLimitExempt[_pair] = _status; } function setManualPair(address _pair) external onlyOwner { dexPair = _pair; } }
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":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":"BuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EnableTxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"addOrRemoveBots","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":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexSwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"disableTransferFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initalTransferFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWonkWL","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"adr","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"setManualPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"setTransferFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"switchOff","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":"view","type":"function"},{"inputs":[],"name":"trading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferFeeEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_adr","type":"address[]"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"updateSetting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526040518060400160405280600481526020017f574f4e4b00000000000000000000000000000000000000000000000000000000815250600190816200004a9190620010fd565b506040518060400160405280600481526020017f574f4e4b0000000000000000000000000000000000000000000000000000000081525060029081620000919190620010fd565b506009600360006101000a81548160ff021916908360ff160217905550600360009054906101000a900460ff16600a620000cc919062001374565b64174876e800620000de9190620013c5565b600e556103e8600f55620001156103e862000106600a600e5462000c7a60201b90919060201c565b62000cfd60201b90919060201c565b601055620001466103e862000137600a600e5462000c7a60201b90919060201c565b62000cfd60201b90919060201c565b6011556001601260006101000a81548160ff021916908315150217905550605a6013556001601460016101000a81548160ff0219169083151502179055506001601460026101000a81548160ff021916908315150217905550348015620001ac57600080fd5b50620001cd620001c162000d4f60201b60201c565b62000d5760201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000232573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025891906200147a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002c0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e691906200147a565b6040518363ffffffff1660e01b815260040162000305929190620014bd565b6020604051808303816000875af115801562000325573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034b91906200147a565b601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600019600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555033600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160156000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060646004819055506101f4600581905550600e54600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e5460405162000c6b9190620014fb565b60405180910390a350620016ca565b600080830362000c8e576000905062000cf7565b6000828462000c9e9190620013c5565b905082848262000caf919062001547565b1462000cf2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ce99062001606565b60405180910390fd5b809150505b92915050565b600062000d4783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000e1b60201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808311829062000e65576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000e5c9190620016a6565b60405180910390fd5b506000838562000e76919062001547565b9050809150509392505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000f0557607f821691505b60208210810362000f1b5762000f1a62000ebd565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000f857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000f46565b62000f91868362000f46565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000fde62000fd862000fd28462000fa9565b62000fb3565b62000fa9565b9050919050565b6000819050919050565b62000ffa8362000fbd565b62001012620010098262000fe5565b84845462000f53565b825550505050565b600090565b620010296200101a565b6200103681848462000fef565b505050565b5b818110156200105e57620010526000826200101f565b6001810190506200103c565b5050565b601f821115620010ad57620010778162000f21565b620010828462000f36565b8101602085101562001092578190505b620010aa620010a18562000f36565b8301826200103b565b50505b505050565b600082821c905092915050565b6000620010d260001984600802620010b2565b1980831691505092915050565b6000620010ed8383620010bf565b9150826002028217905092915050565b620011088262000e83565b67ffffffffffffffff81111562001124576200112362000e8e565b5b62001130825462000eec565b6200113d82828562001062565b600060209050601f83116001811462001175576000841562001160578287015190505b6200116c8582620010df565b865550620011dc565b601f198416620011858662000f21565b60005b82811015620011af5784890151825560018201915060208501945060208101905062001188565b86831015620011cf5784890151620011cb601f891682620010bf565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562001272578086048111156200124a5762001249620011e4565b5b60018516156200125a5780820291505b80810290506200126a8562001213565b94506200122a565b94509492505050565b6000826200128d576001905062001360565b816200129d576000905062001360565b8160018114620012b65760028114620012c157620012f7565b600191505062001360565b60ff841115620012d657620012d5620011e4565b5b8360020a915084821115620012f057620012ef620011e4565b5b5062001360565b5060208310610133831016604e8410600b8410161715620013315782820a9050838111156200132b576200132a620011e4565b5b62001360565b62001340848484600162001220565b925090508184048111156200135a5762001359620011e4565b5b81810290505b9392505050565b600060ff82169050919050565b6000620013818262000fa9565b91506200138e8362001367565b9250620013bd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200127b565b905092915050565b6000620013d28262000fa9565b9150620013df8362000fa9565b9250828202620013ef8162000fa9565b91508282048414831517620014095762001408620011e4565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620014428262001415565b9050919050565b620014548162001435565b81146200146057600080fd5b50565b600081519050620014748162001449565b92915050565b60006020828403121562001493576200149262001410565b5b6000620014a38482850162001463565b91505092915050565b620014b78162001435565b82525050565b6000604082019050620014d46000830185620014ac565b620014e36020830184620014ac565b9392505050565b620014f58162000fa9565b82525050565b6000602082019050620015126000830184620014ea565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620015548262000fa9565b9150620015618362000fa9565b92508262001574576200157362001518565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000620015ee6021836200157f565b9150620015fb8262001590565b604082019050919050565b600060208201905081810360008301526200162181620015df565b9050919050565b60005b83811015620016485780820151818401526020810190506200162b565b60008484015250505050565b6000601f19601f8301169050919050565b6000620016728262000e83565b6200167e81856200157f565b93506200169081856020860162001628565b6200169b8162001654565b840191505092915050565b60006020820190508181036000830152620016c2818462001665565b905092915050565b613ff080620016da6000396000f3fe6080604052600436106102975760003560e01c80638da5cb5b1161015a578063dd62ed3e116100c1578063ec44acf21161007a578063ec44acf214610a0b578063ee828db314610a36578063f242ab4114610a5f578063f2fde38b14610a8a578063f71b9bbf14610ab3578063f872858a14610adc5761029e565b8063dd62ed3e1461090d578063dd8546521461094a578063df8408fe14610975578063e6b2603b1461099e578063e7d8320e146109b5578063e7f1bfcb146109e05761029e565b8063b161573b11610113578063b161573b146107ed578063c16dd4a41461082a578063c867d60b14610853578063cea9d26f14610890578063cf9522fd146108b9578063d27e0e6a146108e45761029e565b80638da5cb5b146106df5780638f02bb5b1461070a57806395d89b411461073357806395fc8fdf1461075e578063a9059cbb14610787578063ae85ade6146107c45761029e565b80634974d88f116101fe57806370a08231116101b757806370a08231146105cf578063715018a61461060c578063728d41c9146106235780637d1db4a51461064c578063807c2d9c146106775780638b42507f146106a25761029e565b80634974d88f146104c357806352f7c988146104ec5780635342acb4146105155780635c85974f146105525780635e42358c1461057b578063651a8987146105a65761029e565b80631f53ac02116102505780631f53ac02146103a157806323b872dd146103ca578063293230b814610407578063313ce5671461041e5780633bbac579146104495780633ecad271146104865761029e565b8063038d71ee146102a357806306fdde03146102ba5780630758d924146102e5578063095ea7b31461031057806310a60f021461034d57806318160ddd146103765761029e565b3661029e57005b600080fd5b3480156102af57600080fd5b506102b8610b07565b005b3480156102c657600080fd5b506102cf610bb8565b6040516102dc9190613062565b60405180910390f35b3480156102f157600080fd5b506102fa610c4a565b6040516103079190613103565b60405180910390f35b34801561031c57600080fd5b506103376004803603810190610332919061319c565b610c70565b60405161034491906131f7565b60405180910390f35b34801561035957600080fd5b50610374600480360381019061036f91906132a3565b610c8e565b005b34801561038257600080fd5b5061038b610daf565b6040516103989190613312565b60405180910390f35b3480156103ad57600080fd5b506103c860048036038101906103c3919061332d565b610db9565b005b3480156103d657600080fd5b506103f160048036038101906103ec919061335a565b610e79565b6040516103fe91906131f7565b60405180910390f35b34801561041357600080fd5b5061041c610f53565b005b34801561042a57600080fd5b5061043361103c565b60405161044091906133c9565b60405180910390f35b34801561045557600080fd5b50610470600480360381019061046b919061332d565b611053565b60405161047d91906131f7565b60405180910390f35b34801561049257600080fd5b506104ad60048036038101906104a8919061332d565b611073565b6040516104ba91906131f7565b60405180910390f35b3480156104cf57600080fd5b506104ea60048036038101906104e591906133e4565b611093565b005b3480156104f857600080fd5b50610513600480360381019061050e9190613411565b61112c565b005b34801561052157600080fd5b5061053c6004803603810190610537919061332d565b6111ba565b60405161054991906131f7565b60405180910390f35b34801561055e57600080fd5b5061057960048036038101906105749190613451565b6111da565b005b34801561058757600080fd5b50610590611260565b60405161059d91906131f7565b60405180910390f35b3480156105b257600080fd5b506105cd60048036038101906105c8919061347e565b611273565b005b3480156105db57600080fd5b506105f660048036038101906105f1919061332d565b61134a565b6040516106039190613312565b60405180910390f35b34801561061857600080fd5b50610621611393565b005b34801561062f57600080fd5b5061064a60048036038101906106459190613451565b61141b565b005b34801561065857600080fd5b506106616114a1565b60405161066e9190613312565b60405180910390f35b34801561068357600080fd5b5061068c6114a7565b6040516106999190613312565b60405180910390f35b3480156106ae57600080fd5b506106c960048036038101906106c4919061332d565b6114ad565b6040516106d691906131f7565b60405180910390f35b3480156106eb57600080fd5b506106f46114cd565b60405161070191906134cd565b60405180910390f35b34801561071657600080fd5b50610731600480360381019061072c9190613451565b6114f6565b005b34801561073f57600080fd5b5061074861157c565b6040516107559190613062565b60405180910390f35b34801561076a57600080fd5b50610785600480360381019061078091906132a3565b61160e565b005b34801561079357600080fd5b506107ae60048036038101906107a9919061319c565b61172f565b6040516107bb91906131f7565b60405180910390f35b3480156107d057600080fd5b506107eb60048036038101906107e6919061347e565b61174e565b005b3480156107f957600080fd5b50610814600480360381019061080f919061332d565b611825565b60405161082191906131f7565b60405180910390f35b34801561083657600080fd5b50610851600480360381019061084c919061347e565b611845565b005b34801561085f57600080fd5b5061087a6004803603810190610875919061332d565b611973565b60405161088791906131f7565b60405180910390f35b34801561089c57600080fd5b506108b760048036038101906108b29190613526565b611993565b005b3480156108c557600080fd5b506108ce611aa7565b6040516108db9190613312565b60405180910390f35b3480156108f057600080fd5b5061090b600480360381019061090691906133e4565b611aad565b005b34801561091957600080fd5b50610934600480360381019061092f9190613579565b611b46565b6040516109419190613312565b60405180910390f35b34801561095657600080fd5b5061095f611bcd565b60405161096c9190613312565b60405180910390f35b34801561098157600080fd5b5061099c6004803603810190610997919061347e565b611bd3565b005b3480156109aa57600080fd5b506109b3611caa565b005b3480156109c157600080fd5b506109ca611d83565b6040516109d79190613312565b60405180910390f35b3480156109ec57600080fd5b506109f5611d89565b604051610a0291906131f7565b60405180910390f35b348015610a1757600080fd5b50610a20611d9c565b604051610a2d91906131f7565b60405180910390f35b348015610a4257600080fd5b50610a5d6004803603810190610a5891906133e4565b611daf565b005b348015610a6b57600080fd5b50610a74611e48565b604051610a8191906134cd565b60405180910390f35b348015610a9657600080fd5b50610ab16004803603810190610aac919061332d565b611e6e565b005b348015610abf57600080fd5b50610ada6004803603810190610ad5919061332d565b611f65565b005b348015610ae857600080fd5b50610af1612025565b604051610afe91906131f7565b60405180910390f35b610b0f612038565b73ffffffffffffffffffffffffffffffffffffffff16610b2d6114cd565b73ffffffffffffffffffffffffffffffffffffffff1614610b83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7a90613605565b60405180910390fd5b6000600481905550600060058190555060006013819055506000601260006101000a81548160ff021916908315150217905550565b606060018054610bc790613654565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf390613654565b8015610c405780601f10610c1557610100808354040283529160200191610c40565b820191906000526020600020905b815481529060010190602001808311610c2357829003601f168201915b5050505050905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610c84610c7d612038565b8484612040565b6001905092915050565b610c96612038565b73ffffffffffffffffffffffffffffffffffffffff16610cb46114cd565b73ffffffffffffffffffffffffffffffffffffffff1614610d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0190613605565b60405180910390fd5b60005b83839050811015610da95781600d6000868685818110610d3057610d2f613685565b5b9050602002016020810190610d45919061332d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610da1906136e3565b915050610d0d565b50505050565b6000600e54905090565b610dc1612038565b73ffffffffffffffffffffffffffffffffffffffff16610ddf6114cd565b73ffffffffffffffffffffffffffffffffffffffff1614610e35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2c90613605565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000610e86848484612209565b50610f4884610e93612038565b610f4385604051806060016040528060288152602001613f9360289139600860008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ef9612038565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129069092919063ffffffff16565b612040565b600190509392505050565b610f5b612038565b73ffffffffffffffffffffffffffffffffffffffff16610f796114cd565b73ffffffffffffffffffffffffffffffffffffffff1614610fcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc690613605565b60405180910390fd5b601460009054906101000a900460ff161561101f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101690613777565b60405180910390fd5b6001601460006101000a81548160ff021916908315150217905550565b6000600360009054906101000a900460ff16905090565b600d6020528060005260406000206000915054906101000a900460ff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b61109b612038565b73ffffffffffffffffffffffffffffffffffffffff166110b96114cd565b73ffffffffffffffffffffffffffffffffffffffff161461110f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110690613605565b60405180910390fd5b80601460026101000a81548160ff02191690831515021790555050565b611134612038565b73ffffffffffffffffffffffffffffffffffffffff166111526114cd565b73ffffffffffffffffffffffffffffffffffffffff16146111a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119f90613605565b60405180910390fd5b81600481905550806005819055505050565b60096020528060005260406000206000915054906101000a900460ff1681565b6111e2612038565b73ffffffffffffffffffffffffffffffffffffffff166112006114cd565b73ffffffffffffffffffffffffffffffffffffffff1614611256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124d90613605565b60405180910390fd5b8060108190555050565b601460019054906101000a900460ff1681565b61127b612038565b73ffffffffffffffffffffffffffffffffffffffff166112996114cd565b73ffffffffffffffffffffffffffffffffffffffff16146112ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e690613605565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61139b612038565b73ffffffffffffffffffffffffffffffffffffffff166113b96114cd565b73ffffffffffffffffffffffffffffffffffffffff161461140f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140690613605565b60405180910390fd5b611419600061296a565b565b611423612038565b73ffffffffffffffffffffffffffffffffffffffff166114416114cd565b73ffffffffffffffffffffffffffffffffffffffff1614611497576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148e90613605565b60405180910390fd5b8060118190555050565b60105481565b60115481565b600c6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6114fe612038565b73ffffffffffffffffffffffffffffffffffffffff1661151c6114cd565b73ffffffffffffffffffffffffffffffffffffffff1614611572576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156990613605565b60405180910390fd5b8060138190555050565b60606002805461158b90613654565b80601f01602080910402602001604051908101604052809291908181526020018280546115b790613654565b80156116045780601f106115d957610100808354040283529160200191611604565b820191906000526020600020905b8154815290600101906020018083116115e757829003601f168201915b5050505050905090565b611616612038565b73ffffffffffffffffffffffffffffffffffffffff166116346114cd565b73ffffffffffffffffffffffffffffffffffffffff161461168a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168190613605565b60405180910390fd5b60005b838390508110156117295781601560008686858181106116b0576116af613685565b5b90506020020160208101906116c5919061332d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611721906136e3565b91505061168d565b50505050565b600061174361173c612038565b8484612209565b506001905092915050565b611756612038565b73ffffffffffffffffffffffffffffffffffffffff166117746114cd565b73ffffffffffffffffffffffffffffffffffffffff16146117ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c190613605565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60156020528060005260406000206000915054906101000a900460ff1681565b61184d612038565b73ffffffffffffffffffffffffffffffffffffffff1661186b6114cd565b73ffffffffffffffffffffffffffffffffffffffff16146118c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b890613605565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600b6020528060005260406000206000915054906101000a900460ff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1a906137e3565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401611a5e929190613803565b6020604051808303816000875af1158015611a7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa19190613841565b50505050565b60055481565b611ab5612038565b73ffffffffffffffffffffffffffffffffffffffff16611ad36114cd565b73ffffffffffffffffffffffffffffffffffffffff1614611b29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2090613605565b60405180910390fd5b80601260006101000a81548160ff02191690831515021790555050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60045481565b611bdb612038565b73ffffffffffffffffffffffffffffffffffffffff16611bf96114cd565b73ffffffffffffffffffffffffffffffffffffffff1614611c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4690613605565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d31906137e3565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611d80573d6000803e3d6000fd5b50565b60135481565b601260009054906101000a900460ff1681565b601460009054906101000a900460ff1681565b611db7612038565b73ffffffffffffffffffffffffffffffffffffffff16611dd56114cd565b73ffffffffffffffffffffffffffffffffffffffff1614611e2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2290613605565b60405180910390fd5b80601460016101000a81548160ff02191690831515021790555050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e76612038565b73ffffffffffffffffffffffffffffffffffffffff16611e946114cd565b73ffffffffffffffffffffffffffffffffffffffff1614611eea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee190613605565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611f59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f50906138e0565b60405180910390fd5b611f628161296a565b50565b611f6d612038565b73ffffffffffffffffffffffffffffffffffffffff16611f8b6114cd565b73ffffffffffffffffffffffffffffffffffffffff1614611fe1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd890613605565b60405180910390fd5b80601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601460029054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a690613972565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361211e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211590613a04565b60405180910390fd5b80600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516121fc9190613312565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612279576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227090613a96565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036122e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122df90613b28565b60405180910390fd5b6000821161232b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232290613b94565b60405180910390fd5b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156123b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123af90613c00565b60405180910390fd5b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612445576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243c90613c00565b60405180910390fd5b601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124e95750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561253e57601460009054906101000a900460ff1661253d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253490613c6c565b60405180910390fd5b5b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156125e25750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156125fa5750601460019054906101000a900460ff165b1561264557601054821115612644576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161263b90613cfe565b60405180910390fd5b5b6126ce826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129069092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061271d8585612a2e565b6127315761272c858585612b99565b612733565b825b9050601460029054906101000a900460ff16801561279b5750600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612800576011546127be826127b08761134a565b612e0390919063ffffffff16565b11156127ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f690613d6a565b60405180910390fd5b5b61285281600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e0390919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516128f29190613312565b60405180910390a360019150509392505050565b600083831115829061294e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129459190613062565b60405180910390fd5b506000838561295d9190613d8a565b9050809150509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612ad15750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612adf5760019050612b93565b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612b805750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612b8e5760009050612b93565b600090505b92915050565b600080600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612c1e57612c17600f54612c0960045486612e6190919063ffffffff16565b612edb90919063ffffffff16565b9050612ce2565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612ca057612c99600f54612c8b60055486612e6190919063ffffffff16565b612edb90919063ffffffff16565b9050612ce1565b601260009054906101000a900460ff1615612ce057612cdd6064612ccf60135486612e6190919063ffffffff16565b612edb90919063ffffffff16565b90505b5b5b6000811115612de657612d3d81600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e0390919063ffffffff16565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ddd9190613312565b60405180910390a35b612df98184612f2590919063ffffffff16565b9150509392505050565b6000808284612e129190613dbe565b905083811015612e57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e4e90613e3e565b60405180910390fd5b8091505092915050565b6000808303612e735760009050612ed5565b60008284612e819190613e5e565b9050828482612e909190613ecf565b14612ed0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ec790613f72565b60405180910390fd5b809150505b92915050565b6000612f1d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612f6f565b905092915050565b6000612f6783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612906565b905092915050565b60008083118290612fb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fad9190613062565b60405180910390fd5b5060008385612fc59190613ecf565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561300c578082015181840152602081019050612ff1565b60008484015250505050565b6000601f19601f8301169050919050565b600061303482612fd2565b61303e8185612fdd565b935061304e818560208601612fee565b61305781613018565b840191505092915050565b6000602082019050818103600083015261307c8184613029565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006130c96130c46130bf84613084565b6130a4565b613084565b9050919050565b60006130db826130ae565b9050919050565b60006130ed826130d0565b9050919050565b6130fd816130e2565b82525050565b600060208201905061311860008301846130f4565b92915050565b600080fd5b600080fd5b600061313382613084565b9050919050565b61314381613128565b811461314e57600080fd5b50565b6000813590506131608161313a565b92915050565b6000819050919050565b61317981613166565b811461318457600080fd5b50565b60008135905061319681613170565b92915050565b600080604083850312156131b3576131b261311e565b5b60006131c185828601613151565b92505060206131d285828601613187565b9150509250929050565b60008115159050919050565b6131f1816131dc565b82525050565b600060208201905061320c60008301846131e8565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261323757613236613212565b5b8235905067ffffffffffffffff81111561325457613253613217565b5b6020830191508360208202830111156132705761326f61321c565b5b9250929050565b613280816131dc565b811461328b57600080fd5b50565b60008135905061329d81613277565b92915050565b6000806000604084860312156132bc576132bb61311e565b5b600084013567ffffffffffffffff8111156132da576132d9613123565b5b6132e686828701613221565b935093505060206132f98682870161328e565b9150509250925092565b61330c81613166565b82525050565b60006020820190506133276000830184613303565b92915050565b6000602082840312156133435761334261311e565b5b600061335184828501613151565b91505092915050565b6000806000606084860312156133735761337261311e565b5b600061338186828701613151565b935050602061339286828701613151565b92505060406133a386828701613187565b9150509250925092565b600060ff82169050919050565b6133c3816133ad565b82525050565b60006020820190506133de60008301846133ba565b92915050565b6000602082840312156133fa576133f961311e565b5b60006134088482850161328e565b91505092915050565b600080604083850312156134285761342761311e565b5b600061343685828601613187565b925050602061344785828601613187565b9150509250929050565b6000602082840312156134675761346661311e565b5b600061347584828501613187565b91505092915050565b600080604083850312156134955761349461311e565b5b60006134a385828601613151565b92505060206134b48582860161328e565b9150509250929050565b6134c781613128565b82525050565b60006020820190506134e260008301846134be565b92915050565b60006134f382613128565b9050919050565b613503816134e8565b811461350e57600080fd5b50565b600081359050613520816134fa565b92915050565b60008060006060848603121561353f5761353e61311e565b5b600061354d86828701613511565b935050602061355e86828701613151565b925050604061356f86828701613187565b9150509250925092565b600080604083850312156135905761358f61311e565b5b600061359e85828601613151565b92505060206135af85828601613151565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006135ef602083612fdd565b91506135fa826135b9565b602082019050919050565b6000602082019050818103600083015261361e816135e2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061366c57607f821691505b60208210810361367f5761367e613625565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006136ee82613166565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036137205761371f6136b4565b5b600182019050919050565b7f45524332303a20416c726561647920456e61626c656400000000000000000000600082015250565b6000613761601683612fdd565b915061376c8261372b565b602082019050919050565b6000602082019050818103600083015261379081613754565b9050919050565b7f4572726f723a2047756172646564210000000000000000000000000000000000600082015250565b60006137cd600f83612fdd565b91506137d882613797565b602082019050919050565b600060208201905081810360008301526137fc816137c0565b9050919050565b600060408201905061381860008301856134be565b6138256020830184613303565b9392505050565b60008151905061383b81613277565b92915050565b6000602082840312156138575761385661311e565b5b60006138658482850161382c565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006138ca602683612fdd565b91506138d58261386e565b604082019050919050565b600060208201905081810360008301526138f9816138bd565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061395c602483612fdd565b915061396782613900565b604082019050919050565b6000602082019050818103600083015261398b8161394f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006139ee602283612fdd565b91506139f982613992565b604082019050919050565b60006020820190508181036000830152613a1d816139e1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613a80602583612fdd565b9150613a8b82613a24565b604082019050919050565b60006020820190508181036000830152613aaf81613a73565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613b12602383612fdd565b9150613b1d82613ab6565b604082019050919050565b60006020820190508181036000830152613b4181613b05565b9050919050565b7f416d6f756e74206973207a65726f000000000000000000000000000000000000600082015250565b6000613b7e600e83612fdd565b9150613b8982613b48565b602082019050919050565b60006020820190508181036000830152613bad81613b71565b9050919050565b7f45524332303a20426f7420646574656374656400000000000000000000000000600082015250565b6000613bea601383612fdd565b9150613bf582613bb4565b602082019050919050565b60006020820190508181036000830152613c1981613bdd565b9050919050565b7f45524332303a2074726164696e67206e6f7420656e61626c6520796574000000600082015250565b6000613c56601d83612fdd565b9150613c6182613c20565b602082019050919050565b60006020820190508181036000830152613c8581613c49565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b6000613ce8602883612fdd565b9150613cf382613c8c565b604082019050919050565b60006020820190508181036000830152613d1781613cdb565b9050919050565b7f57616c6c6574204c696d69742045786365656465642121000000000000000000600082015250565b6000613d54601783612fdd565b9150613d5f82613d1e565b602082019050919050565b60006020820190508181036000830152613d8381613d47565b9050919050565b6000613d9582613166565b9150613da083613166565b9250828203905081811115613db857613db76136b4565b5b92915050565b6000613dc982613166565b9150613dd483613166565b9250828201905080821115613dec57613deb6136b4565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613e28601b83612fdd565b9150613e3382613df2565b602082019050919050565b60006020820190508181036000830152613e5781613e1b565b9050919050565b6000613e6982613166565b9150613e7483613166565b9250828202613e8281613166565b91508282048414831517613e9957613e986136b4565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613eda82613166565b9150613ee583613166565b925082613ef557613ef4613ea0565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f5c602183612fdd565b9150613f6782613f00565b604082019050919050565b60006020820190508181036000830152613f8b81613f4f565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202ace92ef3192372ea4e6b4f4af3b6c14eb7e8c34c7588b2f20286dbe9ce6c6d964736f6c63430008130033
Deployed Bytecode
0x6080604052600436106102975760003560e01c80638da5cb5b1161015a578063dd62ed3e116100c1578063ec44acf21161007a578063ec44acf214610a0b578063ee828db314610a36578063f242ab4114610a5f578063f2fde38b14610a8a578063f71b9bbf14610ab3578063f872858a14610adc5761029e565b8063dd62ed3e1461090d578063dd8546521461094a578063df8408fe14610975578063e6b2603b1461099e578063e7d8320e146109b5578063e7f1bfcb146109e05761029e565b8063b161573b11610113578063b161573b146107ed578063c16dd4a41461082a578063c867d60b14610853578063cea9d26f14610890578063cf9522fd146108b9578063d27e0e6a146108e45761029e565b80638da5cb5b146106df5780638f02bb5b1461070a57806395d89b411461073357806395fc8fdf1461075e578063a9059cbb14610787578063ae85ade6146107c45761029e565b80634974d88f116101fe57806370a08231116101b757806370a08231146105cf578063715018a61461060c578063728d41c9146106235780637d1db4a51461064c578063807c2d9c146106775780638b42507f146106a25761029e565b80634974d88f146104c357806352f7c988146104ec5780635342acb4146105155780635c85974f146105525780635e42358c1461057b578063651a8987146105a65761029e565b80631f53ac02116102505780631f53ac02146103a157806323b872dd146103ca578063293230b814610407578063313ce5671461041e5780633bbac579146104495780633ecad271146104865761029e565b8063038d71ee146102a357806306fdde03146102ba5780630758d924146102e5578063095ea7b31461031057806310a60f021461034d57806318160ddd146103765761029e565b3661029e57005b600080fd5b3480156102af57600080fd5b506102b8610b07565b005b3480156102c657600080fd5b506102cf610bb8565b6040516102dc9190613062565b60405180910390f35b3480156102f157600080fd5b506102fa610c4a565b6040516103079190613103565b60405180910390f35b34801561031c57600080fd5b506103376004803603810190610332919061319c565b610c70565b60405161034491906131f7565b60405180910390f35b34801561035957600080fd5b50610374600480360381019061036f91906132a3565b610c8e565b005b34801561038257600080fd5b5061038b610daf565b6040516103989190613312565b60405180910390f35b3480156103ad57600080fd5b506103c860048036038101906103c3919061332d565b610db9565b005b3480156103d657600080fd5b506103f160048036038101906103ec919061335a565b610e79565b6040516103fe91906131f7565b60405180910390f35b34801561041357600080fd5b5061041c610f53565b005b34801561042a57600080fd5b5061043361103c565b60405161044091906133c9565b60405180910390f35b34801561045557600080fd5b50610470600480360381019061046b919061332d565b611053565b60405161047d91906131f7565b60405180910390f35b34801561049257600080fd5b506104ad60048036038101906104a8919061332d565b611073565b6040516104ba91906131f7565b60405180910390f35b3480156104cf57600080fd5b506104ea60048036038101906104e591906133e4565b611093565b005b3480156104f857600080fd5b50610513600480360381019061050e9190613411565b61112c565b005b34801561052157600080fd5b5061053c6004803603810190610537919061332d565b6111ba565b60405161054991906131f7565b60405180910390f35b34801561055e57600080fd5b5061057960048036038101906105749190613451565b6111da565b005b34801561058757600080fd5b50610590611260565b60405161059d91906131f7565b60405180910390f35b3480156105b257600080fd5b506105cd60048036038101906105c8919061347e565b611273565b005b3480156105db57600080fd5b506105f660048036038101906105f1919061332d565b61134a565b6040516106039190613312565b60405180910390f35b34801561061857600080fd5b50610621611393565b005b34801561062f57600080fd5b5061064a60048036038101906106459190613451565b61141b565b005b34801561065857600080fd5b506106616114a1565b60405161066e9190613312565b60405180910390f35b34801561068357600080fd5b5061068c6114a7565b6040516106999190613312565b60405180910390f35b3480156106ae57600080fd5b506106c960048036038101906106c4919061332d565b6114ad565b6040516106d691906131f7565b60405180910390f35b3480156106eb57600080fd5b506106f46114cd565b60405161070191906134cd565b60405180910390f35b34801561071657600080fd5b50610731600480360381019061072c9190613451565b6114f6565b005b34801561073f57600080fd5b5061074861157c565b6040516107559190613062565b60405180910390f35b34801561076a57600080fd5b50610785600480360381019061078091906132a3565b61160e565b005b34801561079357600080fd5b506107ae60048036038101906107a9919061319c565b61172f565b6040516107bb91906131f7565b60405180910390f35b3480156107d057600080fd5b506107eb60048036038101906107e6919061347e565b61174e565b005b3480156107f957600080fd5b50610814600480360381019061080f919061332d565b611825565b60405161082191906131f7565b60405180910390f35b34801561083657600080fd5b50610851600480360381019061084c919061347e565b611845565b005b34801561085f57600080fd5b5061087a6004803603810190610875919061332d565b611973565b60405161088791906131f7565b60405180910390f35b34801561089c57600080fd5b506108b760048036038101906108b29190613526565b611993565b005b3480156108c557600080fd5b506108ce611aa7565b6040516108db9190613312565b60405180910390f35b3480156108f057600080fd5b5061090b600480360381019061090691906133e4565b611aad565b005b34801561091957600080fd5b50610934600480360381019061092f9190613579565b611b46565b6040516109419190613312565b60405180910390f35b34801561095657600080fd5b5061095f611bcd565b60405161096c9190613312565b60405180910390f35b34801561098157600080fd5b5061099c6004803603810190610997919061347e565b611bd3565b005b3480156109aa57600080fd5b506109b3611caa565b005b3480156109c157600080fd5b506109ca611d83565b6040516109d79190613312565b60405180910390f35b3480156109ec57600080fd5b506109f5611d89565b604051610a0291906131f7565b60405180910390f35b348015610a1757600080fd5b50610a20611d9c565b604051610a2d91906131f7565b60405180910390f35b348015610a4257600080fd5b50610a5d6004803603810190610a5891906133e4565b611daf565b005b348015610a6b57600080fd5b50610a74611e48565b604051610a8191906134cd565b60405180910390f35b348015610a9657600080fd5b50610ab16004803603810190610aac919061332d565b611e6e565b005b348015610abf57600080fd5b50610ada6004803603810190610ad5919061332d565b611f65565b005b348015610ae857600080fd5b50610af1612025565b604051610afe91906131f7565b60405180910390f35b610b0f612038565b73ffffffffffffffffffffffffffffffffffffffff16610b2d6114cd565b73ffffffffffffffffffffffffffffffffffffffff1614610b83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7a90613605565b60405180910390fd5b6000600481905550600060058190555060006013819055506000601260006101000a81548160ff021916908315150217905550565b606060018054610bc790613654565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf390613654565b8015610c405780601f10610c1557610100808354040283529160200191610c40565b820191906000526020600020905b815481529060010190602001808311610c2357829003601f168201915b5050505050905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610c84610c7d612038565b8484612040565b6001905092915050565b610c96612038565b73ffffffffffffffffffffffffffffffffffffffff16610cb46114cd565b73ffffffffffffffffffffffffffffffffffffffff1614610d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0190613605565b60405180910390fd5b60005b83839050811015610da95781600d6000868685818110610d3057610d2f613685565b5b9050602002016020810190610d45919061332d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610da1906136e3565b915050610d0d565b50505050565b6000600e54905090565b610dc1612038565b73ffffffffffffffffffffffffffffffffffffffff16610ddf6114cd565b73ffffffffffffffffffffffffffffffffffffffff1614610e35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2c90613605565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000610e86848484612209565b50610f4884610e93612038565b610f4385604051806060016040528060288152602001613f9360289139600860008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ef9612038565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129069092919063ffffffff16565b612040565b600190509392505050565b610f5b612038565b73ffffffffffffffffffffffffffffffffffffffff16610f796114cd565b73ffffffffffffffffffffffffffffffffffffffff1614610fcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc690613605565b60405180910390fd5b601460009054906101000a900460ff161561101f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101690613777565b60405180910390fd5b6001601460006101000a81548160ff021916908315150217905550565b6000600360009054906101000a900460ff16905090565b600d6020528060005260406000206000915054906101000a900460ff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b61109b612038565b73ffffffffffffffffffffffffffffffffffffffff166110b96114cd565b73ffffffffffffffffffffffffffffffffffffffff161461110f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110690613605565b60405180910390fd5b80601460026101000a81548160ff02191690831515021790555050565b611134612038565b73ffffffffffffffffffffffffffffffffffffffff166111526114cd565b73ffffffffffffffffffffffffffffffffffffffff16146111a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119f90613605565b60405180910390fd5b81600481905550806005819055505050565b60096020528060005260406000206000915054906101000a900460ff1681565b6111e2612038565b73ffffffffffffffffffffffffffffffffffffffff166112006114cd565b73ffffffffffffffffffffffffffffffffffffffff1614611256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124d90613605565b60405180910390fd5b8060108190555050565b601460019054906101000a900460ff1681565b61127b612038565b73ffffffffffffffffffffffffffffffffffffffff166112996114cd565b73ffffffffffffffffffffffffffffffffffffffff16146112ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e690613605565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61139b612038565b73ffffffffffffffffffffffffffffffffffffffff166113b96114cd565b73ffffffffffffffffffffffffffffffffffffffff161461140f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140690613605565b60405180910390fd5b611419600061296a565b565b611423612038565b73ffffffffffffffffffffffffffffffffffffffff166114416114cd565b73ffffffffffffffffffffffffffffffffffffffff1614611497576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148e90613605565b60405180910390fd5b8060118190555050565b60105481565b60115481565b600c6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6114fe612038565b73ffffffffffffffffffffffffffffffffffffffff1661151c6114cd565b73ffffffffffffffffffffffffffffffffffffffff1614611572576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156990613605565b60405180910390fd5b8060138190555050565b60606002805461158b90613654565b80601f01602080910402602001604051908101604052809291908181526020018280546115b790613654565b80156116045780601f106115d957610100808354040283529160200191611604565b820191906000526020600020905b8154815290600101906020018083116115e757829003601f168201915b5050505050905090565b611616612038565b73ffffffffffffffffffffffffffffffffffffffff166116346114cd565b73ffffffffffffffffffffffffffffffffffffffff161461168a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168190613605565b60405180910390fd5b60005b838390508110156117295781601560008686858181106116b0576116af613685565b5b90506020020160208101906116c5919061332d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611721906136e3565b91505061168d565b50505050565b600061174361173c612038565b8484612209565b506001905092915050565b611756612038565b73ffffffffffffffffffffffffffffffffffffffff166117746114cd565b73ffffffffffffffffffffffffffffffffffffffff16146117ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c190613605565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60156020528060005260406000206000915054906101000a900460ff1681565b61184d612038565b73ffffffffffffffffffffffffffffffffffffffff1661186b6114cd565b73ffffffffffffffffffffffffffffffffffffffff16146118c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b890613605565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600b6020528060005260406000206000915054906101000a900460ff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1a906137e3565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401611a5e929190613803565b6020604051808303816000875af1158015611a7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa19190613841565b50505050565b60055481565b611ab5612038565b73ffffffffffffffffffffffffffffffffffffffff16611ad36114cd565b73ffffffffffffffffffffffffffffffffffffffff1614611b29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2090613605565b60405180910390fd5b80601260006101000a81548160ff02191690831515021790555050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60045481565b611bdb612038565b73ffffffffffffffffffffffffffffffffffffffff16611bf96114cd565b73ffffffffffffffffffffffffffffffffffffffff1614611c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4690613605565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d31906137e3565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611d80573d6000803e3d6000fd5b50565b60135481565b601260009054906101000a900460ff1681565b601460009054906101000a900460ff1681565b611db7612038565b73ffffffffffffffffffffffffffffffffffffffff16611dd56114cd565b73ffffffffffffffffffffffffffffffffffffffff1614611e2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2290613605565b60405180910390fd5b80601460016101000a81548160ff02191690831515021790555050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e76612038565b73ffffffffffffffffffffffffffffffffffffffff16611e946114cd565b73ffffffffffffffffffffffffffffffffffffffff1614611eea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee190613605565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611f59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f50906138e0565b60405180910390fd5b611f628161296a565b50565b611f6d612038565b73ffffffffffffffffffffffffffffffffffffffff16611f8b6114cd565b73ffffffffffffffffffffffffffffffffffffffff1614611fe1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd890613605565b60405180910390fd5b80601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601460029054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a690613972565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361211e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211590613a04565b60405180910390fd5b80600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516121fc9190613312565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612279576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227090613a96565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036122e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122df90613b28565b60405180910390fd5b6000821161232b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232290613b94565b60405180910390fd5b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156123b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123af90613c00565b60405180910390fd5b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612445576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243c90613c00565b60405180910390fd5b601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124e95750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561253e57601460009054906101000a900460ff1661253d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253490613c6c565b60405180910390fd5b5b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156125e25750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156125fa5750601460019054906101000a900460ff165b1561264557601054821115612644576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161263b90613cfe565b60405180910390fd5b5b6126ce826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129069092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061271d8585612a2e565b6127315761272c858585612b99565b612733565b825b9050601460029054906101000a900460ff16801561279b5750600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612800576011546127be826127b08761134a565b612e0390919063ffffffff16565b11156127ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f690613d6a565b60405180910390fd5b5b61285281600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e0390919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516128f29190613312565b60405180910390a360019150509392505050565b600083831115829061294e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129459190613062565b60405180910390fd5b506000838561295d9190613d8a565b9050809150509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612ad15750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612adf5760019050612b93565b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612b805750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612b8e5760009050612b93565b600090505b92915050565b600080600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612c1e57612c17600f54612c0960045486612e6190919063ffffffff16565b612edb90919063ffffffff16565b9050612ce2565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612ca057612c99600f54612c8b60055486612e6190919063ffffffff16565b612edb90919063ffffffff16565b9050612ce1565b601260009054906101000a900460ff1615612ce057612cdd6064612ccf60135486612e6190919063ffffffff16565b612edb90919063ffffffff16565b90505b5b5b6000811115612de657612d3d81600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e0390919063ffffffff16565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ddd9190613312565b60405180910390a35b612df98184612f2590919063ffffffff16565b9150509392505050565b6000808284612e129190613dbe565b905083811015612e57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e4e90613e3e565b60405180910390fd5b8091505092915050565b6000808303612e735760009050612ed5565b60008284612e819190613e5e565b9050828482612e909190613ecf565b14612ed0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ec790613f72565b60405180910390fd5b809150505b92915050565b6000612f1d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612f6f565b905092915050565b6000612f6783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612906565b905092915050565b60008083118290612fb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fad9190613062565b60405180910390fd5b5060008385612fc59190613ecf565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561300c578082015181840152602081019050612ff1565b60008484015250505050565b6000601f19601f8301169050919050565b600061303482612fd2565b61303e8185612fdd565b935061304e818560208601612fee565b61305781613018565b840191505092915050565b6000602082019050818103600083015261307c8184613029565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006130c96130c46130bf84613084565b6130a4565b613084565b9050919050565b60006130db826130ae565b9050919050565b60006130ed826130d0565b9050919050565b6130fd816130e2565b82525050565b600060208201905061311860008301846130f4565b92915050565b600080fd5b600080fd5b600061313382613084565b9050919050565b61314381613128565b811461314e57600080fd5b50565b6000813590506131608161313a565b92915050565b6000819050919050565b61317981613166565b811461318457600080fd5b50565b60008135905061319681613170565b92915050565b600080604083850312156131b3576131b261311e565b5b60006131c185828601613151565b92505060206131d285828601613187565b9150509250929050565b60008115159050919050565b6131f1816131dc565b82525050565b600060208201905061320c60008301846131e8565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261323757613236613212565b5b8235905067ffffffffffffffff81111561325457613253613217565b5b6020830191508360208202830111156132705761326f61321c565b5b9250929050565b613280816131dc565b811461328b57600080fd5b50565b60008135905061329d81613277565b92915050565b6000806000604084860312156132bc576132bb61311e565b5b600084013567ffffffffffffffff8111156132da576132d9613123565b5b6132e686828701613221565b935093505060206132f98682870161328e565b9150509250925092565b61330c81613166565b82525050565b60006020820190506133276000830184613303565b92915050565b6000602082840312156133435761334261311e565b5b600061335184828501613151565b91505092915050565b6000806000606084860312156133735761337261311e565b5b600061338186828701613151565b935050602061339286828701613151565b92505060406133a386828701613187565b9150509250925092565b600060ff82169050919050565b6133c3816133ad565b82525050565b60006020820190506133de60008301846133ba565b92915050565b6000602082840312156133fa576133f961311e565b5b60006134088482850161328e565b91505092915050565b600080604083850312156134285761342761311e565b5b600061343685828601613187565b925050602061344785828601613187565b9150509250929050565b6000602082840312156134675761346661311e565b5b600061347584828501613187565b91505092915050565b600080604083850312156134955761349461311e565b5b60006134a385828601613151565b92505060206134b48582860161328e565b9150509250929050565b6134c781613128565b82525050565b60006020820190506134e260008301846134be565b92915050565b60006134f382613128565b9050919050565b613503816134e8565b811461350e57600080fd5b50565b600081359050613520816134fa565b92915050565b60008060006060848603121561353f5761353e61311e565b5b600061354d86828701613511565b935050602061355e86828701613151565b925050604061356f86828701613187565b9150509250925092565b600080604083850312156135905761358f61311e565b5b600061359e85828601613151565b92505060206135af85828601613151565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006135ef602083612fdd565b91506135fa826135b9565b602082019050919050565b6000602082019050818103600083015261361e816135e2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061366c57607f821691505b60208210810361367f5761367e613625565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006136ee82613166565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036137205761371f6136b4565b5b600182019050919050565b7f45524332303a20416c726561647920456e61626c656400000000000000000000600082015250565b6000613761601683612fdd565b915061376c8261372b565b602082019050919050565b6000602082019050818103600083015261379081613754565b9050919050565b7f4572726f723a2047756172646564210000000000000000000000000000000000600082015250565b60006137cd600f83612fdd565b91506137d882613797565b602082019050919050565b600060208201905081810360008301526137fc816137c0565b9050919050565b600060408201905061381860008301856134be565b6138256020830184613303565b9392505050565b60008151905061383b81613277565b92915050565b6000602082840312156138575761385661311e565b5b60006138658482850161382c565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006138ca602683612fdd565b91506138d58261386e565b604082019050919050565b600060208201905081810360008301526138f9816138bd565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061395c602483612fdd565b915061396782613900565b604082019050919050565b6000602082019050818103600083015261398b8161394f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006139ee602283612fdd565b91506139f982613992565b604082019050919050565b60006020820190508181036000830152613a1d816139e1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613a80602583612fdd565b9150613a8b82613a24565b604082019050919050565b60006020820190508181036000830152613aaf81613a73565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613b12602383612fdd565b9150613b1d82613ab6565b604082019050919050565b60006020820190508181036000830152613b4181613b05565b9050919050565b7f416d6f756e74206973207a65726f000000000000000000000000000000000000600082015250565b6000613b7e600e83612fdd565b9150613b8982613b48565b602082019050919050565b60006020820190508181036000830152613bad81613b71565b9050919050565b7f45524332303a20426f7420646574656374656400000000000000000000000000600082015250565b6000613bea601383612fdd565b9150613bf582613bb4565b602082019050919050565b60006020820190508181036000830152613c1981613bdd565b9050919050565b7f45524332303a2074726164696e67206e6f7420656e61626c6520796574000000600082015250565b6000613c56601d83612fdd565b9150613c6182613c20565b602082019050919050565b60006020820190508181036000830152613c8581613c49565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b6000613ce8602883612fdd565b9150613cf382613c8c565b604082019050919050565b60006020820190508181036000830152613d1781613cdb565b9050919050565b7f57616c6c6574204c696d69742045786365656465642121000000000000000000600082015250565b6000613d54601783612fdd565b9150613d5f82613d1e565b602082019050919050565b60006020820190508181036000830152613d8381613d47565b9050919050565b6000613d9582613166565b9150613da083613166565b9250828203905081811115613db857613db76136b4565b5b92915050565b6000613dc982613166565b9150613dd483613166565b9250828201905080821115613dec57613deb6136b4565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613e28601b83612fdd565b9150613e3382613df2565b602082019050919050565b60006020820190508181036000830152613e5781613e1b565b9050919050565b6000613e6982613166565b9150613e7483613166565b9250828202613e8281613166565b91508282048414831517613e9957613e986136b4565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613eda82613166565b9150613ee583613166565b925082613ef557613ef4613ea0565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f5c602183612fdd565b9150613f6782613f00565b604082019050919050565b60006020820190508181036000830152613f8b81613f4f565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202ace92ef3192372ea4e6b4f4af3b6c14eb7e8c34c7588b2f20286dbe9ce6c6d964736f6c63430008130033
Deployed Bytecode Sourcemap
4838:10173:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13621:160;;;;;;;;;;;;;:::i;:::-;;8008:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6350:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8679:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13037:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8285:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14629:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9453:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12375:130;;;;;;;;;;;;;:::i;:::-;;8194:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5679:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5513:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13895:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13497:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5456:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14516:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6107:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14138:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8393:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2405:94;;;;;;;;;;;;;:::i;:::-;;14402:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5837:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5914:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5624:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2096:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13386:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8099:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12839:190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9278:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14274:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6190:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14739:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5565:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12699:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5272:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13270:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8524:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5244:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14008:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12546:113;;;;;;;;;;;;;:::i;:::-;;6033:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5989;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6078:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13789:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6388:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2507:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14913:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6146:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13621:160;2328:12;:10;:12::i;:::-;2317:23;;:7;:5;:7::i;:::-;:23;;;2309:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13681:1:::1;13672:6;:10;;;;13703:1;13693:7;:11;;;;13735:1;13715:17;:21;;;;13768:5;13747:18;;:26;;;;;;;;;;;;;;;;;;13621:160::o:0;8008:83::-;8045:13;8078:5;8071:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8008:83;:::o;6350:31::-;;;;;;;;;;;;;:::o;8679:161::-;8754:4;8771:39;8780:12;:10;:12::i;:::-;8794:7;8803:6;8771:8;:39::i;:::-;8828:4;8821:11;;8679:161;;;;:::o;13037:225::-;2328:12;:10;:12::i;:::-;2317:23;;:7;:5;:7::i;:::-;:23;;;2309:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13161:9:::1;13156:99;13180:8;;:15;;13176:1;:19;13156:99;;;13238:5;13217;:18;13223:8;;13232:1;13223:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;13217:18;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;13197:3;;;;;:::i;:::-;;;;13156:99;;;;13037:225:::0;;;:::o;8285:100::-;8338:7;8365:12;;8358:19;;8285:100;:::o;14629:102::-;2328:12;:10;:12::i;:::-;2317:23;;:7;:5;:7::i;:::-;:23;;;2309:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14713:10:::1;14701:9;;:22;;;;;;;;;;;;;;;;;;14629:102:::0;:::o;9453:313::-;9551:4;9568:36;9578:6;9586:9;9597:6;9568:9;:36::i;:::-;;9615:121;9624:6;9632:12;:10;:12::i;:::-;9646:89;9684:6;9646:89;;;;;;;;;;;;;;;;;:11;:19;9658:6;9646:19;;;;;;;;;;;;;;;:33;9666:12;:10;:12::i;:::-;9646:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;9615:8;:121::i;:::-;9754:4;9747:11;;9453:313;;;;;:::o;12375:130::-;2328:12;:10;:12::i;:::-;2317:23;;:7;:5;:7::i;:::-;:23;;;2309:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12438:7:::1;;;;;;;;;;;12437:8;12429:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;12493:4;12483:7;;:14;;;;;;;;;;;;;;;;;;12375:130::o:0;8194:83::-;8235:5;8260:9;;;;;;;;;;;8253:16;;8194:83;:::o;5679:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;5513:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;13895:105::-;2328:12;:10;:12::i;:::-;2317:23;;:7;:5;:7::i;:::-;:23;;;2309:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13985:7:::1;13966:16;;:26;;;;;;;;;;;;;;;;;;13895:105:::0;:::o;13497:116::-;2328:12;:10;:12::i;:::-;2317:23;;:7;:5;:7::i;:::-;:23;;;2309:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13575:4:::1;13566:6;:13;;;;13600:5;13590:7;:15;;;;13497:116:::0;;:::o;5456:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;14516:101::-;2328:12;:10;:12::i;:::-;2317:23;;:7;:5;:7::i;:::-;:23;;;2309:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14601:8:::1;14586:12;:23;;;;14516:101:::0;:::o;6107:32::-;;;;;;;;;;;;;:::o;14138:128::-;2328:12;:10;:12::i;:::-;2317:23;;:7;:5;:7::i;:::-;:23;;;2309:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14251:7:::1;14223:19;:25;14243:4;14223:25;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;14138:128:::0;;:::o;8393:123::-;8459:7;8485:9;:18;8495:7;8485:18;;;;;;;;;;;;;;;;8478:25;;8393:123;;;:::o;2405:94::-;2328:12;:10;:12::i;:::-;2317:23;;:7;:5;:7::i;:::-;:23;;;2309:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2470:21:::1;2488:1;2470:9;:21::i;:::-;2405:94::o:0;14402:106::-;2328:12;:10;:12::i;:::-;2317:23;;:7;:5;:7::i;:::-;:23;;;2309:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14492:8:::1;14479:10;:21;;;;14402:106:::0;:::o;5837:61::-;;;;:::o;5914:58::-;;;;:::o;5624:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;2096:87::-;2142:7;2169:6;;;;;;;;;;;2162:13;;2096:87;:::o;13386:103::-;2328:12;:10;:12::i;:::-;2317:23;;:7;:5;:7::i;:::-;:23;;;2309:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13474:7:::1;13454:17;:27;;;;13386:103:::0;:::o;8099:87::-;8138:13;8171:7;8164:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8099:87;:::o;12839:190::-;2328:12;:10;:12::i;:::-;2317:23;;:7;:5;:7::i;:::-;:23;;;2309:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12935:6:::1;12931:91;12951:4;;:11;;12947:1;:15;12931:91;;;13003:7;12983:8;:17;12992:4;;12997:1;12992:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;12983:17;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;12964:3;;;;;:::i;:::-;;;;12931:91;;;;12839:190:::0;;;:::o;9278:167::-;9356:4;9373:42;9383:12;:10;:12::i;:::-;9397:9;9408:6;9373:9;:42::i;:::-;;9433:4;9426:11;;9278:167;;;;:::o;14274:120::-;2328:12;:10;:12::i;:::-;2317:23;;:7;:5;:7::i;:::-;:23;;;2309:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14379:7:::1;14355:15;:21;14371:4;14355:21;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;14274:120:::0;;:::o;6190:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;14739:166::-;2328:12;:10;:12::i;:::-;2317:23;;:7;:5;:7::i;:::-;:23;;;2309:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14843:7:::1;14821:12;:19;14834:5;14821:19;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;14890:7;14861:19;:26;14881:5;14861:26;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;14739:166:::0;;:::o;5565:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;12699:132::-;6294:9;;;;;;;;;;;6280:23;;:10;:23;;;6272:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;12793:3:::1;:12;;;12806:9;12816:6;12793:30;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12699:132:::0;;;:::o;5272:22::-;;;;:::o;13270:108::-;2328:12;:10;:12::i;:::-;2317:23;;:7;:5;:7::i;:::-;:23;;;2309:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13363:7:::1;13342:18;;:28;;;;;;;;;;;;;;;;;;13270:108:::0;:::o;8524:143::-;8605:7;8632:11;:18;8644:5;8632:18;;;;;;;;;;;;;;;:27;8651:7;8632:27;;;;;;;;;;;;;;;;8625:34;;8524:143;;;;:::o;5244:21::-;;;;:::o;14008:122::-;2328:12;:10;:12::i;:::-;2317:23;;:7;:5;:7::i;:::-;:23;;;2309:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14115:7:::1;14089:17;:23;14107:4;14089:23;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;14008:122:::0;;:::o;12546:113::-;6294:9;;;;;;;;;;;6280:23;;:10;:23;;;6272:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;12608:10:::1;12600:28;;:51;12629:21;12600:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12546:113::o:0;6033:37::-;;;;:::o;5989:::-;;;;;;;;;;;;;:::o;6078:19::-;;;;;;;;;;;;;:::o;13789:98::-;2328:12;:10;:12::i;:::-;2317:23;;:7;:5;:7::i;:::-;:23;;;2309:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13872:7:::1;13856:13;;:23;;;;;;;;;;;;;;;;;;13789:98:::0;:::o;6388:22::-;;;;;;;;;;;;;:::o;2507:229::-;2328:12;:10;:12::i;:::-;2317:23;;:7;:5;:7::i;:::-;:23;;;2309:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2630:1:::1;2610:22;;:8;:22;;::::0;2588:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2709:19;2719:8;2709:9;:19::i;:::-;2507:229:::0;:::o;14913:91::-;2328:12;:10;:12::i;:::-;2317:23;;:7;:5;:7::i;:::-;:23;;;2309:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14991:5:::1;14981:7;;:15;;;;;;;;;;;;;;;;;;14913:91:::0;:::o;6146:35::-;;;;;;;;;;;;;:::o;663:98::-;716:7;743:10;736:17;;663:98;:::o;8848:337::-;8958:1;8941:19;;:5;:19;;;8933:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9039:1;9020:21;;:7;:21;;;9012:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9123:6;9093:11;:18;9105:5;9093:18;;;;;;;;;;;;;;;:27;9112:7;9093:27;;;;;;;;;;;;;;;:36;;;;9161:7;9145:32;;9154:5;9145:32;;;9170:6;9145:32;;;;;;:::i;:::-;;;;;;;;8848:337;;;:::o;9774:1338::-;9861:4;9906:1;9888:20;;:6;:20;;;9880:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;9990:1;9969:23;;:9;:23;;;9961:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;10060:1;10051:6;:10;10043:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;10110:5;:13;10116:6;10110:13;;;;;;;;;;;;;;;;;;;;;;;;;10109:14;10101:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;10167:5;:17;10173:10;10167:17;;;;;;;;;;;;;;;;;;;;;;;;;10166:18;10158:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;10226:8;:16;10235:6;10226:16;;;;;;;;;;;;;;;;;;;;;;;;;10225:17;:41;;;;;10247:8;:19;10256:9;10247:19;;;;;;;;;;;;;;;;;;;;;;;;;10246:20;10225:41;10221:123;;;10291:7;;;;;;;;;;;10283:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;10221:123;10372:15;:23;10388:6;10372:23;;;;;;;;;;;;;;;;;;;;;;;;;10371:24;:55;;;;;10400:15;:26;10416:9;10400:26;;;;;;;;;;;;;;;;;;;;;;;;;10399:27;10371:55;:72;;;;;10430:13;;;;;;;;;;;10371:72;10368:179;;;10478:12;;10468:6;:22;;10460:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;10368:179;10592:53;10614:6;10592:53;;;;;;;;;;;;;;;;;:9;:17;10602:6;10592:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;10572:9;:17;10582:6;10572:17;;;;;;;;;;;;;;;:73;;;;10658:19;10680:34;10697:6;10704:9;10680:16;:34::i;:::-;:80;;10726:34;10734:6;10742:9;10753:6;10726:7;:34::i;:::-;10680:80;;;10717:6;10680:80;10658:102;;10776:16;;;;;;;;;;;:51;;;;;10797:19;:30;10817:9;10797:30;;;;;;;;;;;;;;;;;;;;;;;;;10796:31;10776:51;10773:169;;;10893:10;;10852:37;10877:11;10852:20;10862:9;10852;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;10844:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;10773:169;10977:37;11002:11;10977:9;:20;10987:9;10977:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;10954:9;:20;10964:9;10954:20;;;;;;;;;;;;;;;:60;;;;11049:9;11032:40;;11041:6;11032:40;;;11060:11;11032:40;;;;;;:::i;:::-;;;;;;;;11090:4;11083:11;;;9774:1338;;;;;:::o;3283:192::-;3369:7;3402:1;3397;:6;;3405:12;3389:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3429:9;3445:1;3441;:5;;;;:::i;:::-;3429:17;;3466:1;3459:8;;;3283:192;;;;;:::o;2744:173::-;2800:16;2819:6;;;;;;;;;;;2800:25;;2845:8;2836:6;;:17;;;;;;;;;;;;;;;;;;2900:8;2869:40;;2890:8;2869:40;;;;;;;;;;;;2789:128;2744:173;:::o;11120:369::-;11204:4;11224:17;:25;11242:6;11224:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;11253:17;:28;11271:9;11253:28;;;;;;;;;;;;;;;;;;;;;;;;;11224:57;11221:261;;;11305:4;11298:11;;;;11221:261;11340:12;:20;11353:6;11340:20;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;11364:12;:23;11377:9;11364:23;;;;;;;;;;;;;;;;;;;;;;;;;11340:47;11336:146;;;11411:5;11404:12;;;;11336:146;11465:5;11458:12;;11120:369;;;;;:::o;11497:870::-;11583:7;11613:14;11670:12;:20;11683:6;11670:20;;;;;;;;;;;;;;;;;;;;;;;;;11667:426;;;11729:38;11752:14;;11729:18;11740:6;;11729;:10;;:18;;;;:::i;:::-;:22;;:38;;;;:::i;:::-;11717:50;;11667:426;;;11806:12;:23;11819:9;11806:23;;;;;;;;;;;;;;;;;;;;;;;;;11803:290;;;11869:39;11893:14;;11869:19;11880:7;;11869:6;:10;;:19;;;;:::i;:::-;:23;;:39;;;;:::i;:::-;11857:51;;11803:290;;;11965:18;;;;;;;;;;;11962:116;;;12020:38;12054:3;12020:29;12031:17;;12020:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;12008:50;;11962:116;11803:290;11667:426;12124:1;12112:9;:13;12109:185;;;12173:39;12202:9;12173;:24;12191:4;12173:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;12146:9;:24;12164:4;12146:24;;;;;;;;;;;;;;;:66;;;;12261:4;12236:42;;12245:6;12236:42;;;12268:9;12236:42;;;;;;:::i;:::-;;;;;;;;12109:185;12317:21;12328:9;12317:6;:10;;:21;;;;:::i;:::-;12310:28;;;11497:870;;;;;:::o;2950:181::-;3008:7;3028:9;3044:1;3040;:5;;;;:::i;:::-;3028:17;;3069:1;3064;:6;;3056:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3122:1;3115:8;;;2950:181;;;;:::o;3483:250::-;3541:7;3570:1;3565;:6;3561:47;;3595:1;3588:8;;;;3561:47;3620:9;3636:1;3632;:5;;;;:::i;:::-;3620:17;;3665:1;3660;3656;:5;;;;:::i;:::-;:10;3648:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3724:1;3717:8;;;3483:250;;;;;:::o;3741:132::-;3799:7;3826:39;3830:1;3833;3826:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3819:46;;3741:132;;;;:::o;3139:136::-;3197:7;3224:43;3228:1;3231;3224:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3217:50;;3139:136;;;;:::o;3881:278::-;3967:7;3999:1;3995;:5;4002:12;3987:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4026:9;4042:1;4038;:5;;;;:::i;:::-;4026:17;;4150:1;4143:8;;;3881:278;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:126::-;1386:7;1426:42;1419:5;1415:54;1404:65;;1349:126;;;:::o;1481:60::-;1509:3;1530:5;1523:12;;1481:60;;;:::o;1547:142::-;1597:9;1630:53;1648:34;1657:24;1675:5;1657:24;:::i;:::-;1648:34;:::i;:::-;1630:53;:::i;:::-;1617:66;;1547:142;;;:::o;1695:126::-;1745:9;1778:37;1809:5;1778:37;:::i;:::-;1765:50;;1695:126;;;:::o;1827:148::-;1899:9;1932:37;1963:5;1932:37;:::i;:::-;1919:50;;1827:148;;;:::o;1981:175::-;2090:59;2143:5;2090:59;:::i;:::-;2085:3;2078:72;1981:175;;:::o;2162:266::-;2277:4;2315:2;2304:9;2300:18;2292:26;;2328:93;2418:1;2407:9;2403:17;2394:6;2328:93;:::i;:::-;2162:266;;;;:::o;2515:117::-;2624:1;2621;2614:12;2638:117;2747:1;2744;2737:12;2761:96;2798:7;2827:24;2845:5;2827:24;:::i;:::-;2816:35;;2761:96;;;:::o;2863:122::-;2936:24;2954:5;2936:24;:::i;:::-;2929:5;2926:35;2916:63;;2975:1;2972;2965:12;2916:63;2863:122;:::o;2991:139::-;3037:5;3075:6;3062:20;3053:29;;3091:33;3118:5;3091:33;:::i;:::-;2991:139;;;;:::o;3136:77::-;3173:7;3202:5;3191:16;;3136:77;;;:::o;3219:122::-;3292:24;3310:5;3292:24;:::i;:::-;3285:5;3282:35;3272:63;;3331:1;3328;3321:12;3272:63;3219:122;:::o;3347:139::-;3393:5;3431:6;3418:20;3409:29;;3447:33;3474:5;3447:33;:::i;:::-;3347:139;;;;:::o;3492:474::-;3560:6;3568;3617:2;3605:9;3596:7;3592:23;3588:32;3585:119;;;3623:79;;:::i;:::-;3585:119;3743:1;3768:53;3813:7;3804:6;3793:9;3789:22;3768:53;:::i;:::-;3758:63;;3714:117;3870:2;3896:53;3941:7;3932:6;3921:9;3917:22;3896:53;:::i;:::-;3886:63;;3841:118;3492:474;;;;;:::o;3972:90::-;4006:7;4049:5;4042:13;4035:21;4024:32;;3972:90;;;:::o;4068:109::-;4149:21;4164:5;4149:21;:::i;:::-;4144:3;4137:34;4068:109;;:::o;4183:210::-;4270:4;4308:2;4297:9;4293:18;4285:26;;4321:65;4383:1;4372:9;4368:17;4359:6;4321:65;:::i;:::-;4183:210;;;;:::o;4399:117::-;4508:1;4505;4498:12;4522:117;4631:1;4628;4621:12;4645:117;4754:1;4751;4744:12;4785:568;4858:8;4868:6;4918:3;4911:4;4903:6;4899:17;4895:27;4885:122;;4926:79;;:::i;:::-;4885:122;5039:6;5026:20;5016:30;;5069:18;5061:6;5058:30;5055:117;;;5091:79;;:::i;:::-;5055:117;5205:4;5197:6;5193:17;5181:29;;5259:3;5251:4;5243:6;5239:17;5229:8;5225:32;5222:41;5219:128;;;5266:79;;:::i;:::-;5219:128;4785:568;;;;;:::o;5359:116::-;5429:21;5444:5;5429:21;:::i;:::-;5422:5;5419:32;5409:60;;5465:1;5462;5455:12;5409:60;5359:116;:::o;5481:133::-;5524:5;5562:6;5549:20;5540:29;;5578:30;5602:5;5578:30;:::i;:::-;5481:133;;;;:::o;5620:698::-;5712:6;5720;5728;5777:2;5765:9;5756:7;5752:23;5748:32;5745:119;;;5783:79;;:::i;:::-;5745:119;5931:1;5920:9;5916:17;5903:31;5961:18;5953:6;5950:30;5947:117;;;5983:79;;:::i;:::-;5947:117;6096:80;6168:7;6159:6;6148:9;6144:22;6096:80;:::i;:::-;6078:98;;;;5874:312;6225:2;6251:50;6293:7;6284:6;6273:9;6269:22;6251:50;:::i;:::-;6241:60;;6196:115;5620:698;;;;;:::o;6324:118::-;6411:24;6429:5;6411:24;:::i;:::-;6406:3;6399:37;6324:118;;:::o;6448:222::-;6541:4;6579:2;6568:9;6564:18;6556:26;;6592:71;6660:1;6649:9;6645:17;6636:6;6592:71;:::i;:::-;6448:222;;;;:::o;6676:329::-;6735:6;6784:2;6772:9;6763:7;6759:23;6755:32;6752:119;;;6790:79;;:::i;:::-;6752:119;6910:1;6935:53;6980:7;6971:6;6960:9;6956:22;6935:53;:::i;:::-;6925:63;;6881:117;6676:329;;;;:::o;7011:619::-;7088:6;7096;7104;7153:2;7141:9;7132:7;7128:23;7124:32;7121:119;;;7159:79;;:::i;:::-;7121:119;7279:1;7304:53;7349:7;7340:6;7329:9;7325:22;7304:53;:::i;:::-;7294:63;;7250:117;7406:2;7432:53;7477:7;7468:6;7457:9;7453:22;7432:53;:::i;:::-;7422:63;;7377:118;7534:2;7560:53;7605:7;7596:6;7585:9;7581:22;7560:53;:::i;:::-;7550:63;;7505:118;7011:619;;;;;:::o;7636:86::-;7671:7;7711:4;7704:5;7700:16;7689:27;;7636:86;;;:::o;7728:112::-;7811:22;7827:5;7811:22;:::i;:::-;7806:3;7799:35;7728:112;;:::o;7846:214::-;7935:4;7973:2;7962:9;7958:18;7950:26;;7986:67;8050:1;8039:9;8035:17;8026:6;7986:67;:::i;:::-;7846:214;;;;:::o;8066:323::-;8122:6;8171:2;8159:9;8150:7;8146:23;8142:32;8139:119;;;8177:79;;:::i;:::-;8139:119;8297:1;8322:50;8364:7;8355:6;8344:9;8340:22;8322:50;:::i;:::-;8312:60;;8268:114;8066:323;;;;:::o;8395:474::-;8463:6;8471;8520:2;8508:9;8499:7;8495:23;8491:32;8488:119;;;8526:79;;:::i;:::-;8488:119;8646:1;8671:53;8716:7;8707:6;8696:9;8692:22;8671:53;:::i;:::-;8661:63;;8617:117;8773:2;8799:53;8844:7;8835:6;8824:9;8820:22;8799:53;:::i;:::-;8789:63;;8744:118;8395:474;;;;;:::o;8875:329::-;8934:6;8983:2;8971:9;8962:7;8958:23;8954:32;8951:119;;;8989:79;;:::i;:::-;8951:119;9109:1;9134:53;9179:7;9170:6;9159:9;9155:22;9134:53;:::i;:::-;9124:63;;9080:117;8875:329;;;;:::o;9210:468::-;9275:6;9283;9332:2;9320:9;9311:7;9307:23;9303:32;9300:119;;;9338:79;;:::i;:::-;9300:119;9458:1;9483:53;9528:7;9519:6;9508:9;9504:22;9483:53;:::i;:::-;9473:63;;9429:117;9585:2;9611:50;9653:7;9644:6;9633:9;9629:22;9611:50;:::i;:::-;9601:60;;9556:115;9210:468;;;;;:::o;9684:118::-;9771:24;9789:5;9771:24;:::i;:::-;9766:3;9759:37;9684:118;;:::o;9808:222::-;9901:4;9939:2;9928:9;9924:18;9916:26;;9952:71;10020:1;10009:9;10005:17;9996:6;9952:71;:::i;:::-;9808:222;;;;:::o;10036:109::-;10086:7;10115:24;10133:5;10115:24;:::i;:::-;10104:35;;10036:109;;;:::o;10151:148::-;10237:37;10268:5;10237:37;:::i;:::-;10230:5;10227:48;10217:76;;10289:1;10286;10279:12;10217:76;10151:148;:::o;10305:165::-;10364:5;10402:6;10389:20;10380:29;;10418:46;10458:5;10418:46;:::i;:::-;10305:165;;;;:::o;10476:645::-;10566:6;10574;10582;10631:2;10619:9;10610:7;10606:23;10602:32;10599:119;;;10637:79;;:::i;:::-;10599:119;10757:1;10782:66;10840:7;10831:6;10820:9;10816:22;10782:66;:::i;:::-;10772:76;;10728:130;10897:2;10923:53;10968:7;10959:6;10948:9;10944:22;10923:53;:::i;:::-;10913:63;;10868:118;11025:2;11051:53;11096:7;11087:6;11076:9;11072:22;11051:53;:::i;:::-;11041:63;;10996:118;10476:645;;;;;:::o;11127:474::-;11195:6;11203;11252:2;11240:9;11231:7;11227:23;11223:32;11220:119;;;11258:79;;:::i;:::-;11220:119;11378:1;11403:53;11448:7;11439:6;11428:9;11424:22;11403:53;:::i;:::-;11393:63;;11349:117;11505:2;11531:53;11576:7;11567:6;11556:9;11552:22;11531:53;:::i;:::-;11521:63;;11476:118;11127:474;;;;;:::o;11607:182::-;11747:34;11743:1;11735:6;11731:14;11724:58;11607:182;:::o;11795:366::-;11937:3;11958:67;12022:2;12017:3;11958:67;:::i;:::-;11951:74;;12034:93;12123:3;12034:93;:::i;:::-;12152:2;12147:3;12143:12;12136:19;;11795:366;;;:::o;12167:419::-;12333:4;12371:2;12360:9;12356:18;12348:26;;12420:9;12414:4;12410:20;12406:1;12395:9;12391:17;12384:47;12448:131;12574:4;12448:131;:::i;:::-;12440:139;;12167:419;;;:::o;12592:180::-;12640:77;12637:1;12630:88;12737:4;12734:1;12727:15;12761:4;12758:1;12751:15;12778:320;12822:6;12859:1;12853:4;12849:12;12839:22;;12906:1;12900:4;12896:12;12927:18;12917:81;;12983:4;12975:6;12971:17;12961:27;;12917:81;13045:2;13037:6;13034:14;13014:18;13011:38;13008:84;;13064:18;;:::i;:::-;13008:84;12829:269;12778:320;;;:::o;13104:180::-;13152:77;13149:1;13142:88;13249:4;13246:1;13239:15;13273:4;13270:1;13263:15;13290:180;13338:77;13335:1;13328:88;13435:4;13432:1;13425:15;13459:4;13456:1;13449:15;13476:233;13515:3;13538:24;13556:5;13538:24;:::i;:::-;13529:33;;13584:66;13577:5;13574:77;13571:103;;13654:18;;:::i;:::-;13571:103;13701:1;13694:5;13690:13;13683:20;;13476:233;;;:::o;13715:172::-;13855:24;13851:1;13843:6;13839:14;13832:48;13715:172;:::o;13893:366::-;14035:3;14056:67;14120:2;14115:3;14056:67;:::i;:::-;14049:74;;14132:93;14221:3;14132:93;:::i;:::-;14250:2;14245:3;14241:12;14234:19;;13893:366;;;:::o;14265:419::-;14431:4;14469:2;14458:9;14454:18;14446:26;;14518:9;14512:4;14508:20;14504:1;14493:9;14489:17;14482:47;14546:131;14672:4;14546:131;:::i;:::-;14538:139;;14265:419;;;:::o;14690:165::-;14830:17;14826:1;14818:6;14814:14;14807:41;14690:165;:::o;14861:366::-;15003:3;15024:67;15088:2;15083:3;15024:67;:::i;:::-;15017:74;;15100:93;15189:3;15100:93;:::i;:::-;15218:2;15213:3;15209:12;15202:19;;14861:366;;;:::o;15233:419::-;15399:4;15437:2;15426:9;15422:18;15414:26;;15486:9;15480:4;15476:20;15472:1;15461:9;15457:17;15450:47;15514:131;15640:4;15514:131;:::i;:::-;15506:139;;15233:419;;;:::o;15658:332::-;15779:4;15817:2;15806:9;15802:18;15794:26;;15830:71;15898:1;15887:9;15883:17;15874:6;15830:71;:::i;:::-;15911:72;15979:2;15968:9;15964:18;15955:6;15911:72;:::i;:::-;15658:332;;;;;:::o;15996:137::-;16050:5;16081:6;16075:13;16066:22;;16097:30;16121:5;16097:30;:::i;:::-;15996:137;;;;:::o;16139:345::-;16206:6;16255:2;16243:9;16234:7;16230:23;16226:32;16223:119;;;16261:79;;:::i;:::-;16223:119;16381:1;16406:61;16459:7;16450:6;16439:9;16435:22;16406:61;:::i;:::-;16396:71;;16352:125;16139:345;;;;:::o;16490:225::-;16630:34;16626:1;16618:6;16614:14;16607:58;16699:8;16694:2;16686:6;16682:15;16675:33;16490:225;:::o;16721:366::-;16863:3;16884:67;16948:2;16943:3;16884:67;:::i;:::-;16877:74;;16960:93;17049:3;16960:93;:::i;:::-;17078:2;17073:3;17069:12;17062:19;;16721:366;;;:::o;17093:419::-;17259:4;17297:2;17286:9;17282:18;17274:26;;17346:9;17340:4;17336:20;17332:1;17321:9;17317:17;17310:47;17374:131;17500:4;17374:131;:::i;:::-;17366:139;;17093:419;;;:::o;17518:223::-;17658:34;17654:1;17646:6;17642:14;17635:58;17727:6;17722:2;17714:6;17710:15;17703:31;17518:223;:::o;17747:366::-;17889:3;17910:67;17974:2;17969:3;17910:67;:::i;:::-;17903:74;;17986:93;18075:3;17986:93;:::i;:::-;18104:2;18099:3;18095:12;18088:19;;17747:366;;;:::o;18119:419::-;18285:4;18323:2;18312:9;18308:18;18300:26;;18372:9;18366:4;18362:20;18358:1;18347:9;18343:17;18336:47;18400:131;18526:4;18400:131;:::i;:::-;18392:139;;18119:419;;;:::o;18544:221::-;18684:34;18680:1;18672:6;18668:14;18661:58;18753:4;18748:2;18740:6;18736:15;18729:29;18544:221;:::o;18771:366::-;18913:3;18934:67;18998:2;18993:3;18934:67;:::i;:::-;18927:74;;19010:93;19099:3;19010:93;:::i;:::-;19128:2;19123:3;19119:12;19112:19;;18771:366;;;:::o;19143:419::-;19309:4;19347:2;19336:9;19332:18;19324:26;;19396:9;19390:4;19386:20;19382:1;19371:9;19367:17;19360:47;19424:131;19550:4;19424:131;:::i;:::-;19416:139;;19143:419;;;:::o;19568:224::-;19708:34;19704:1;19696:6;19692:14;19685:58;19777:7;19772:2;19764:6;19760:15;19753:32;19568:224;:::o;19798:366::-;19940:3;19961:67;20025:2;20020:3;19961:67;:::i;:::-;19954:74;;20037:93;20126:3;20037:93;:::i;:::-;20155:2;20150:3;20146:12;20139:19;;19798:366;;;:::o;20170:419::-;20336:4;20374:2;20363:9;20359:18;20351:26;;20423:9;20417:4;20413:20;20409:1;20398:9;20394:17;20387:47;20451:131;20577:4;20451:131;:::i;:::-;20443:139;;20170:419;;;:::o;20595:222::-;20735:34;20731:1;20723:6;20719:14;20712:58;20804:5;20799:2;20791:6;20787:15;20780:30;20595:222;:::o;20823:366::-;20965:3;20986:67;21050:2;21045:3;20986:67;:::i;:::-;20979:74;;21062:93;21151:3;21062:93;:::i;:::-;21180:2;21175:3;21171:12;21164:19;;20823:366;;;:::o;21195:419::-;21361:4;21399:2;21388:9;21384:18;21376:26;;21448:9;21442:4;21438:20;21434:1;21423:9;21419:17;21412:47;21476:131;21602:4;21476:131;:::i;:::-;21468:139;;21195:419;;;:::o;21620:164::-;21760:16;21756:1;21748:6;21744:14;21737:40;21620:164;:::o;21790:366::-;21932:3;21953:67;22017:2;22012:3;21953:67;:::i;:::-;21946:74;;22029:93;22118:3;22029:93;:::i;:::-;22147:2;22142:3;22138:12;22131:19;;21790:366;;;:::o;22162:419::-;22328:4;22366:2;22355:9;22351:18;22343:26;;22415:9;22409:4;22405:20;22401:1;22390:9;22386:17;22379:47;22443:131;22569:4;22443:131;:::i;:::-;22435:139;;22162:419;;;:::o;22587:169::-;22727:21;22723:1;22715:6;22711:14;22704:45;22587:169;:::o;22762:366::-;22904:3;22925:67;22989:2;22984:3;22925:67;:::i;:::-;22918:74;;23001:93;23090:3;23001:93;:::i;:::-;23119:2;23114:3;23110:12;23103:19;;22762:366;;;:::o;23134:419::-;23300:4;23338:2;23327:9;23323:18;23315:26;;23387:9;23381:4;23377:20;23373:1;23362:9;23358:17;23351:47;23415:131;23541:4;23415:131;:::i;:::-;23407:139;;23134:419;;;:::o;23559:179::-;23699:31;23695:1;23687:6;23683:14;23676:55;23559:179;:::o;23744:366::-;23886:3;23907:67;23971:2;23966:3;23907:67;:::i;:::-;23900:74;;23983:93;24072:3;23983:93;:::i;:::-;24101:2;24096:3;24092:12;24085:19;;23744:366;;;:::o;24116:419::-;24282:4;24320:2;24309:9;24305:18;24297:26;;24369:9;24363:4;24359:20;24355:1;24344:9;24340:17;24333:47;24397:131;24523:4;24397:131;:::i;:::-;24389:139;;24116:419;;;:::o;24541:227::-;24681:34;24677:1;24669:6;24665:14;24658:58;24750:10;24745:2;24737:6;24733:15;24726:35;24541:227;:::o;24774:366::-;24916:3;24937:67;25001:2;24996:3;24937:67;:::i;:::-;24930:74;;25013:93;25102:3;25013:93;:::i;:::-;25131:2;25126:3;25122:12;25115:19;;24774:366;;;:::o;25146:419::-;25312:4;25350:2;25339:9;25335:18;25327:26;;25399:9;25393:4;25389:20;25385:1;25374:9;25370:17;25363:47;25427:131;25553:4;25427:131;:::i;:::-;25419:139;;25146:419;;;:::o;25571:173::-;25711:25;25707:1;25699:6;25695:14;25688:49;25571:173;:::o;25750:366::-;25892:3;25913:67;25977:2;25972:3;25913:67;:::i;:::-;25906:74;;25989:93;26078:3;25989:93;:::i;:::-;26107:2;26102:3;26098:12;26091:19;;25750:366;;;:::o;26122:419::-;26288:4;26326:2;26315:9;26311:18;26303:26;;26375:9;26369:4;26365:20;26361:1;26350:9;26346:17;26339:47;26403:131;26529:4;26403:131;:::i;:::-;26395:139;;26122:419;;;:::o;26547:194::-;26587:4;26607:20;26625:1;26607:20;:::i;:::-;26602:25;;26641:20;26659:1;26641:20;:::i;:::-;26636:25;;26685:1;26682;26678:9;26670:17;;26709:1;26703:4;26700:11;26697:37;;;26714:18;;:::i;:::-;26697:37;26547:194;;;;:::o;26747:191::-;26787:3;26806:20;26824:1;26806:20;:::i;:::-;26801:25;;26840:20;26858:1;26840:20;:::i;:::-;26835:25;;26883:1;26880;26876:9;26869:16;;26904:3;26901:1;26898:10;26895:36;;;26911:18;;:::i;:::-;26895:36;26747:191;;;;:::o;26944:177::-;27084:29;27080:1;27072:6;27068:14;27061:53;26944:177;:::o;27127:366::-;27269:3;27290:67;27354:2;27349:3;27290:67;:::i;:::-;27283:74;;27366:93;27455:3;27366:93;:::i;:::-;27484:2;27479:3;27475:12;27468:19;;27127:366;;;:::o;27499:419::-;27665:4;27703:2;27692:9;27688:18;27680:26;;27752:9;27746:4;27742:20;27738:1;27727:9;27723:17;27716:47;27780:131;27906:4;27780:131;:::i;:::-;27772:139;;27499:419;;;:::o;27924:410::-;27964:7;27987:20;28005:1;27987:20;:::i;:::-;27982:25;;28021:20;28039:1;28021:20;:::i;:::-;28016:25;;28076:1;28073;28069:9;28098:30;28116:11;28098:30;:::i;:::-;28087:41;;28277:1;28268:7;28264:15;28261:1;28258:22;28238:1;28231:9;28211:83;28188:139;;28307:18;;:::i;:::-;28188:139;27972:362;27924:410;;;;:::o;28340:180::-;28388:77;28385:1;28378:88;28485:4;28482:1;28475:15;28509:4;28506:1;28499:15;28526:185;28566:1;28583:20;28601:1;28583:20;:::i;:::-;28578:25;;28617:20;28635:1;28617:20;:::i;:::-;28612:25;;28656:1;28646:35;;28661:18;;:::i;:::-;28646:35;28703:1;28700;28696:9;28691:14;;28526:185;;;;:::o;28717:220::-;28857:34;28853:1;28845:6;28841:14;28834:58;28926:3;28921:2;28913:6;28909:15;28902:28;28717:220;:::o;28943:366::-;29085:3;29106:67;29170:2;29165:3;29106:67;:::i;:::-;29099:74;;29182:93;29271:3;29182:93;:::i;:::-;29300:2;29295:3;29291:12;29284:19;;28943:366;;;:::o;29315:419::-;29481:4;29519:2;29508:9;29504:18;29496:26;;29568:9;29562:4;29558:20;29554:1;29543:9;29539:17;29532:47;29596:131;29722:4;29596:131;:::i;:::-;29588:139;;29315:419;;;:::o
Swarm Source
ipfs://2ace92ef3192372ea4e6b4f4af3b6c14eb7e8c34c7588b2f20286dbe9ce6c6d9
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.