ERC-20
Overview
Max Total Supply
1,000,000,000 MINER
Holders
216
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
534,689.644685507702636987 MINERValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
MetaMiner
Compiler Version
v0.8.14+commit.80d49f37
Contract Source Code (Solidity Multiple files format)
//SPDX-License-Identifier: MIT pragma solidity 0.8.14; import "./IERC20.sol"; import "./Ownable.sol"; import "./SafeMath.sol"; interface IReceiver { function trigger() external; } /** Read more about Meta Miner At: https://linktr.ee/MetaMiner https://metaminer.network/ */ contract MetaMiner is IERC20, Ownable { using SafeMath for uint256; // total supply uint256 private _totalSupply = 10**9 * 10**18; // token data string private constant _name = "Meta Miner"; string private constant _symbol = "MINER"; uint8 private constant _decimals = 18; // balances mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; // Taxation on transfers uint256 public buyFee = 1000; uint256 public sellFee = 1000; uint256 public transferFee = 500; uint256 public constant TAX_DENOM = 10000; // permissions struct Permissions { bool isFeeExempt; bool isLiquidityPool; } mapping ( address => Permissions ) public permissions; // Fee Recipients address public sellFeeRecipient; address public buyFeeRecipient; address public transferFeeRecipient; // Auto Triggers bool public triggerReceivers = false; // events event SetBuyFeeRecipient(address recipient); event SetSellFeeRecipient(address recipient); event SetTransferFeeRecipient(address recipient); event SetFeeExemption(address account, bool isFeeExempt); event SetAutomatedMarketMaker(address account, bool isMarketMaker); event SetFees(uint256 buyFee, uint256 sellFee, uint256 transferFee); constructor() { address initialRecipient = 0x75e2F2C5e23B1155a98E72c1a7e722c7a91eF3A5; // exempt sender for tax-free initial distribution permissions[ initialRecipient ].isFeeExempt = true; // initial supply allocation _balances[initialRecipient] = _totalSupply; emit Transfer(address(0), initialRecipient, _totalSupply); } function totalSupply() external view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function name() public pure override returns (string memory) { return _name; } function symbol() public pure override returns (string memory) { return _symbol; } function decimals() public pure override returns (uint8) { return _decimals; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } /** Transfer Function */ function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } /** Transfer Function */ function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, 'Insufficient Allowance'); return _transferFrom(sender, recipient, amount); } function burn(uint256 amount) external returns (bool) { return _burn(msg.sender, amount); } function burnFrom(address account, uint256 amount) external returns (bool) { _allowances[account][msg.sender] = _allowances[account][msg.sender].sub(amount, 'Insufficient Allowance'); return _burn(account, amount); } /** Internal Transfer */ function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { require( recipient != address(0), 'Zero Recipient' ); require( amount > 0, 'Zero Amount' ); require( amount <= balanceOf(sender), 'Insufficient Balance' ); // decrement sender balance _balances[sender] = _balances[sender].sub(amount, 'Balance Underflow'); // fee for transaction (uint256 fee, address feeDestination) = getTax(sender, recipient, amount); // allocate fee if applicable if (fee > 0) { address feeRecipient = feeDestination == address(0) ? address(this) : feeDestination; _balances[feeRecipient] = _balances[feeRecipient].add(fee); emit Transfer(sender, feeRecipient, fee); if (feeRecipient != address(this) && triggerReceivers) { IReceiver(feeRecipient).trigger(); } } // give amount to recipient uint256 sendAmount = amount.sub(fee); _balances[recipient] = _balances[recipient].add(sendAmount); // emit transfer emit Transfer(sender, recipient, sendAmount); return true; } function withdraw(address token) external onlyOwner { require(token != address(0), 'Zero Address'); bool s = IERC20(token).transfer(msg.sender, IERC20(token).balanceOf(address(this))); require(s, 'Failure On Token Withdraw'); } function withdrawBNB() external onlyOwner { (bool s,) = payable(msg.sender).call{value: address(this).balance}(""); require(s); } function setAutoTrigger(bool autoTrigger) external onlyOwner { triggerReceivers = autoTrigger; } function setTransferFeeRecipient(address recipient) external onlyOwner { require(recipient != address(0), 'Zero Address'); transferFeeRecipient = recipient; permissions[recipient].isFeeExempt = true; emit SetTransferFeeRecipient(recipient); } function setBuyFeeRecipient(address recipient) external onlyOwner { require(recipient != address(0), 'Zero Address'); buyFeeRecipient = recipient; permissions[recipient].isFeeExempt = true; emit SetBuyFeeRecipient(recipient); } function setSellFeeRecipient(address recipient) external onlyOwner { require(recipient != address(0), 'Zero Address'); sellFeeRecipient = recipient; permissions[recipient].isFeeExempt = true; emit SetSellFeeRecipient(recipient); } function registerAutomatedMarketMaker(address account) external onlyOwner { require(account != address(0), 'Zero Address'); require(!permissions[account].isLiquidityPool, 'Already An AMM'); permissions[account].isLiquidityPool = true; emit SetAutomatedMarketMaker(account, true); } function unRegisterAutomatedMarketMaker(address account) external onlyOwner { require(account != address(0), 'Zero Address'); require(permissions[account].isLiquidityPool, 'Not An AMM'); permissions[account].isLiquidityPool = false; emit SetAutomatedMarketMaker(account, false); } function setFees(uint _buyFee, uint _sellFee, uint _transferFee) external onlyOwner { require( _buyFee <= 2500, 'Buy Fee Too High' ); require( _sellFee <= 2500, 'Sell Fee Too High' ); require( _transferFee <= 2500, 'Transfer Fee Too High' ); buyFee = _buyFee; sellFee = _sellFee; transferFee = _transferFee; emit SetFees(_buyFee, _sellFee, _transferFee); } function setFeeExempt(address account, bool isExempt) external onlyOwner { require(account != address(0), 'Zero Address'); permissions[account].isFeeExempt = isExempt; emit SetFeeExemption(account, isExempt); } function getTax(address sender, address recipient, uint256 amount) public view returns (uint256, address) { if ( permissions[sender].isFeeExempt || permissions[recipient].isFeeExempt ) { return (0, address(0)); } return permissions[sender].isLiquidityPool ? (amount.mul(buyFee).div(TAX_DENOM), buyFeeRecipient) : permissions[recipient].isLiquidityPool ? (amount.mul(sellFee).div(TAX_DENOM), sellFeeRecipient) : (amount.mul(transferFee).div(TAX_DENOM), transferFeeRecipient); } function _burn(address account, uint256 amount) internal returns (bool) { require( account != address(0), 'Zero Address' ); require( amount > 0, 'Zero Amount' ); require( amount <= balanceOf(account), 'Insufficient Balance' ); _balances[account] = _balances[account].sub(amount, 'Balance Underflow'); _totalSupply = _totalSupply.sub(amount, 'Supply Underflow'); emit Transfer(account, address(0), amount); return true; } receive() external payable {} }
//SPDX-License-Identifier: MIT pragma solidity 0.8.14; interface IERC20 { function totalSupply() external view returns (uint256); function symbol() external view returns(string memory); function name() external view returns(string memory); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Returns the number of decimal places */ function decimals() external view returns (uint8); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); }
// SPDX-License-Identifier: GPL-3.0 pragma solidity 0.8.14; /** * @title Owner * @dev Set & change owner */ contract Ownable { address private owner; // event for EVM logging event OwnerSet(address indexed oldOwner, address indexed newOwner); // modifier to check if caller is owner modifier onlyOwner() { // If the first argument of 'require' evaluates to 'false', execution terminates and all // changes to the state and to Ether balances are reverted. // This used to consume all gas in old EVM versions, but not anymore. // It is often a good idea to use 'require' to check if functions are called correctly. // As a second argument, you can also provide an explanation about what went wrong. require(msg.sender == owner, "Caller is not owner"); _; } /** * @dev Set contract deployer as owner */ constructor() { owner = msg.sender; // 'msg.sender' is sender of current call, contract deployer for a constructor emit OwnerSet(address(0), owner); } /** * @dev Change owner * @param newOwner address of new owner */ function changeOwner(address newOwner) public onlyOwner { emit OwnerSet(owner, newOwner); owner = newOwner; } /** * @dev Return owner address * @return address of owner */ function getOwner() external view returns (address) { return owner; } }
//SPDX-License-Identifier: MIT pragma solidity 0.8.14; library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be 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; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } }
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":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isMarketMaker","type":"bool"}],"name":"SetAutomatedMarketMaker","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"recipient","type":"address"}],"name":"SetBuyFeeRecipient","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isFeeExempt","type":"bool"}],"name":"SetFeeExemption","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buyFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sellFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"transferFee","type":"uint256"}],"name":"SetFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"recipient","type":"address"}],"name":"SetSellFeeRecipient","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"recipient","type":"address"}],"name":"SetTransferFeeRecipient","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":"TAX_DENOM","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFeeRecipient","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"changeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"permissions","outputs":[{"internalType":"bool","name":"isFeeExempt","type":"bool"},{"internalType":"bool","name":"isLiquidityPool","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"registerAutomatedMarketMaker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFeeRecipient","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"autoTrigger","type":"bool"}],"name":"setAutoTrigger","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"setBuyFeeRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"isExempt","type":"bool"}],"name":"setFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"},{"internalType":"uint256","name":"_transferFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"setSellFeeRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"setTransferFeeRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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":"transferFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"transferFeeRecipient","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[],"name":"triggerReceivers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"unRegisterAutomatedMarketMaker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526b033b2e3c9fd0803ce80000006001556103e86004556103e86005556101f46006556000600a60146101000a81548160ff0219169083151502179055503480156200004e57600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a73560405160405180910390a360007375e2f2c5e23b1155a98e72c1a7e722c7a91ef3a590506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff021916908315150217905550600154600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60015460405162000226919062000250565b60405180910390a3506200026d565b6000819050919050565b6200024a8162000235565b82525050565b60006020820190506200026760008301846200023f565b92915050565b6139a1806200027d6000396000f3fe6080604052600436106101f25760003560e01c806367ffa8281161010d578063a6f9dae1116100a0578063b94e8df21161006f578063b94e8df21461070d578063cec10c1114610736578063d7ad21ac1461075f578063dd62ed3e1461079d578063f89532a2146107da576101f9565b8063a6f9dae114610653578063a9059cbb1461067c578063ac4dcb76146106b9578063acb2ad6f146106e2576101f9565b80638ebfc796116100dc5780638ebfc796146105a957806392a39d91146105d257806395d89b41146105fd5780639a44b9e314610628576101f9565b806367ffa828146104db57806370a082311461050457806379cc679014610541578063893d20e81461057e576101f9565b80632b14ca561161018557806342966c681161015457806342966c6814610421578063470624021461045e57806351cff8d91461048957806365fe050e146104b2576101f9565b80632b14ca5614610377578063304561bb146103a2578063313ce567146103cd5780633eb193e2146103f8576101f9565b806318160ddd116101c157806318160ddd146102cf5780631d111d13146102fa57806323b872dd146103115780632ac7b8241461034e576101f9565b806301e88208146101fe57806306fdde031461023c578063095ea7b31461026757806315e17e4b146102a4576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b5061022560048036038101906102209190612ce6565b610805565b604051610233929190612d2e565b60405180910390f35b34801561024857600080fd5b50610251610843565b60405161025e9190612df0565b60405180910390f35b34801561027357600080fd5b5061028e60048036038101906102899190612e48565b610880565b60405161029b9190612e88565b60405180910390f35b3480156102b057600080fd5b506102b9610972565b6040516102c69190612e88565b60405180910390f35b3480156102db57600080fd5b506102e4610985565b6040516102f19190612eb2565b60405180910390f35b34801561030657600080fd5b5061030f61098f565b005b34801561031d57600080fd5b5061033860048036038101906103339190612ecd565b610a96565b6040516103459190612e88565b60405180910390f35b34801561035a57600080fd5b5061037560048036038101906103709190612ce6565b610bf2565b005b34801561038357600080fd5b5061038c610e16565b6040516103999190612eb2565b60405180910390f35b3480156103ae57600080fd5b506103b7610e1c565b6040516103c49190612f2f565b60405180910390f35b3480156103d957600080fd5b506103e2610e42565b6040516103ef9190612f66565b60405180910390f35b34801561040457600080fd5b5061041f600480360381019061041a9190612ce6565b610e4b565b005b34801561042d57600080fd5b5061044860048036038101906104439190612f81565b61101e565b6040516104559190612e88565b60405180910390f35b34801561046a57600080fd5b50610473611031565b6040516104809190612eb2565b60405180910390f35b34801561049557600080fd5b506104b060048036038101906104ab9190612ce6565b611037565b005b3480156104be57600080fd5b506104d960048036038101906104d49190612ce6565b611273565b005b3480156104e757600080fd5b5061050260048036038101906104fd9190612ce6565b611498565b005b34801561051057600080fd5b5061052b60048036038101906105269190612ce6565b61166b565b6040516105389190612eb2565b60405180910390f35b34801561054d57600080fd5b5061056860048036038101906105639190612e48565b6116b4565b6040516105759190612e88565b60405180910390f35b34801561058a57600080fd5b5061059361180e565b6040516105a09190612f2f565b60405180910390f35b3480156105b557600080fd5b506105d060048036038101906105cb9190612fda565b611837565b005b3480156105de57600080fd5b506105e76119cb565b6040516105f49190612f2f565b60405180910390f35b34801561060957600080fd5b506106126119f1565b60405161061f9190612df0565b60405180910390f35b34801561063457600080fd5b5061063d611a2e565b60405161064a9190612f2f565b60405180910390f35b34801561065f57600080fd5b5061067a60048036038101906106759190612ce6565b611a54565b005b34801561068857600080fd5b506106a3600480360381019061069e9190612e48565b611b9f565b6040516106b09190612e88565b60405180910390f35b3480156106c557600080fd5b506106e060048036038101906106db9190612ce6565b611bb4565b005b3480156106ee57600080fd5b506106f7611d87565b6040516107049190612eb2565b60405180910390f35b34801561071957600080fd5b50610734600480360381019061072f919061301a565b611d8d565b005b34801561074257600080fd5b5061075d60048036038101906107589190613047565b611e38565b005b34801561076b57600080fd5b5061078660048036038101906107819190612ecd565b611fea565b60405161079492919061309a565b60405180910390f35b3480156107a957600080fd5b506107c460048036038101906107bf91906130c3565b61224a565b6040516107d19190612eb2565b60405180910390f35b3480156107e657600080fd5b506107ef6122d1565b6040516107fc9190612eb2565b60405180910390f35b60076020528060005260406000206000915090508060000160009054906101000a900460ff16908060000160019054906101000a900460ff16905082565b60606040518060400160405280600a81526020017f4d657461204d696e657200000000000000000000000000000000000000000000815250905090565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109609190612eb2565b60405180910390a36001905092915050565b600a60149054906101000a900460ff1681565b6000600154905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a149061314f565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051610a43906131a0565b60006040518083038185875af1925050503d8060008114610a80576040519150601f19603f3d011682016040523d82523d6000602084013e610a85565b606091505b5050905080610a9357600080fd5b50565b6000610b5e826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122d79092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610be984848461233b565b90509392505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c779061314f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610cef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce690613201565b60405180910390fd5b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160019054906101000a900460ff16610d7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d759061326d565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160016101000a81548160ff0219169083151502179055507fc61655276240ba149963bf00ed68118036aceb86661c8530fc627aeb83d9d1f2816000604051610e0b92919061328d565b60405180910390a150565b60055481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006012905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ed9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed09061314f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3f90613201565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055507fc1705819a90a4e9c9fba1872573191b370b8778cd644e0050b90c99b3c0762a9816040516110139190612f2f565b60405180910390a150565b600061102a3383612828565b9050919050565b60045481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bc9061314f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611134576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112b90613201565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161118c9190612f2f565b602060405180830381865afa1580156111a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cd91906132cb565b6040518363ffffffff1660e01b81526004016111ea9291906132f8565b6020604051808303816000875af1158015611209573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122d9190613336565b90508061126f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611266906133af565b60405180910390fd5b5050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611301576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f89061314f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611370576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136790613201565b60405180910390fd5b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160019054906101000a900460ff1615611400576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f79061341b565b60405180910390fd5b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160016101000a81548160ff0219169083151502179055507fc61655276240ba149963bf00ed68118036aceb86661c8530fc627aeb83d9d1f281600160405161148d92919061328d565b60405180910390a150565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151d9061314f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611595576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158c90613201565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055507fffba9995ed8a822e426a175c6a29db4e239f0788c470ba2588c6bb3cc486a449816040516116609190612f2f565b60405180910390a150565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600061177c826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122d79092919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118068383612828565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bc9061314f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192b90613201565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055507f2293b760d6615c0f087e78599ce64d67197a7dba78cdd9e241f3cd23b46101f382826040516119bf92919061328d565b60405180910390a15050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600581526020017f4d494e4552000000000000000000000000000000000000000000000000000000815250905090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611ae2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad99061314f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a73560405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611bac33848461233b565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c399061314f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611cb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca890613201565b60405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055507f78dd3f4c755a9774505b9155386a8765af9250233430ebf8ad314a8a76e43c6b81604051611d7c9190612f2f565b60405180910390a150565b60065481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e129061314f565b60405180910390fd5b80600a60146101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611ec6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebd9061314f565b60405180910390fd5b6109c4831115611f0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0290613487565b60405180910390fd5b6109c4821115611f50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f47906134f3565b60405180910390fd5b6109c4811115611f95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8c9061355f565b60405180910390fd5b8260048190555081600581905550806006819055507f37322890d66d781059d797be5e2f27dc160a34d8bc0a8e09116cb9a773ce88ef838383604051611fdd9392919061357f565b60405180910390a1505050565b600080600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16806120945750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff165b156120a55760008091509150612242565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160019054906101000a900460ff166121f057600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160019054906101000a900460ff1661219e5761217661271061216860065486612ab490919063ffffffff16565b612b2e90919063ffffffff16565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121eb565b6121c76127106121b960055486612ab490919063ffffffff16565b612b2e90919063ffffffff16565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b61223d565b61221961271061220b60045486612ab490919063ffffffff16565b612b2e90919063ffffffff16565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b915091505b935093915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61271081565b600083831115829061231f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123169190612df0565b60405180910390fd5b506000838561232e91906135e5565b9050809150509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036123ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a290613665565b60405180910390fd5b600082116123ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e5906136d1565b60405180910390fd5b6123f78461166b565b821115612439576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124309061373d565b60405180910390fd5b6124c2826040518060400160405280601181526020017f42616c616e636520556e646572666c6f77000000000000000000000000000000815250600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122d79092919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600080612513868686611fea565b9150915060008211156127095760008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461255b578161255d565b305b90506125b183600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b7890919063ffffffff16565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516126519190612eb2565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156126a15750600a60149054906101000a900460ff165b15612707578073ffffffffffffffffffffffffffffffffffffffff16637fec8d386040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156126ee57600080fd5b505af1158015612702573d6000803e3d6000fd5b505050505b505b600061271e8386612bd690919063ffffffff16565b905061277281600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b7890919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516128129190612eb2565b60405180910390a3600193505050509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288f90613201565b60405180910390fd5b600082116128db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128d2906136d1565b60405180910390fd5b6128e48361166b565b821115612926576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291d9061373d565b60405180910390fd5b6129af826040518060400160405280601181526020017f42616c616e636520556e646572666c6f77000000000000000000000000000000815250600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122d79092919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a3e826040518060400160405280601081526020017f537570706c7920556e646572666c6f77000000000000000000000000000000008152506001546122d79092919063ffffffff16565b600181905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612aa29190612eb2565b60405180910390a36001905092915050565b6000808303612ac65760009050612b28565b60008284612ad4919061375d565b9050828482612ae391906137e6565b14612b23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b1a90613889565b60405180910390fd5b809150505b92915050565b6000612b7083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612c20565b905092915050565b6000808284612b8791906138a9565b905083811015612bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bc39061394b565b60405180910390fd5b8091505092915050565b6000612c1883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122d7565b905092915050565b60008083118290612c67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c5e9190612df0565b60405180910390fd5b5060008385612c7691906137e6565b9050809150509392505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612cb382612c88565b9050919050565b612cc381612ca8565b8114612cce57600080fd5b50565b600081359050612ce081612cba565b92915050565b600060208284031215612cfc57612cfb612c83565b5b6000612d0a84828501612cd1565b91505092915050565b60008115159050919050565b612d2881612d13565b82525050565b6000604082019050612d436000830185612d1f565b612d506020830184612d1f565b9392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d91578082015181840152602081019050612d76565b83811115612da0576000848401525b50505050565b6000601f19601f8301169050919050565b6000612dc282612d57565b612dcc8185612d62565b9350612ddc818560208601612d73565b612de581612da6565b840191505092915050565b60006020820190508181036000830152612e0a8184612db7565b905092915050565b6000819050919050565b612e2581612e12565b8114612e3057600080fd5b50565b600081359050612e4281612e1c565b92915050565b60008060408385031215612e5f57612e5e612c83565b5b6000612e6d85828601612cd1565b9250506020612e7e85828601612e33565b9150509250929050565b6000602082019050612e9d6000830184612d1f565b92915050565b612eac81612e12565b82525050565b6000602082019050612ec76000830184612ea3565b92915050565b600080600060608486031215612ee657612ee5612c83565b5b6000612ef486828701612cd1565b9350506020612f0586828701612cd1565b9250506040612f1686828701612e33565b9150509250925092565b612f2981612ca8565b82525050565b6000602082019050612f446000830184612f20565b92915050565b600060ff82169050919050565b612f6081612f4a565b82525050565b6000602082019050612f7b6000830184612f57565b92915050565b600060208284031215612f9757612f96612c83565b5b6000612fa584828501612e33565b91505092915050565b612fb781612d13565b8114612fc257600080fd5b50565b600081359050612fd481612fae565b92915050565b60008060408385031215612ff157612ff0612c83565b5b6000612fff85828601612cd1565b925050602061301085828601612fc5565b9150509250929050565b6000602082840312156130305761302f612c83565b5b600061303e84828501612fc5565b91505092915050565b6000806000606084860312156130605761305f612c83565b5b600061306e86828701612e33565b935050602061307f86828701612e33565b925050604061309086828701612e33565b9150509250925092565b60006040820190506130af6000830185612ea3565b6130bc6020830184612f20565b9392505050565b600080604083850312156130da576130d9612c83565b5b60006130e885828601612cd1565b92505060206130f985828601612cd1565b9150509250929050565b7f43616c6c6572206973206e6f74206f776e657200000000000000000000000000600082015250565b6000613139601383612d62565b915061314482613103565b602082019050919050565b600060208201905081810360008301526131688161312c565b9050919050565b600081905092915050565b50565b600061318a60008361316f565b91506131958261317a565b600082019050919050565b60006131ab8261317d565b9150819050919050565b7f5a65726f20416464726573730000000000000000000000000000000000000000600082015250565b60006131eb600c83612d62565b91506131f6826131b5565b602082019050919050565b6000602082019050818103600083015261321a816131de565b9050919050565b7f4e6f7420416e20414d4d00000000000000000000000000000000000000000000600082015250565b6000613257600a83612d62565b915061326282613221565b602082019050919050565b600060208201905081810360008301526132868161324a565b9050919050565b60006040820190506132a26000830185612f20565b6132af6020830184612d1f565b9392505050565b6000815190506132c581612e1c565b92915050565b6000602082840312156132e1576132e0612c83565b5b60006132ef848285016132b6565b91505092915050565b600060408201905061330d6000830185612f20565b61331a6020830184612ea3565b9392505050565b60008151905061333081612fae565b92915050565b60006020828403121561334c5761334b612c83565b5b600061335a84828501613321565b91505092915050565b7f4661696c757265204f6e20546f6b656e20576974686472617700000000000000600082015250565b6000613399601983612d62565b91506133a482613363565b602082019050919050565b600060208201905081810360008301526133c88161338c565b9050919050565b7f416c726561647920416e20414d4d000000000000000000000000000000000000600082015250565b6000613405600e83612d62565b9150613410826133cf565b602082019050919050565b60006020820190508181036000830152613434816133f8565b9050919050565b7f4275792046656520546f6f204869676800000000000000000000000000000000600082015250565b6000613471601083612d62565b915061347c8261343b565b602082019050919050565b600060208201905081810360008301526134a081613464565b9050919050565b7f53656c6c2046656520546f6f2048696768000000000000000000000000000000600082015250565b60006134dd601183612d62565b91506134e8826134a7565b602082019050919050565b6000602082019050818103600083015261350c816134d0565b9050919050565b7f5472616e736665722046656520546f6f20486967680000000000000000000000600082015250565b6000613549601583612d62565b915061355482613513565b602082019050919050565b600060208201905081810360008301526135788161353c565b9050919050565b60006060820190506135946000830186612ea3565b6135a16020830185612ea3565b6135ae6040830184612ea3565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006135f082612e12565b91506135fb83612e12565b92508282101561360e5761360d6135b6565b5b828203905092915050565b7f5a65726f20526563697069656e74000000000000000000000000000000000000600082015250565b600061364f600e83612d62565b915061365a82613619565b602082019050919050565b6000602082019050818103600083015261367e81613642565b9050919050565b7f5a65726f20416d6f756e74000000000000000000000000000000000000000000600082015250565b60006136bb600b83612d62565b91506136c682613685565b602082019050919050565b600060208201905081810360008301526136ea816136ae565b9050919050565b7f496e73756666696369656e742042616c616e6365000000000000000000000000600082015250565b6000613727601483612d62565b9150613732826136f1565b602082019050919050565b600060208201905081810360008301526137568161371a565b9050919050565b600061376882612e12565b915061377383612e12565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156137ac576137ab6135b6565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006137f182612e12565b91506137fc83612e12565b92508261380c5761380b6137b7565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613873602183612d62565b915061387e82613817565b604082019050919050565b600060208201905081810360008301526138a281613866565b9050919050565b60006138b482612e12565b91506138bf83612e12565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156138f4576138f36135b6565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613935601b83612d62565b9150613940826138ff565b602082019050919050565b6000602082019050818103600083015261396481613928565b905091905056fea2646970667358221220f141c03a30213edb2534cb9e598c0551947389f0bb85f801a790a5a763af9a9f64736f6c634300080e0033
Deployed Bytecode
0x6080604052600436106101f25760003560e01c806367ffa8281161010d578063a6f9dae1116100a0578063b94e8df21161006f578063b94e8df21461070d578063cec10c1114610736578063d7ad21ac1461075f578063dd62ed3e1461079d578063f89532a2146107da576101f9565b8063a6f9dae114610653578063a9059cbb1461067c578063ac4dcb76146106b9578063acb2ad6f146106e2576101f9565b80638ebfc796116100dc5780638ebfc796146105a957806392a39d91146105d257806395d89b41146105fd5780639a44b9e314610628576101f9565b806367ffa828146104db57806370a082311461050457806379cc679014610541578063893d20e81461057e576101f9565b80632b14ca561161018557806342966c681161015457806342966c6814610421578063470624021461045e57806351cff8d91461048957806365fe050e146104b2576101f9565b80632b14ca5614610377578063304561bb146103a2578063313ce567146103cd5780633eb193e2146103f8576101f9565b806318160ddd116101c157806318160ddd146102cf5780631d111d13146102fa57806323b872dd146103115780632ac7b8241461034e576101f9565b806301e88208146101fe57806306fdde031461023c578063095ea7b31461026757806315e17e4b146102a4576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b5061022560048036038101906102209190612ce6565b610805565b604051610233929190612d2e565b60405180910390f35b34801561024857600080fd5b50610251610843565b60405161025e9190612df0565b60405180910390f35b34801561027357600080fd5b5061028e60048036038101906102899190612e48565b610880565b60405161029b9190612e88565b60405180910390f35b3480156102b057600080fd5b506102b9610972565b6040516102c69190612e88565b60405180910390f35b3480156102db57600080fd5b506102e4610985565b6040516102f19190612eb2565b60405180910390f35b34801561030657600080fd5b5061030f61098f565b005b34801561031d57600080fd5b5061033860048036038101906103339190612ecd565b610a96565b6040516103459190612e88565b60405180910390f35b34801561035a57600080fd5b5061037560048036038101906103709190612ce6565b610bf2565b005b34801561038357600080fd5b5061038c610e16565b6040516103999190612eb2565b60405180910390f35b3480156103ae57600080fd5b506103b7610e1c565b6040516103c49190612f2f565b60405180910390f35b3480156103d957600080fd5b506103e2610e42565b6040516103ef9190612f66565b60405180910390f35b34801561040457600080fd5b5061041f600480360381019061041a9190612ce6565b610e4b565b005b34801561042d57600080fd5b5061044860048036038101906104439190612f81565b61101e565b6040516104559190612e88565b60405180910390f35b34801561046a57600080fd5b50610473611031565b6040516104809190612eb2565b60405180910390f35b34801561049557600080fd5b506104b060048036038101906104ab9190612ce6565b611037565b005b3480156104be57600080fd5b506104d960048036038101906104d49190612ce6565b611273565b005b3480156104e757600080fd5b5061050260048036038101906104fd9190612ce6565b611498565b005b34801561051057600080fd5b5061052b60048036038101906105269190612ce6565b61166b565b6040516105389190612eb2565b60405180910390f35b34801561054d57600080fd5b5061056860048036038101906105639190612e48565b6116b4565b6040516105759190612e88565b60405180910390f35b34801561058a57600080fd5b5061059361180e565b6040516105a09190612f2f565b60405180910390f35b3480156105b557600080fd5b506105d060048036038101906105cb9190612fda565b611837565b005b3480156105de57600080fd5b506105e76119cb565b6040516105f49190612f2f565b60405180910390f35b34801561060957600080fd5b506106126119f1565b60405161061f9190612df0565b60405180910390f35b34801561063457600080fd5b5061063d611a2e565b60405161064a9190612f2f565b60405180910390f35b34801561065f57600080fd5b5061067a60048036038101906106759190612ce6565b611a54565b005b34801561068857600080fd5b506106a3600480360381019061069e9190612e48565b611b9f565b6040516106b09190612e88565b60405180910390f35b3480156106c557600080fd5b506106e060048036038101906106db9190612ce6565b611bb4565b005b3480156106ee57600080fd5b506106f7611d87565b6040516107049190612eb2565b60405180910390f35b34801561071957600080fd5b50610734600480360381019061072f919061301a565b611d8d565b005b34801561074257600080fd5b5061075d60048036038101906107589190613047565b611e38565b005b34801561076b57600080fd5b5061078660048036038101906107819190612ecd565b611fea565b60405161079492919061309a565b60405180910390f35b3480156107a957600080fd5b506107c460048036038101906107bf91906130c3565b61224a565b6040516107d19190612eb2565b60405180910390f35b3480156107e657600080fd5b506107ef6122d1565b6040516107fc9190612eb2565b60405180910390f35b60076020528060005260406000206000915090508060000160009054906101000a900460ff16908060000160019054906101000a900460ff16905082565b60606040518060400160405280600a81526020017f4d657461204d696e657200000000000000000000000000000000000000000000815250905090565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109609190612eb2565b60405180910390a36001905092915050565b600a60149054906101000a900460ff1681565b6000600154905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a149061314f565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051610a43906131a0565b60006040518083038185875af1925050503d8060008114610a80576040519150601f19603f3d011682016040523d82523d6000602084013e610a85565b606091505b5050905080610a9357600080fd5b50565b6000610b5e826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122d79092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610be984848461233b565b90509392505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c779061314f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610cef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce690613201565b60405180910390fd5b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160019054906101000a900460ff16610d7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d759061326d565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160016101000a81548160ff0219169083151502179055507fc61655276240ba149963bf00ed68118036aceb86661c8530fc627aeb83d9d1f2816000604051610e0b92919061328d565b60405180910390a150565b60055481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006012905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ed9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed09061314f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3f90613201565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055507fc1705819a90a4e9c9fba1872573191b370b8778cd644e0050b90c99b3c0762a9816040516110139190612f2f565b60405180910390a150565b600061102a3383612828565b9050919050565b60045481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bc9061314f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611134576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112b90613201565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161118c9190612f2f565b602060405180830381865afa1580156111a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cd91906132cb565b6040518363ffffffff1660e01b81526004016111ea9291906132f8565b6020604051808303816000875af1158015611209573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122d9190613336565b90508061126f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611266906133af565b60405180910390fd5b5050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611301576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f89061314f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611370576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136790613201565b60405180910390fd5b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160019054906101000a900460ff1615611400576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f79061341b565b60405180910390fd5b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160016101000a81548160ff0219169083151502179055507fc61655276240ba149963bf00ed68118036aceb86661c8530fc627aeb83d9d1f281600160405161148d92919061328d565b60405180910390a150565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151d9061314f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611595576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158c90613201565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055507fffba9995ed8a822e426a175c6a29db4e239f0788c470ba2588c6bb3cc486a449816040516116609190612f2f565b60405180910390a150565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600061177c826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122d79092919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118068383612828565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bc9061314f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192b90613201565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055507f2293b760d6615c0f087e78599ce64d67197a7dba78cdd9e241f3cd23b46101f382826040516119bf92919061328d565b60405180910390a15050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600581526020017f4d494e4552000000000000000000000000000000000000000000000000000000815250905090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611ae2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad99061314f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a73560405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611bac33848461233b565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c399061314f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611cb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca890613201565b60405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055507f78dd3f4c755a9774505b9155386a8765af9250233430ebf8ad314a8a76e43c6b81604051611d7c9190612f2f565b60405180910390a150565b60065481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e129061314f565b60405180910390fd5b80600a60146101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611ec6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebd9061314f565b60405180910390fd5b6109c4831115611f0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0290613487565b60405180910390fd5b6109c4821115611f50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f47906134f3565b60405180910390fd5b6109c4811115611f95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8c9061355f565b60405180910390fd5b8260048190555081600581905550806006819055507f37322890d66d781059d797be5e2f27dc160a34d8bc0a8e09116cb9a773ce88ef838383604051611fdd9392919061357f565b60405180910390a1505050565b600080600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16806120945750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff165b156120a55760008091509150612242565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160019054906101000a900460ff166121f057600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160019054906101000a900460ff1661219e5761217661271061216860065486612ab490919063ffffffff16565b612b2e90919063ffffffff16565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121eb565b6121c76127106121b960055486612ab490919063ffffffff16565b612b2e90919063ffffffff16565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b61223d565b61221961271061220b60045486612ab490919063ffffffff16565b612b2e90919063ffffffff16565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b915091505b935093915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61271081565b600083831115829061231f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123169190612df0565b60405180910390fd5b506000838561232e91906135e5565b9050809150509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036123ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a290613665565b60405180910390fd5b600082116123ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e5906136d1565b60405180910390fd5b6123f78461166b565b821115612439576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124309061373d565b60405180910390fd5b6124c2826040518060400160405280601181526020017f42616c616e636520556e646572666c6f77000000000000000000000000000000815250600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122d79092919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600080612513868686611fea565b9150915060008211156127095760008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461255b578161255d565b305b90506125b183600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b7890919063ffffffff16565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516126519190612eb2565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156126a15750600a60149054906101000a900460ff165b15612707578073ffffffffffffffffffffffffffffffffffffffff16637fec8d386040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156126ee57600080fd5b505af1158015612702573d6000803e3d6000fd5b505050505b505b600061271e8386612bd690919063ffffffff16565b905061277281600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b7890919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516128129190612eb2565b60405180910390a3600193505050509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288f90613201565b60405180910390fd5b600082116128db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128d2906136d1565b60405180910390fd5b6128e48361166b565b821115612926576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291d9061373d565b60405180910390fd5b6129af826040518060400160405280601181526020017f42616c616e636520556e646572666c6f77000000000000000000000000000000815250600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122d79092919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a3e826040518060400160405280601081526020017f537570706c7920556e646572666c6f77000000000000000000000000000000008152506001546122d79092919063ffffffff16565b600181905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612aa29190612eb2565b60405180910390a36001905092915050565b6000808303612ac65760009050612b28565b60008284612ad4919061375d565b9050828482612ae391906137e6565b14612b23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b1a90613889565b60405180910390fd5b809150505b92915050565b6000612b7083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612c20565b905092915050565b6000808284612b8791906138a9565b905083811015612bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bc39061394b565b60405180910390fd5b8091505092915050565b6000612c1883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122d7565b905092915050565b60008083118290612c67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c5e9190612df0565b60405180910390fd5b5060008385612c7691906137e6565b9050809150509392505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612cb382612c88565b9050919050565b612cc381612ca8565b8114612cce57600080fd5b50565b600081359050612ce081612cba565b92915050565b600060208284031215612cfc57612cfb612c83565b5b6000612d0a84828501612cd1565b91505092915050565b60008115159050919050565b612d2881612d13565b82525050565b6000604082019050612d436000830185612d1f565b612d506020830184612d1f565b9392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d91578082015181840152602081019050612d76565b83811115612da0576000848401525b50505050565b6000601f19601f8301169050919050565b6000612dc282612d57565b612dcc8185612d62565b9350612ddc818560208601612d73565b612de581612da6565b840191505092915050565b60006020820190508181036000830152612e0a8184612db7565b905092915050565b6000819050919050565b612e2581612e12565b8114612e3057600080fd5b50565b600081359050612e4281612e1c565b92915050565b60008060408385031215612e5f57612e5e612c83565b5b6000612e6d85828601612cd1565b9250506020612e7e85828601612e33565b9150509250929050565b6000602082019050612e9d6000830184612d1f565b92915050565b612eac81612e12565b82525050565b6000602082019050612ec76000830184612ea3565b92915050565b600080600060608486031215612ee657612ee5612c83565b5b6000612ef486828701612cd1565b9350506020612f0586828701612cd1565b9250506040612f1686828701612e33565b9150509250925092565b612f2981612ca8565b82525050565b6000602082019050612f446000830184612f20565b92915050565b600060ff82169050919050565b612f6081612f4a565b82525050565b6000602082019050612f7b6000830184612f57565b92915050565b600060208284031215612f9757612f96612c83565b5b6000612fa584828501612e33565b91505092915050565b612fb781612d13565b8114612fc257600080fd5b50565b600081359050612fd481612fae565b92915050565b60008060408385031215612ff157612ff0612c83565b5b6000612fff85828601612cd1565b925050602061301085828601612fc5565b9150509250929050565b6000602082840312156130305761302f612c83565b5b600061303e84828501612fc5565b91505092915050565b6000806000606084860312156130605761305f612c83565b5b600061306e86828701612e33565b935050602061307f86828701612e33565b925050604061309086828701612e33565b9150509250925092565b60006040820190506130af6000830185612ea3565b6130bc6020830184612f20565b9392505050565b600080604083850312156130da576130d9612c83565b5b60006130e885828601612cd1565b92505060206130f985828601612cd1565b9150509250929050565b7f43616c6c6572206973206e6f74206f776e657200000000000000000000000000600082015250565b6000613139601383612d62565b915061314482613103565b602082019050919050565b600060208201905081810360008301526131688161312c565b9050919050565b600081905092915050565b50565b600061318a60008361316f565b91506131958261317a565b600082019050919050565b60006131ab8261317d565b9150819050919050565b7f5a65726f20416464726573730000000000000000000000000000000000000000600082015250565b60006131eb600c83612d62565b91506131f6826131b5565b602082019050919050565b6000602082019050818103600083015261321a816131de565b9050919050565b7f4e6f7420416e20414d4d00000000000000000000000000000000000000000000600082015250565b6000613257600a83612d62565b915061326282613221565b602082019050919050565b600060208201905081810360008301526132868161324a565b9050919050565b60006040820190506132a26000830185612f20565b6132af6020830184612d1f565b9392505050565b6000815190506132c581612e1c565b92915050565b6000602082840312156132e1576132e0612c83565b5b60006132ef848285016132b6565b91505092915050565b600060408201905061330d6000830185612f20565b61331a6020830184612ea3565b9392505050565b60008151905061333081612fae565b92915050565b60006020828403121561334c5761334b612c83565b5b600061335a84828501613321565b91505092915050565b7f4661696c757265204f6e20546f6b656e20576974686472617700000000000000600082015250565b6000613399601983612d62565b91506133a482613363565b602082019050919050565b600060208201905081810360008301526133c88161338c565b9050919050565b7f416c726561647920416e20414d4d000000000000000000000000000000000000600082015250565b6000613405600e83612d62565b9150613410826133cf565b602082019050919050565b60006020820190508181036000830152613434816133f8565b9050919050565b7f4275792046656520546f6f204869676800000000000000000000000000000000600082015250565b6000613471601083612d62565b915061347c8261343b565b602082019050919050565b600060208201905081810360008301526134a081613464565b9050919050565b7f53656c6c2046656520546f6f2048696768000000000000000000000000000000600082015250565b60006134dd601183612d62565b91506134e8826134a7565b602082019050919050565b6000602082019050818103600083015261350c816134d0565b9050919050565b7f5472616e736665722046656520546f6f20486967680000000000000000000000600082015250565b6000613549601583612d62565b915061355482613513565b602082019050919050565b600060208201905081810360008301526135788161353c565b9050919050565b60006060820190506135946000830186612ea3565b6135a16020830185612ea3565b6135ae6040830184612ea3565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006135f082612e12565b91506135fb83612e12565b92508282101561360e5761360d6135b6565b5b828203905092915050565b7f5a65726f20526563697069656e74000000000000000000000000000000000000600082015250565b600061364f600e83612d62565b915061365a82613619565b602082019050919050565b6000602082019050818103600083015261367e81613642565b9050919050565b7f5a65726f20416d6f756e74000000000000000000000000000000000000000000600082015250565b60006136bb600b83612d62565b91506136c682613685565b602082019050919050565b600060208201905081810360008301526136ea816136ae565b9050919050565b7f496e73756666696369656e742042616c616e6365000000000000000000000000600082015250565b6000613727601483612d62565b9150613732826136f1565b602082019050919050565b600060208201905081810360008301526137568161371a565b9050919050565b600061376882612e12565b915061377383612e12565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156137ac576137ab6135b6565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006137f182612e12565b91506137fc83612e12565b92508261380c5761380b6137b7565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613873602183612d62565b915061387e82613817565b604082019050919050565b600060208201905081810360008301526138a281613866565b9050919050565b60006138b482612e12565b91506138bf83612e12565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156138f4576138f36135b6565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613935601b83612d62565b9150613940826138ff565b602082019050919050565b6000602082019050818103600083015261396481613928565b905091905056fea2646970667358221220f141c03a30213edb2534cb9e598c0551947389f0bb85f801a790a5a763af9a9f64736f6c634300080e0033
Deployed Bytecode Sourcemap
309:9084:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1110:53;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;2532:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2836:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1336:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2182:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5590:152;;;;;;;;;;;;;:::i;:::-;;3284:286;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7044:321;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;856:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1270:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2736:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6159:268;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3578:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;809:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5323:259;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6714:322;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6435:271;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2276:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3691:239;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1444:83:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7914:242:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1195:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2632:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1233:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1218:132:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3090:156:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5868:283;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;903:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5750:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7373:533;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8164:588;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;2387:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;949:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1110:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2532:92::-;2578:13;2611:5;;;;;;;;;;;;;;;;;2604:12;;2532:92;:::o;2836:216::-;2911:4;2963:6;2928:11;:23;2940:10;2928:23;;;;;;;;;;;;;;;:32;2952:7;2928:32;;;;;;;;;;;;;;;:41;;;;3006:7;2985:37;;2994:10;2985:37;;;3015:6;2985:37;;;;;;:::i;:::-;;;;;;;;3040:4;3033:11;;2836:216;;;;:::o;1336:36::-;;;;;;;;;;;;;:::o;2182:88::-;2237:7;2255:12;;2248:19;;2182:88;:::o;5590:152::-;825:5:2;;;;;;;;;;811:19;;:10;:19;;;803:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;5644:6:1::1;5663:10;5655:24;;5687:21;5655:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5643:70;;;5732:1;5724:10;;;::::0;::::1;;5632:110;5590:152::o:0;3284:286::-;3384:4;3435:69;3471:6;3435:69;;;;;;;;;;;;;;;;;:11;:19;3447:6;3435:19;;;;;;;;;;;;;;;:31;3455:10;3435:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;3401:11;:19;3413:6;3401:19;;;;;;;;;;;;;;;:31;3421:10;3401:31;;;;;;;;;;;;;;;:103;;;;3522:40;3536:6;3544:9;3555:6;3522:13;:40::i;:::-;3515:47;;3284:286;;;;;:::o;7044:321::-;825:5:2;;;;;;;;;;811:19;;:10;:19;;;803:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;7158:1:1::1;7139:21;;:7;:21;;::::0;7131:46:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;7196:11;:20;7208:7;7196:20;;;;;;;;;;;;;;;:36;;;;;;;;;;;;7188:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;7297:5;7258:11;:20;7270:7;7258:20;;;;;;;;;;;;;;;:36;;;:44;;;;;;;;;;;;;;;;;;7318:39;7342:7;7351:5;7318:39;;;;;;;:::i;:::-;;;;;;;;7044:321:::0;:::o;856:40::-;;;;:::o;1270:35::-;;;;;;;;;;;;;:::o;2736:92::-;2786:5;620:2;2804:16;;2736:92;:::o;6159:268::-;825:5:2;;;;;;;;;;811:19;;:10;:19;;;803:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;6265:1:1::1;6244:23;;:9;:23;;::::0;6236:48:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6313:9;6295:15;;:27;;;;;;;;;;;;;;;;;;6370:4;6333:11;:22;6345:9;6333:22;;;;;;;;;;;;;;;:34;;;:41;;;;;;;;;;;;;;;;;;6390:29;6409:9;6390:29;;;;;;:::i;:::-;;;;;;;;6159:268:::0;:::o;3578:105::-;3626:4;3650:25;3656:10;3668:6;3650:5;:25::i;:::-;3643:32;;3578:105;;;:::o;809:40::-;;;;:::o;5323:259::-;825:5:2;;;;;;;;;;811:19;;:10;:19;;;803:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;5411:1:1::1;5394:19;;:5;:19;;::::0;5386:44:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;5441:6;5457:5;5450:22;;;5473:10;5492:5;5485:23;;;5517:4;5485:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5450:74;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5441:83;;5543:1;5535:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;5375:207;5323:259:::0;:::o;6714:322::-;825:5:2;;;;;;;;;;811:19;;:10;:19;;;803:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;6826:1:1::1;6807:21;;:7;:21;;::::0;6799:46:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6865:11;:20;6877:7;6865:20;;;;;;;;;;;;;;;:36;;;;;;;;;;;;6864:37;6856:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6970:4;6931:11;:20;6943:7;6931:20;;;;;;;;;;;;;;;:36;;;:43;;;;;;;;;;;;;;;;;;6990:38;7014:7;7023:4;6990:38;;;;;;;:::i;:::-;;;;;;;;6714:322:::0;:::o;6435:271::-;825:5:2;;;;;;;;;;811:19;;:10;:19;;;803:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;6542:1:1::1;6521:23;;:9;:23;;::::0;6513:48:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6591:9;6572:16;;:28;;;;;;;;;;;;;;;;;;6648:4;6611:11;:22;6623:9;6611:22;;;;;;;;;;;;;;;:34;;;:41;;;;;;;;;;;;;;;;;;6668:30;6688:9;6668:30;;;;;;:::i;:::-;;;;;;;;6435:271:::0;:::o;2276:105::-;2342:7;2360:9;:18;2370:7;2360:18;;;;;;;;;;;;;;;;2353:25;;2276:105;;;:::o;3691:239::-;3760:4;3812:70;3849:6;3812:70;;;;;;;;;;;;;;;;;:11;:20;3824:7;3812:20;;;;;;;;;;;;;;;:32;3833:10;3812:32;;;;;;;;;;;;;;;;:36;;:70;;;;;:::i;:::-;3777:11;:20;3789:7;3777:20;;;;;;;;;;;;;;;:32;3798:10;3777:32;;;;;;;;;;;;;;;:105;;;;3900:22;3906:7;3915:6;3900:5;:22::i;:::-;3893:29;;3691:239;;;;:::o;1444:83:2:-;1487:7;1514:5;;;;;;;;;;;1507:12;;1444:83;:::o;7914:242:1:-;825:5:2;;;;;;;;;;811:19;;:10;:19;;;803:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;8025:1:1::1;8006:21;;:7;:21;;::::0;7998:46:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;8090:8;8055:11;:20;8067:7;8055:20;;;;;;;;;;;;;;;:32;;;:43;;;;;;;;;;;;;;;;;;8114:34;8130:7;8139:8;8114:34;;;;;;;:::i;:::-;;;;;;;;7914:242:::0;;:::o;1195:31::-;;;;;;;;;;;;;:::o;2632:96::-;2680:13;2713:7;;;;;;;;;;;;;;;;;2706:14;;2632:96;:::o;1233:30::-;;;;;;;;;;;;;:::o;1218:132:2:-;825:5;;;;;;;;;;811:19;;:10;:19;;;803:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;1306:8:::1;1290:25;;1299:5;::::0;::::1;;;;;;;;1290:25;;;;;;;;;;;;1334:8;1326:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;1218:132:::0;:::o;3090:156:1:-;3170:4;3194:44;3208:10;3220:9;3231:6;3194:13;:44::i;:::-;3187:51;;3090:156;;;;:::o;5868:283::-;825:5:2;;;;;;;;;;811:19;;:10;:19;;;803:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;5979:1:1::1;5958:23;;:9;:23;;::::0;5950:48:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6032:9;6009:20;;:32;;;;;;;;;;;;;;;;;;6089:4;6052:11;:22;6064:9;6052:22;;;;;;;;;;;;;;;:34;;;:41;;;;;;;;;;;;;;;;;;6109:34;6133:9;6109:34;;;;;;:::i;:::-;;;;;;;;5868:283:::0;:::o;903:39::-;;;;:::o;5750:110::-;825:5:2;;;;;;;;;;811:19;;:10;:19;;;803:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;5841:11:1::1;5822:16;;:30;;;;;;;;;;;;;;;;;;5750:110:::0;:::o;7373:533::-;825:5:2;;;;;;;;;;811:19;;:10;:19;;;803:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;7501:4:1::1;7490:7;:15;;7468:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;7594:4;7582:8;:16;;7560:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;7692:4;7676:12;:20;;7654:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;7767:7;7758:6;:16;;;;7795:8;7785:7;:18;;;;7828:12;7814:11;:26;;;;7858:40;7866:7;7875:8;7885:12;7858:40;;;;;;;;:::i;:::-;;;;;;;;7373:533:::0;;;:::o;8164:588::-;8252:7;8261;8286:11;:19;8298:6;8286:19;;;;;;;;;;;;;;;:31;;;;;;;;;;;;:69;;;;8321:11;:22;8333:9;8321:22;;;;;;;;;;;;;;;:34;;;;;;;;;;;;8286:69;8281:126;;;8381:1;8392;8373:22;;;;;;8281:126;8424:11;:19;8436:6;8424:19;;;;;;;;;;;;;;;:35;;;;;;;;;;;;:320;;8551:11;:22;8563:9;8551:22;;;;;;;;;;;;;;;:38;;;;;;;;;;;;:193;;8683:38;985:5;8683:23;8694:11;;8683:6;:10;;:23;;;;:::i;:::-;:27;;:38;;;;:::i;:::-;8723:20;;;;;;;;;;;8551:193;;;8610:34;985:5;8610:19;8621:7;;8610:6;:10;;:19;;;;:::i;:::-;:23;;:34;;;;:::i;:::-;8646:16;;;;;;;;;;;8551:193;8424:320;;;8480:33;985:5;8480:18;8491:6;;8480;:10;;:18;;;;:::i;:::-;:22;;:33;;;;:::i;:::-;8515:15;;;;;;;;;;;8424:320;8417:327;;;;8164:588;;;;;;;:::o;2387:133::-;2471:7;2489:11;:19;2501:6;2489:19;;;;;;;;;;;;;;;:28;2509:7;2489:28;;;;;;;;;;;;;;;;2482:35;;2387:133;;;;:::o;949:41::-;985:5;949:41;:::o;1225:192:3:-;1311:7;1344:1;1339;:6;;1347:12;1331:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1371:9;1387:1;1383;:5;;;;:::i;:::-;1371:17;;1408:1;1401:8;;;1225:192;;;;;:::o;3972:1343:1:-;4064:4;4124:1;4103:23;;:9;:23;;;4081:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;4210:1;4201:6;:10;4179:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4293:17;4303:6;4293:9;:17::i;:::-;4283:6;:27;;4261:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;4436:50;4458:6;4436:50;;;;;;;;;;;;;;;;;:9;:17;4446:6;4436:17;;;;;;;;;;;;;;;;:21;;:50;;;;;:::i;:::-;4416:9;:17;4426:6;4416:17;;;;;;;;;;;;;;;:70;;;;4532:11;4545:22;4571:33;4578:6;4586:9;4597:6;4571;:33::i;:::-;4531:73;;;;4666:1;4660:3;:7;4656:391;;;4684:20;4733:1;4707:28;;:14;:28;;;:61;;4754:14;4707:61;;;4746:4;4707:61;4684:84;;4809:32;4837:3;4809:9;:23;4819:12;4809:23;;;;;;;;;;;;;;;;:27;;:32;;;;:::i;:::-;4783:9;:23;4793:12;4783:23;;;;;;;;;;;;;;;:58;;;;4878:12;4861:35;;4870:6;4861:35;;;4892:3;4861:35;;;;;;:::i;:::-;;;;;;;;4941:4;4917:29;;:12;:29;;;;:49;;;;;4950:16;;;;;;;;;;;4917:49;4913:123;;;4997:12;4987:31;;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4913:123;4669:378;4656:391;5096:18;5117:15;5128:3;5117:6;:10;;:15;;;;:::i;:::-;5096:36;;5166;5191:10;5166:9;:20;5176:9;5166:20;;;;;;;;;;;;;;;;:24;;:36;;;;:::i;:::-;5143:9;:20;5153:9;5143:20;;;;;;;;;;;;;;;:59;;;;5263:9;5246:39;;5255:6;5246:39;;;5274:10;5246:39;;;;;;:::i;:::-;;;;;;;;5303:4;5296:11;;;;;3972:1343;;;;;:::o;8760:593::-;8826:4;8884:1;8865:21;;:7;:21;;;8843:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;8968:1;8959:6;:10;8937:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9051:18;9061:7;9051:9;:18::i;:::-;9041:6;:28;;9019:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;9149:51;9172:6;9149:51;;;;;;;;;;;;;;;;;:9;:18;9159:7;9149:18;;;;;;;;;;;;;;;;:22;;:51;;;;;:::i;:::-;9128:9;:18;9138:7;9128:18;;;;;;;;;;;;;;;:72;;;;9226:44;9243:6;9226:44;;;;;;;;;;;;;;;;;:12;;:16;;:44;;;;;:::i;:::-;9211:12;:59;;;;9312:1;9286:37;;9295:7;9286:37;;;9316:6;9286:37;;;;;;:::i;:::-;;;;;;;;9341:4;9334:11;;8760:593;;;;:::o;1676:471:3:-;1734:7;1984:1;1979;:6;1975:47;;2009:1;2002:8;;;;1975:47;2034:9;2050:1;2046;:5;;;;:::i;:::-;2034:17;;2079:1;2074;2070;:5;;;;:::i;:::-;:10;2062:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2138:1;2131:8;;;1676:471;;;;;:::o;2623:132::-;2681:7;2708:39;2712:1;2715;2708:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2701:46;;2623:132;;;;:::o;322:181::-;380:7;400:9;416:1;412;:5;;;;:::i;:::-;400:17;;441:1;436;:6;;428:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;494:1;487:8;;;322:181;;;;:::o;786:136::-;844:7;871:43;875:1;878;871:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;864:50;;786:136;;;;:::o;3251:278::-;3337:7;3369:1;3365;:5;3372:12;3357:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3396:9;3412:1;3408;:5;;;;:::i;:::-;3396:17;;3520:1;3513:8;;;3251:278;;;;;:::o;88:117:4:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:90::-;1210:7;1253:5;1246:13;1239:21;1228:32;;1176:90;;;:::o;1272:109::-;1353:21;1368:5;1353:21;:::i;:::-;1348:3;1341:34;1272:109;;:::o;1387:308::-;1496:4;1534:2;1523:9;1519:18;1511:26;;1547:65;1609:1;1598:9;1594:17;1585:6;1547:65;:::i;:::-;1622:66;1684:2;1673:9;1669:18;1660:6;1622:66;:::i;:::-;1387:308;;;;;:::o;1701:99::-;1753:6;1787:5;1781:12;1771:22;;1701:99;;;:::o;1806:169::-;1890:11;1924:6;1919:3;1912:19;1964:4;1959:3;1955:14;1940:29;;1806:169;;;;:::o;1981:307::-;2049:1;2059:113;2073:6;2070:1;2067:13;2059:113;;;2158:1;2153:3;2149:11;2143:18;2139:1;2134:3;2130:11;2123:39;2095:2;2092:1;2088:10;2083:15;;2059:113;;;2190:6;2187:1;2184:13;2181:101;;;2270:1;2261:6;2256:3;2252:16;2245:27;2181:101;2030:258;1981:307;;;:::o;2294:102::-;2335:6;2386:2;2382:7;2377:2;2370:5;2366:14;2362:28;2352:38;;2294:102;;;:::o;2402:364::-;2490:3;2518:39;2551:5;2518:39;:::i;:::-;2573:71;2637:6;2632:3;2573:71;:::i;:::-;2566:78;;2653:52;2698:6;2693:3;2686:4;2679:5;2675:16;2653:52;:::i;:::-;2730:29;2752:6;2730:29;:::i;:::-;2725:3;2721:39;2714:46;;2494:272;2402:364;;;;:::o;2772:313::-;2885:4;2923:2;2912:9;2908:18;2900:26;;2972:9;2966:4;2962:20;2958:1;2947:9;2943:17;2936:47;3000:78;3073:4;3064:6;3000:78;:::i;:::-;2992:86;;2772:313;;;;:::o;3091:77::-;3128:7;3157:5;3146:16;;3091:77;;;:::o;3174:122::-;3247:24;3265:5;3247:24;:::i;:::-;3240:5;3237:35;3227:63;;3286:1;3283;3276:12;3227:63;3174:122;:::o;3302:139::-;3348:5;3386:6;3373:20;3364:29;;3402:33;3429:5;3402:33;:::i;:::-;3302:139;;;;:::o;3447:474::-;3515:6;3523;3572:2;3560:9;3551:7;3547:23;3543:32;3540:119;;;3578:79;;:::i;:::-;3540:119;3698:1;3723:53;3768:7;3759:6;3748:9;3744:22;3723:53;:::i;:::-;3713:63;;3669:117;3825:2;3851:53;3896:7;3887:6;3876:9;3872:22;3851:53;:::i;:::-;3841:63;;3796:118;3447:474;;;;;:::o;3927:210::-;4014:4;4052:2;4041:9;4037:18;4029:26;;4065:65;4127:1;4116:9;4112:17;4103:6;4065:65;:::i;:::-;3927:210;;;;:::o;4143:118::-;4230:24;4248:5;4230:24;:::i;:::-;4225:3;4218:37;4143:118;;:::o;4267:222::-;4360:4;4398:2;4387:9;4383:18;4375:26;;4411:71;4479:1;4468:9;4464:17;4455:6;4411:71;:::i;:::-;4267:222;;;;:::o;4495:619::-;4572:6;4580;4588;4637:2;4625:9;4616:7;4612:23;4608:32;4605:119;;;4643:79;;:::i;:::-;4605:119;4763:1;4788:53;4833:7;4824:6;4813:9;4809:22;4788:53;:::i;:::-;4778:63;;4734:117;4890:2;4916:53;4961:7;4952:6;4941:9;4937:22;4916:53;:::i;:::-;4906:63;;4861:118;5018:2;5044:53;5089:7;5080:6;5069:9;5065:22;5044:53;:::i;:::-;5034:63;;4989:118;4495:619;;;;;:::o;5120:118::-;5207:24;5225:5;5207:24;:::i;:::-;5202:3;5195:37;5120:118;;:::o;5244:222::-;5337:4;5375:2;5364:9;5360:18;5352:26;;5388:71;5456:1;5445:9;5441:17;5432:6;5388:71;:::i;:::-;5244:222;;;;:::o;5472:86::-;5507:7;5547:4;5540:5;5536:16;5525:27;;5472:86;;;:::o;5564:112::-;5647:22;5663:5;5647:22;:::i;:::-;5642:3;5635:35;5564:112;;:::o;5682:214::-;5771:4;5809:2;5798:9;5794:18;5786:26;;5822:67;5886:1;5875:9;5871:17;5862:6;5822:67;:::i;:::-;5682:214;;;;:::o;5902:329::-;5961:6;6010:2;5998:9;5989:7;5985:23;5981:32;5978:119;;;6016:79;;:::i;:::-;5978:119;6136:1;6161:53;6206:7;6197:6;6186:9;6182:22;6161:53;:::i;:::-;6151:63;;6107:117;5902:329;;;;:::o;6237:116::-;6307:21;6322:5;6307:21;:::i;:::-;6300:5;6297:32;6287:60;;6343:1;6340;6333:12;6287:60;6237:116;:::o;6359:133::-;6402:5;6440:6;6427:20;6418:29;;6456:30;6480:5;6456:30;:::i;:::-;6359:133;;;;:::o;6498:468::-;6563:6;6571;6620:2;6608:9;6599:7;6595:23;6591:32;6588:119;;;6626:79;;:::i;:::-;6588:119;6746:1;6771:53;6816:7;6807:6;6796:9;6792:22;6771:53;:::i;:::-;6761:63;;6717:117;6873:2;6899:50;6941:7;6932:6;6921:9;6917:22;6899:50;:::i;:::-;6889:60;;6844:115;6498:468;;;;;:::o;6972:323::-;7028:6;7077:2;7065:9;7056:7;7052:23;7048:32;7045:119;;;7083:79;;:::i;:::-;7045:119;7203:1;7228:50;7270:7;7261:6;7250:9;7246:22;7228:50;:::i;:::-;7218:60;;7174:114;6972:323;;;;:::o;7301:619::-;7378:6;7386;7394;7443:2;7431:9;7422:7;7418:23;7414:32;7411:119;;;7449:79;;:::i;:::-;7411:119;7569:1;7594:53;7639:7;7630:6;7619:9;7615:22;7594:53;:::i;:::-;7584:63;;7540:117;7696:2;7722:53;7767:7;7758:6;7747:9;7743:22;7722:53;:::i;:::-;7712:63;;7667:118;7824:2;7850:53;7895:7;7886:6;7875:9;7871:22;7850:53;:::i;:::-;7840:63;;7795:118;7301:619;;;;;:::o;7926:332::-;8047:4;8085:2;8074:9;8070:18;8062:26;;8098:71;8166:1;8155:9;8151:17;8142:6;8098:71;:::i;:::-;8179:72;8247:2;8236:9;8232:18;8223:6;8179:72;:::i;:::-;7926:332;;;;;:::o;8264:474::-;8332:6;8340;8389:2;8377:9;8368:7;8364:23;8360:32;8357:119;;;8395:79;;:::i;:::-;8357:119;8515:1;8540:53;8585:7;8576:6;8565:9;8561:22;8540:53;:::i;:::-;8530:63;;8486:117;8642:2;8668:53;8713:7;8704:6;8693:9;8689:22;8668:53;:::i;:::-;8658:63;;8613:118;8264:474;;;;;:::o;8744:169::-;8884:21;8880:1;8872:6;8868:14;8861:45;8744:169;:::o;8919:366::-;9061:3;9082:67;9146:2;9141:3;9082:67;:::i;:::-;9075:74;;9158:93;9247:3;9158:93;:::i;:::-;9276:2;9271:3;9267:12;9260:19;;8919:366;;;:::o;9291:419::-;9457:4;9495:2;9484:9;9480:18;9472:26;;9544:9;9538:4;9534:20;9530:1;9519:9;9515:17;9508:47;9572:131;9698:4;9572:131;:::i;:::-;9564:139;;9291:419;;;:::o;9716:147::-;9817:11;9854:3;9839:18;;9716:147;;;;:::o;9869:114::-;;:::o;9989:398::-;10148:3;10169:83;10250:1;10245:3;10169:83;:::i;:::-;10162:90;;10261:93;10350:3;10261:93;:::i;:::-;10379:1;10374:3;10370:11;10363:18;;9989:398;;;:::o;10393:379::-;10577:3;10599:147;10742:3;10599:147;:::i;:::-;10592:154;;10763:3;10756:10;;10393:379;;;:::o;10778:162::-;10918:14;10914:1;10906:6;10902:14;10895:38;10778:162;:::o;10946:366::-;11088:3;11109:67;11173:2;11168:3;11109:67;:::i;:::-;11102:74;;11185:93;11274:3;11185:93;:::i;:::-;11303:2;11298:3;11294:12;11287:19;;10946:366;;;:::o;11318:419::-;11484:4;11522:2;11511:9;11507:18;11499:26;;11571:9;11565:4;11561:20;11557:1;11546:9;11542:17;11535:47;11599:131;11725:4;11599:131;:::i;:::-;11591:139;;11318:419;;;:::o;11743:160::-;11883:12;11879:1;11871:6;11867:14;11860:36;11743:160;:::o;11909:366::-;12051:3;12072:67;12136:2;12131:3;12072:67;:::i;:::-;12065:74;;12148:93;12237:3;12148:93;:::i;:::-;12266:2;12261:3;12257:12;12250:19;;11909:366;;;:::o;12281:419::-;12447:4;12485:2;12474:9;12470:18;12462:26;;12534:9;12528:4;12524:20;12520:1;12509:9;12505:17;12498:47;12562:131;12688:4;12562:131;:::i;:::-;12554:139;;12281:419;;;:::o;12706:320::-;12821:4;12859:2;12848:9;12844:18;12836:26;;12872:71;12940:1;12929:9;12925:17;12916:6;12872:71;:::i;:::-;12953:66;13015:2;13004:9;13000:18;12991:6;12953:66;:::i;:::-;12706:320;;;;;:::o;13032:143::-;13089:5;13120:6;13114:13;13105:22;;13136:33;13163:5;13136:33;:::i;:::-;13032:143;;;;:::o;13181:351::-;13251:6;13300:2;13288:9;13279:7;13275:23;13271:32;13268:119;;;13306:79;;:::i;:::-;13268:119;13426:1;13451:64;13507:7;13498:6;13487:9;13483:22;13451:64;:::i;:::-;13441:74;;13397:128;13181:351;;;;:::o;13538:332::-;13659:4;13697:2;13686:9;13682:18;13674:26;;13710:71;13778:1;13767:9;13763:17;13754:6;13710:71;:::i;:::-;13791:72;13859:2;13848:9;13844:18;13835:6;13791:72;:::i;:::-;13538:332;;;;;:::o;13876:137::-;13930:5;13961:6;13955:13;13946:22;;13977:30;14001:5;13977:30;:::i;:::-;13876:137;;;;:::o;14019:345::-;14086:6;14135:2;14123:9;14114:7;14110:23;14106:32;14103:119;;;14141:79;;:::i;:::-;14103:119;14261:1;14286:61;14339:7;14330:6;14319:9;14315:22;14286:61;:::i;:::-;14276:71;;14232:125;14019:345;;;;:::o;14370:175::-;14510:27;14506:1;14498:6;14494:14;14487:51;14370:175;:::o;14551:366::-;14693:3;14714:67;14778:2;14773:3;14714:67;:::i;:::-;14707:74;;14790:93;14879:3;14790:93;:::i;:::-;14908:2;14903:3;14899:12;14892:19;;14551:366;;;:::o;14923:419::-;15089:4;15127:2;15116:9;15112:18;15104:26;;15176:9;15170:4;15166:20;15162:1;15151:9;15147:17;15140:47;15204:131;15330:4;15204:131;:::i;:::-;15196:139;;14923:419;;;:::o;15348:164::-;15488:16;15484:1;15476:6;15472:14;15465:40;15348:164;:::o;15518:366::-;15660:3;15681:67;15745:2;15740:3;15681:67;:::i;:::-;15674:74;;15757:93;15846:3;15757:93;:::i;:::-;15875:2;15870:3;15866:12;15859:19;;15518:366;;;:::o;15890:419::-;16056:4;16094:2;16083:9;16079:18;16071:26;;16143:9;16137:4;16133:20;16129:1;16118:9;16114:17;16107:47;16171:131;16297:4;16171:131;:::i;:::-;16163:139;;15890:419;;;:::o;16315:166::-;16455:18;16451:1;16443:6;16439:14;16432:42;16315:166;:::o;16487:366::-;16629:3;16650:67;16714:2;16709:3;16650:67;:::i;:::-;16643:74;;16726:93;16815:3;16726:93;:::i;:::-;16844:2;16839:3;16835:12;16828:19;;16487:366;;;:::o;16859:419::-;17025:4;17063:2;17052:9;17048:18;17040:26;;17112:9;17106:4;17102:20;17098:1;17087:9;17083:17;17076:47;17140:131;17266:4;17140:131;:::i;:::-;17132:139;;16859:419;;;:::o;17284:167::-;17424:19;17420:1;17412:6;17408:14;17401:43;17284:167;:::o;17457:366::-;17599:3;17620:67;17684:2;17679:3;17620:67;:::i;:::-;17613:74;;17696:93;17785:3;17696:93;:::i;:::-;17814:2;17809:3;17805:12;17798:19;;17457:366;;;:::o;17829:419::-;17995:4;18033:2;18022:9;18018:18;18010:26;;18082:9;18076:4;18072:20;18068:1;18057:9;18053:17;18046:47;18110:131;18236:4;18110:131;:::i;:::-;18102:139;;17829:419;;;:::o;18254:171::-;18394:23;18390:1;18382:6;18378:14;18371:47;18254:171;:::o;18431:366::-;18573:3;18594:67;18658:2;18653:3;18594:67;:::i;:::-;18587:74;;18670:93;18759:3;18670:93;:::i;:::-;18788:2;18783:3;18779:12;18772:19;;18431:366;;;:::o;18803:419::-;18969:4;19007:2;18996:9;18992:18;18984:26;;19056:9;19050:4;19046:20;19042:1;19031:9;19027:17;19020:47;19084:131;19210:4;19084:131;:::i;:::-;19076:139;;18803:419;;;:::o;19228:442::-;19377:4;19415:2;19404:9;19400:18;19392:26;;19428:71;19496:1;19485:9;19481:17;19472:6;19428:71;:::i;:::-;19509:72;19577:2;19566:9;19562:18;19553:6;19509:72;:::i;:::-;19591;19659:2;19648:9;19644:18;19635:6;19591:72;:::i;:::-;19228:442;;;;;;:::o;19676:180::-;19724:77;19721:1;19714:88;19821:4;19818:1;19811:15;19845:4;19842:1;19835:15;19862:191;19902:4;19922:20;19940:1;19922:20;:::i;:::-;19917:25;;19956:20;19974:1;19956:20;:::i;:::-;19951:25;;19995:1;19992;19989:8;19986:34;;;20000:18;;:::i;:::-;19986:34;20045:1;20042;20038:9;20030:17;;19862:191;;;;:::o;20059:164::-;20199:16;20195:1;20187:6;20183:14;20176:40;20059:164;:::o;20229:366::-;20371:3;20392:67;20456:2;20451:3;20392:67;:::i;:::-;20385:74;;20468:93;20557:3;20468:93;:::i;:::-;20586:2;20581:3;20577:12;20570:19;;20229:366;;;:::o;20601:419::-;20767:4;20805:2;20794:9;20790:18;20782:26;;20854:9;20848:4;20844:20;20840:1;20829:9;20825:17;20818:47;20882:131;21008:4;20882:131;:::i;:::-;20874:139;;20601:419;;;:::o;21026:161::-;21166:13;21162:1;21154:6;21150:14;21143:37;21026:161;:::o;21193:366::-;21335:3;21356:67;21420:2;21415:3;21356:67;:::i;:::-;21349:74;;21432:93;21521:3;21432:93;:::i;:::-;21550:2;21545:3;21541:12;21534:19;;21193:366;;;:::o;21565:419::-;21731:4;21769:2;21758:9;21754:18;21746:26;;21818:9;21812:4;21808:20;21804:1;21793:9;21789:17;21782:47;21846:131;21972:4;21846:131;:::i;:::-;21838:139;;21565:419;;;:::o;21990:170::-;22130:22;22126:1;22118:6;22114:14;22107:46;21990:170;:::o;22166:366::-;22308:3;22329:67;22393:2;22388:3;22329:67;:::i;:::-;22322:74;;22405:93;22494:3;22405:93;:::i;:::-;22523:2;22518:3;22514:12;22507:19;;22166:366;;;:::o;22538:419::-;22704:4;22742:2;22731:9;22727:18;22719:26;;22791:9;22785:4;22781:20;22777:1;22766:9;22762:17;22755:47;22819:131;22945:4;22819:131;:::i;:::-;22811:139;;22538:419;;;:::o;22963:348::-;23003:7;23026:20;23044:1;23026:20;:::i;:::-;23021:25;;23060:20;23078:1;23060:20;:::i;:::-;23055:25;;23248:1;23180:66;23176:74;23173:1;23170:81;23165:1;23158:9;23151:17;23147:105;23144:131;;;23255:18;;:::i;:::-;23144:131;23303:1;23300;23296:9;23285:20;;22963:348;;;;:::o;23317:180::-;23365:77;23362:1;23355:88;23462:4;23459:1;23452:15;23486:4;23483:1;23476:15;23503:185;23543:1;23560:20;23578:1;23560:20;:::i;:::-;23555:25;;23594:20;23612:1;23594:20;:::i;:::-;23589:25;;23633:1;23623:35;;23638:18;;:::i;:::-;23623:35;23680:1;23677;23673:9;23668:14;;23503:185;;;;:::o;23694:220::-;23834:34;23830:1;23822:6;23818:14;23811:58;23903:3;23898:2;23890:6;23886:15;23879:28;23694:220;:::o;23920:366::-;24062:3;24083:67;24147:2;24142:3;24083:67;:::i;:::-;24076:74;;24159:93;24248:3;24159:93;:::i;:::-;24277:2;24272:3;24268:12;24261:19;;23920:366;;;:::o;24292:419::-;24458:4;24496:2;24485:9;24481:18;24473:26;;24545:9;24539:4;24535:20;24531:1;24520:9;24516:17;24509:47;24573:131;24699:4;24573:131;:::i;:::-;24565:139;;24292:419;;;:::o;24717:305::-;24757:3;24776:20;24794:1;24776:20;:::i;:::-;24771:25;;24810:20;24828:1;24810:20;:::i;:::-;24805:25;;24964:1;24896:66;24892:74;24889:1;24886:81;24883:107;;;24970:18;;:::i;:::-;24883:107;25014:1;25011;25007:9;25000:16;;24717:305;;;;:::o;25028:177::-;25168:29;25164:1;25156:6;25152:14;25145:53;25028:177;:::o;25211:366::-;25353:3;25374:67;25438:2;25433:3;25374:67;:::i;:::-;25367:74;;25450:93;25539:3;25450:93;:::i;:::-;25568:2;25563:3;25559:12;25552:19;;25211:366;;;:::o;25583:419::-;25749:4;25787:2;25776:9;25772:18;25764:26;;25836:9;25830:4;25826:20;25822:1;25811:9;25807:17;25800:47;25864:131;25990:4;25864:131;:::i;:::-;25856:139;;25583:419;;;:::o
Swarm Source
ipfs://f141c03a30213edb2534cb9e598c0551947389f0bb85f801a790a5a763af9a9f
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.