ERC-20
Overview
Max Total Supply
100,000,000 LEGS
Holders
142
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
LEGSToken
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-01-17 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } abstract contract Ownable is Context{ address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { _setOwner(_msgSender()); } 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 { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); 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 Context,IERC20 { mapping (address => uint256) internal _balances; mapping (address => mapping (address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; uint256 internal immutable _RELEASE_TIME_TEAM_TOKENS; uint256 internal immutable _RELEASE_TIME_COMPANY1_TOKENS; uint256 internal immutable _RELEASE_TIME_COMPANY2_TOKENS; address constant internal _ADDRESS_1 = 0x3a3E5fe09A28218E34d5b0Fd2562738853f567C3; address constant internal _ADDRESS_2 = 0x16d0865Ac2405e90fF4Aec7Fc6dd0200F9B2719c; address constant internal _ADDRESS_3 = 0x770211caaB03028A4C45E19c7C68bB2284ca628A; address constant internal _ADDRESS_4 = 0x89c7285fe5490a23C8bc32A99f99B984C53e0858; address constant internal _ADDRESS_5 = 0x598388f9a2730E4bEb5645aDb2E208f27c98831D; address constant internal _COMPANY_1 = 0x689df33f77EE4BAE8Aa4E48Ce366322C62cC3c31; address constant internal _COMPANY_2 = 0x42eef6f9c1134140e0c31FB60C231fCE9565E228; address constant internal _TEAM_1 = 0x19Afc08C5Aa632aD6fA5e157eD8e3ABCB53dE9e3; address constant internal _TEAM_2 = 0xd4548F12889e5B668acBe2AF8a84Bbd090FC2313; address constant internal _TEAM_3 = 0x8E5D186dF7632C1ed1191ddB83Ed0e761DA4059c; address constant internal _TEAM_4 = 0xF88971abaf47546E30F816Fcdb27c3b115250083; address constant internal _TEAM_5 = 0x0389C115CB588489394c6F6b57e99b851BCc77a5; address[] internal teams = [_TEAM_1,_TEAM_2,_TEAM_3,_TEAM_4,_TEAM_5]; constructor (string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; _RELEASE_TIME_COMPANY1_TOKENS = block.timestamp + 365 days; _RELEASE_TIME_COMPANY2_TOKENS = block.timestamp + 730 days; _RELEASE_TIME_TEAM_TOKENS = block.timestamp + 365 days; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } 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 spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, 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]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); 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; _initBalances(); } function _setBalance(address addr,uint256 amount) private { amount =amount * 10 ** decimals(); _balances[addr] = amount; emit Transfer(address(0), addr, amount); } function _initBalances() private{ _setBalance(_msgSender(), 15000000); _setBalance(_ADDRESS_1, 10000000); _setBalance(_ADDRESS_2, 10000000); _setBalance(_ADDRESS_3, 10000000); _setBalance(_ADDRESS_4, 10000000); _setBalance(_ADDRESS_5, 10000000); _setBalance(_COMPANY_1,10000000); _setBalance(_COMPANY_2,10000000); _setBalance(_TEAM_1,5250000); _setBalance(_TEAM_2,3000000); _setBalance(_TEAM_3,3000000); _setBalance(_TEAM_4,3000000); _setBalance(_TEAM_5,750000); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), 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 _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { } } abstract contract ERC20Burnable is Context,ERC20 { function burn(uint256 amount) public virtual { _burn(_msgSender(), amount); } function burnFrom(address account, uint256 amount) public virtual { uint256 currentAllowance = allowance(account, _msgSender()); require(currentAllowance >= amount, "ERC20: burn amount exceeds allowance"); unchecked { _approve(account, _msgSender(), currentAllowance - amount); } _burn(account, amount); } } abstract contract ERC20Snapshot is ERC20 { using Arrays for uint256[]; using Counters for Counters.Counter; struct Snapshots { uint256[] ids; uint256[] values; } mapping (address => Snapshots) private _accountBalanceSnapshots; Snapshots private _totalSupplySnapshots; Counters.Counter private _currentSnapshotId; event Snapshot(uint256 id); function _snapshot() internal virtual returns (uint256) { _currentSnapshotId.increment(); uint256 currentId =_getCurrentSnapshotId(); emit Snapshot(currentId); return currentId; } function _getCurrentSnapshotId() internal view virtual returns (uint256) { return _currentSnapshotId.current(); } function balanceOfAt(address account, uint256 snapshotId) public view virtual returns (uint256) { (bool snapshotted, uint256 value) = _valueAt(snapshotId, _accountBalanceSnapshots[account]); return snapshotted ? value : balanceOf(account); } function totalSupplyAt(uint256 snapshotId) public view virtual returns(uint256) { (bool snapshotted, uint256 value) = _valueAt(snapshotId, _totalSupplySnapshots); return snapshotted ? value : totalSupply(); } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual override { super._beforeTokenTransfer(from, to, amount); if (from == address(0)) { _updateAccountSnapshot(to); _updateTotalSupplySnapshot(); } else if (to == address(0)) { _updateAccountSnapshot(from); _updateTotalSupplySnapshot(); } else { _updateAccountSnapshot(from); _updateAccountSnapshot(to); } } function _valueAt(uint256 snapshotId, Snapshots storage snapshots) private view returns (bool, uint256) { require(snapshotId > 0, "ERC20Snapshot: id is 0"); require(snapshotId <= _currentSnapshotId.current(), "ERC20Snapshot: nonexistent id"); uint256 index = snapshots.ids.findUpperBound(snapshotId); if (index == snapshots.ids.length) { return (false, 0); } else { return (true, snapshots.values[index]); } } function _updateAccountSnapshot(address account) private { _updateSnapshot(_accountBalanceSnapshots[account], balanceOf(account)); } function _updateTotalSupplySnapshot() private { _updateSnapshot(_totalSupplySnapshots, totalSupply()); } function _updateSnapshot(Snapshots storage snapshots, uint256 currentValue) private { uint256 currentId = _getCurrentSnapshotId(); if (_lastSnapshotId(snapshots.ids) < currentId) { snapshots.ids.push(currentId); snapshots.values.push(currentValue); } } function _lastSnapshotId(uint256[] storage ids) private view returns (uint256) { if (ids.length == 0) { return 0; } else { return ids[ids.length - 1]; } } } contract LEGSToken is ERC20, ERC20Burnable, ERC20Snapshot, Ownable { constructor() ERC20("Coinlegs", "LEGS") { _mint(msg.sender, 100000000 * 10 ** decimals()); } function snapshot() public onlyOwner { _snapshot(); } function distributeTokens(address[] calldata addresses, uint256[] calldata values) external onlyOwner { require(addresses.length == values.length, "Invalid Parameters"); address sender = owner(); uint len = addresses.length; uint256 multiply = 10 ** decimals(); uint256 amount; uint256 senderBalance ; address recipient; for (uint i = 0; i < len; i++) { amount = values[i] * multiply; senderBalance = _balances[sender]; recipient = addresses[i]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } } function _beforeTokenTransfer(address from, address to, uint256 amount) internal override(ERC20, ERC20Snapshot) { bool locked=false; if(from == _COMPANY_1){ locked = block.timestamp < _RELEASE_TIME_COMPANY1_TOKENS; } else if(from == _COMPANY_2){ locked = block.timestamp < _RELEASE_TIME_COMPANY2_TOKENS; } else{ for (uint8 index = 0; index < teams.length; index++) { if(from == teams[index] ){ locked = block.timestamp < _RELEASE_TIME_TEAM_TOKENS; break; } } } require(locked == false, "Account Locked"); super._beforeTokenTransfer(from, to, amount); } } library Arrays { function findUpperBound(uint256[] storage array, uint256 element) internal view returns (uint256) { if (array.length == 0) { return 0; } uint256 low = 0; uint256 high = array.length; while (low < high) { uint256 mid = Math.average(low, high); if (array[mid] > element) { high = mid; } else { low = mid + 1; } } if (low > 0 && array[low - 1] == element) { return low - 1; } else { return low; } } } library Counters { struct Counter { uint256 _value; } function current(Counter storage counter) internal view returns (uint256) { return counter._value; } function increment(Counter storage counter) internal { unchecked { counter._value += 1; } } function decrement(Counter storage counter) internal { uint256 value = counter._value; require(value > 0, "Counter: decrement overflow"); unchecked { counter._value = value - 1; } } function reset(Counter storage counter) internal { counter._value = 0; } } library Math { function max(uint256 a, uint256 b) internal pure returns (uint256) { return a >= b ? a : b; } function min(uint256 a, uint256 b) internal pure returns (uint256) { return a < b ? a : b; } function average(uint256 a, uint256 b) internal pure returns (uint256) { return (a & b) + (a ^ b) / 2; } function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) { return a / b + (a % b == 0 ? 0 : 1); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Snapshot","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"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":"account","type":"address"},{"internalType":"uint256","name":"snapshotId","type":"uint256"}],"name":"balanceOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"distributeTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","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":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snapshot","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":[{"internalType":"uint256","name":"snapshotId","type":"uint256"}],"name":"totalSupplyAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60e06040526040518060a001604052807319afc08c5aa632ad6fa5e157ed8e3abcb53de9e373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173d4548f12889e5b668acbe2af8a84bbd090fc231373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001738e5d186df7632c1ed1191ddb83ed0e761da4059c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173f88971abaf47546e30f816fcdb27c3b11525008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001730389c115cb588489394c6f6b57e99b851bcc77a573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525060059060056200017d92919062000744565b503480156200018b57600080fd5b506040518060400160405280600881526020017f436f696e6c6567730000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4c45475300000000000000000000000000000000000000000000000000000000815250816003908051906020019062000210929190620007d3565b50806004908051906020019062000229929190620007d3565b506301e13380426200023c91906200090b565b60a081815250506303c26700426200025591906200090b565b60c081815250506301e13380426200026e91906200090b565b608081815250505050620002976200028b620002dd60201b60201c565b620002e560201b60201c565b620002d733620002ac620003ab60201b60201c565b600a620002ba9190620009c3565b6305f5e100620002cb919062000b00565b620003b460201b60201c565b62000c42565b600033905090565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000427576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200041e90620008bb565b60405180910390fd5b80600260008282546200043b91906200090b565b92505081905550620004526200045660201b60201c565b5050565b6200047a6200046a620002dd60201b60201c565b62e4e1c06200066860201b60201c565b620004a3733a3e5fe09a28218e34d5b0fd2562738853f567c3629896806200066860201b60201c565b620004cc7316d0865ac2405e90ff4aec7fc6dd0200f9b2719c629896806200066860201b60201c565b620004f573770211caab03028a4c45e19c7c68bb2284ca628a629896806200066860201b60201c565b6200051e7389c7285fe5490a23c8bc32a99f99b984c53e0858629896806200066860201b60201c565b6200054773598388f9a2730e4beb5645adb2e208f27c98831d629896806200066860201b60201c565b6200057073689df33f77ee4bae8aa4e48ce366322c62cc3c31629896806200066860201b60201c565b620005997342eef6f9c1134140e0c31fb60c231fce9565e228629896806200066860201b60201c565b620005c27319afc08c5aa632ad6fa5e157ed8e3abcb53de9e362501bd06200066860201b60201c565b620005eb73d4548f12889e5b668acbe2af8a84bbd090fc2313622dc6c06200066860201b60201c565b62000614738e5d186df7632c1ed1191ddb83ed0e761da4059c622dc6c06200066860201b60201c565b6200063d73f88971abaf47546e30f816fcdb27c3b115250083622dc6c06200066860201b60201c565b62000666730389c115cb588489394c6f6b57e99b851bcc77a5620b71b06200066860201b60201c565b565b62000678620003ab60201b60201c565b600a620006869190620009c3565b8162000693919062000b00565b9050806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620007389190620008dd565b60405180910390a35050565b828054828255906000526020600020908101928215620007c0579160200282015b82811115620007bf5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019062000765565b5b509050620007cf919062000864565b5090565b828054620007e19062000b78565b90600052602060002090601f01602090048101928262000805576000855562000851565b82601f106200082057805160ff191683800117855562000851565b8280016001018555821562000851579182015b828111156200085057825182559160200191906001019062000833565b5b50905062000860919062000864565b5090565b5b808211156200087f57600081600090555060010162000865565b5090565b600062000892601f83620008fa565b91506200089f8262000c19565b602082019050919050565b620008b58162000b61565b82525050565b60006020820190508181036000830152620008d68162000883565b9050919050565b6000602082019050620008f46000830184620008aa565b92915050565b600082825260208201905092915050565b6000620009188262000b61565b9150620009258362000b61565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200095d576200095c62000bae565b5b828201905092915050565b6000808291508390505b6001851115620009ba5780860481111562000992576200099162000bae565b5b6001851615620009a25780820291505b8081029050620009b28562000c0c565b945062000972565b94509492505050565b6000620009d08262000b61565b9150620009dd8362000b6b565b925062000a0c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a14565b905092915050565b60008262000a26576001905062000af9565b8162000a36576000905062000af9565b816001811462000a4f576002811462000a5a5762000a90565b600191505062000af9565b60ff84111562000a6f5762000a6e62000bae565b5b8360020a91508482111562000a895762000a8862000bae565b5b5062000af9565b5060208310610133831016604e8410600b841016171562000aca5782820a90508381111562000ac45762000ac362000bae565b5b62000af9565b62000ad9848484600162000968565b9250905081840481111562000af35762000af262000bae565b5b81810290505b9392505050565b600062000b0d8262000b61565b915062000b1a8362000b61565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000b565762000b5562000bae565b5b828202905092915050565b6000819050919050565b600060ff82169050919050565b6000600282049050600182168062000b9157607f821691505b6020821081141562000ba85762000ba762000bdd565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60805160a05160c051612d8462000c72600039600061180a01526000611798015260006118bc0152612d846000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c8063715018a6116100ad578063981b24d011610071578063981b24d01461031f578063a457c2d71461034f578063a9059cbb1461037f578063dd62ed3e146103af578063f2fde38b146103df5761012c565b8063715018a6146102b357806379cc6790146102bd5780638da5cb5b146102d957806395d89b41146102f75780639711715a146103155761012c565b806339509351116100f457806339509351146101eb57806342966c681461021b5780634bd09c2a146102375780634ee2cd7e1461025357806370a08231146102835761012c565b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017f57806323b872dd1461019d578063313ce567146101cd575b600080fd5b6101396103fb565b60405161014691906121d4565b60405180910390f35b61016960048036038101906101649190611e0b565b61048d565b60405161017691906121b9565b60405180910390f35b6101876104ab565b60405161019491906123f6565b60405180910390f35b6101b760048036038101906101b29190611db8565b6104b5565b6040516101c491906121b9565b60405180910390f35b6101d56105ad565b6040516101e29190612411565b60405180910390f35b61020560048036038101906102009190611e0b565b6105b6565b60405161021291906121b9565b60405180910390f35b61023560048036038101906102309190611ecc565b610662565b005b610251600480360381019061024c9190611e4b565b610676565b005b61026d60048036038101906102689190611e0b565b61096d565b60405161027a91906123f6565b60405180910390f35b61029d60048036038101906102989190611d4b565b6109dd565b6040516102aa91906123f6565b60405180910390f35b6102bb610a25565b005b6102d760048036038101906102d29190611e0b565b610aad565b005b6102e1610b28565b6040516102ee919061219e565b60405180910390f35b6102ff610b52565b60405161030c91906121d4565b60405180910390f35b61031d610be4565b005b61033960048036038101906103349190611ecc565b610c6b565b60405161034691906123f6565b60405180910390f35b61036960048036038101906103649190611e0b565b610c9c565b60405161037691906121b9565b60405180910390f35b61039960048036038101906103949190611e0b565b610d87565b6040516103a691906121b9565b60405180910390f35b6103c960048036038101906103c49190611d78565b610da5565b6040516103d691906123f6565b60405180910390f35b6103f960048036038101906103f49190611d4b565b610e2c565b005b60606003805461040a90612756565b80601f016020809104026020016040519081016040528092919081815260200182805461043690612756565b80156104835780601f1061045857610100808354040283529160200191610483565b820191906000526020600020905b81548152906001019060200180831161046657829003601f168201915b5050505050905090565b60006104a161049a610f24565b8484610f2c565b6001905092915050565b6000600254905090565b60006104c28484846110f7565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061050d610f24565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561058d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610584906122b6565b60405180910390fd5b6105a185610599610f24565b858403610f2c565b60019150509392505050565b60006012905090565b60006106586105c3610f24565b8484600160006105d1610f24565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106539190612448565b610f2c565b6001905092915050565b61067361066d610f24565b8261136d565b50565b61067e610f24565b73ffffffffffffffffffffffffffffffffffffffff1661069c610b28565b73ffffffffffffffffffffffffffffffffffffffff16146106f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e9906122d6565b60405180910390fd5b81819050848490501461073a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073190612396565b60405180910390fd5b6000610744610b28565b9050600085859050905060006107586105ad565b600a6107649190612522565b9050600080600080600090505b85811015610960578489898381811061078d5761078c612888565b5b9050602002013561079e9190612640565b93506000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205492508a8a828181106107f4576107f3612888565b5b90506020020160208101906108099190611d4b565b91508383101561084e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084590612296565b60405180910390fd5b8383036000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550836000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546108e19190612448565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161094591906123f6565b60405180910390a3808061095890612788565b915050610771565b5050505050505050505050565b60008060006109ba84600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611538565b91509150816109d1576109cc856109dd565b6109d3565b805b9250505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a2d610f24565b73ffffffffffffffffffffffffffffffffffffffff16610a4b610b28565b73ffffffffffffffffffffffffffffffffffffffff1614610aa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a98906122d6565b60405180910390fd5b610aab6000611630565b565b6000610ac083610abb610f24565b610da5565b905081811015610b05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afc906122f6565b60405180910390fd5b610b1983610b11610f24565b848403610f2c565b610b23838361136d565b505050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610b6190612756565b80601f0160208091040260200160405190810160405280929190818152602001828054610b8d90612756565b8015610bda5780601f10610baf57610100808354040283529160200191610bda565b820191906000526020600020905b815481529060010190602001808311610bbd57829003601f168201915b5050505050905090565b610bec610f24565b73ffffffffffffffffffffffffffffffffffffffff16610c0a610b28565b73ffffffffffffffffffffffffffffffffffffffff1614610c60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c57906122d6565b60405180910390fd5b610c686116f6565b50565b6000806000610c7b846007611538565b9150915081610c9157610c8c6104ab565b610c93565b805b92505050919050565b60008060016000610cab610f24565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5f906123d6565b60405180910390fd5b610d7c610d73610f24565b85858403610f2c565b600191505092915050565b6000610d9b610d94610f24565b84846110f7565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e34610f24565b73ffffffffffffffffffffffffffffffffffffffff16610e52610b28565b73ffffffffffffffffffffffffffffffffffffffff1614610ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9f906122d6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0f90612256565b60405180910390fd5b610f2181611630565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9390612376565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561100c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100390612276565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110ea91906123f6565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115e90612356565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ce90612216565b60405180910390fd5b6111e283838361174c565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125f90612296565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112fb9190612448565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161135f91906123f6565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d490612316565b60405180910390fd5b6113e98260008361174c565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561146f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146690612236565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546114c6919061269a565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161152b91906123f6565b60405180910390a3505050565b6000806000841161157e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611575906123b6565b60405180910390fd5b6115886009611952565b8411156115ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c1906121f6565b60405180910390fd5b60006115e2858560000161196090919063ffffffff16565b90508360000180549050811415611600576000809250925050611629565b600184600101828154811061161857611617612888565b5b906000526020600020015492509250505b9250929050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006117026009611a3a565b600061170c611a50565b90507f8030e83b04d87bef53480e26263266d6ca66863aa8506aca6f2559d18aa1cb678160405161173d91906123f6565b60405180910390a18091505090565b600073689df33f77ee4bae8aa4e48ce366322c62cc3c3173ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156117c0577f0000000000000000000000000000000000000000000000000000000000000000421090506118fa565b7342eef6f9c1134140e0c31fb60c231fce9565e22873ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611832577f0000000000000000000000000000000000000000000000000000000000000000421090506118f9565b60005b6005805490508160ff1610156118f75760058160ff168154811061185c5761185b612888565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614156118e4577f0000000000000000000000000000000000000000000000000000000000000000421091506118f7565b80806118ef906127d1565b915050611835565b505b5b6000151581151514611941576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193890612336565b60405180910390fd5b61194c848484611a61565b50505050565b600081600001549050919050565b600080838054905014156119775760009050611a34565b600080848054905090505b808210156119db5760006119968383611b1b565b9050848682815481106119ac576119ab612888565b5b906000526020600020015411156119c5578091506119d5565b6001816119d29190612448565b92505b50611982565b600082118015611a13575083856001846119f5919061269a565b81548110611a0657611a05612888565b5b9060005260206000200154145b15611a2e57600182611a25919061269a565b92505050611a34565b81925050505b92915050565b6001816000016000828254019250508190555050565b6000611a5c6009611952565b905090565b611a6c838383611b41565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ab757611aaa82611b46565b611ab2611b99565b611b16565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b0257611af583611b46565b611afd611b99565b611b15565b611b0b83611b46565b611b1482611b46565b5b5b505050565b60006002828418611b2c919061249e565b828416611b399190612448565b905092915050565b505050565b611b96600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611b91836109dd565b611bad565b50565b611bab6007611ba66104ab565b611bad565b565b6000611bb7611a50565b905080611bc684600001611c28565b1015611c235782600001819080600181540180825580915050600190039060005260206000200160009091909190915055826001018290806001815401808255809150506001900390600052602060002001600090919091909150555b505050565b60008082805490501415611c3f5760009050611c70565b8160018380549050611c51919061269a565b81548110611c6257611c61612888565b5b906000526020600020015490505b919050565b600081359050611c8481612d20565b92915050565b60008083601f840112611ca057611c9f6128bc565b5b8235905067ffffffffffffffff811115611cbd57611cbc6128b7565b5b602083019150836020820283011115611cd957611cd86128c1565b5b9250929050565b60008083601f840112611cf657611cf56128bc565b5b8235905067ffffffffffffffff811115611d1357611d126128b7565b5b602083019150836020820283011115611d2f57611d2e6128c1565b5b9250929050565b600081359050611d4581612d37565b92915050565b600060208284031215611d6157611d606128cb565b5b6000611d6f84828501611c75565b91505092915050565b60008060408385031215611d8f57611d8e6128cb565b5b6000611d9d85828601611c75565b9250506020611dae85828601611c75565b9150509250929050565b600080600060608486031215611dd157611dd06128cb565b5b6000611ddf86828701611c75565b9350506020611df086828701611c75565b9250506040611e0186828701611d36565b9150509250925092565b60008060408385031215611e2257611e216128cb565b5b6000611e3085828601611c75565b9250506020611e4185828601611d36565b9150509250929050565b60008060008060408587031215611e6557611e646128cb565b5b600085013567ffffffffffffffff811115611e8357611e826128c6565b5b611e8f87828801611c8a565b9450945050602085013567ffffffffffffffff811115611eb257611eb16128c6565b5b611ebe87828801611ce0565b925092505092959194509250565b600060208284031215611ee257611ee16128cb565b5b6000611ef084828501611d36565b91505092915050565b611f02816126ce565b82525050565b611f11816126e0565b82525050565b6000611f228261242c565b611f2c8185612437565b9350611f3c818560208601612723565b611f45816128d0565b840191505092915050565b6000611f5d601d83612437565b9150611f68826128ee565b602082019050919050565b6000611f80602383612437565b9150611f8b82612917565b604082019050919050565b6000611fa3602283612437565b9150611fae82612966565b604082019050919050565b6000611fc6602683612437565b9150611fd1826129b5565b604082019050919050565b6000611fe9602283612437565b9150611ff482612a04565b604082019050919050565b600061200c602683612437565b915061201782612a53565b604082019050919050565b600061202f602883612437565b915061203a82612aa2565b604082019050919050565b6000612052602083612437565b915061205d82612af1565b602082019050919050565b6000612075602483612437565b915061208082612b1a565b604082019050919050565b6000612098602183612437565b91506120a382612b69565b604082019050919050565b60006120bb600e83612437565b91506120c682612bb8565b602082019050919050565b60006120de602583612437565b91506120e982612be1565b604082019050919050565b6000612101602483612437565b915061210c82612c30565b604082019050919050565b6000612124601283612437565b915061212f82612c7f565b602082019050919050565b6000612147601683612437565b915061215282612ca8565b602082019050919050565b600061216a602583612437565b915061217582612cd1565b604082019050919050565b6121898161270c565b82525050565b61219881612716565b82525050565b60006020820190506121b36000830184611ef9565b92915050565b60006020820190506121ce6000830184611f08565b92915050565b600060208201905081810360008301526121ee8184611f17565b905092915050565b6000602082019050818103600083015261220f81611f50565b9050919050565b6000602082019050818103600083015261222f81611f73565b9050919050565b6000602082019050818103600083015261224f81611f96565b9050919050565b6000602082019050818103600083015261226f81611fb9565b9050919050565b6000602082019050818103600083015261228f81611fdc565b9050919050565b600060208201905081810360008301526122af81611fff565b9050919050565b600060208201905081810360008301526122cf81612022565b9050919050565b600060208201905081810360008301526122ef81612045565b9050919050565b6000602082019050818103600083015261230f81612068565b9050919050565b6000602082019050818103600083015261232f8161208b565b9050919050565b6000602082019050818103600083015261234f816120ae565b9050919050565b6000602082019050818103600083015261236f816120d1565b9050919050565b6000602082019050818103600083015261238f816120f4565b9050919050565b600060208201905081810360008301526123af81612117565b9050919050565b600060208201905081810360008301526123cf8161213a565b9050919050565b600060208201905081810360008301526123ef8161215d565b9050919050565b600060208201905061240b6000830184612180565b92915050565b6000602082019050612426600083018461218f565b92915050565b600081519050919050565b600082825260208201905092915050565b60006124538261270c565b915061245e8361270c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612493576124926127fb565b5b828201905092915050565b60006124a98261270c565b91506124b48361270c565b9250826124c4576124c361282a565b5b828204905092915050565b6000808291508390505b6001851115612519578086048111156124f5576124f46127fb565b5b60018516156125045780820291505b8081029050612512856128e1565b94506124d9565b94509492505050565b600061252d8261270c565b915061253883612716565b92506125657fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461256d565b905092915050565b60008261257d5760019050612639565b8161258b5760009050612639565b81600181146125a157600281146125ab576125da565b6001915050612639565b60ff8411156125bd576125bc6127fb565b5b8360020a9150848211156125d4576125d36127fb565b5b50612639565b5060208310610133831016604e8410600b841016171561260f5782820a90508381111561260a576126096127fb565b5b612639565b61261c84848460016124cf565b92509050818404811115612633576126326127fb565b5b81810290505b9392505050565b600061264b8261270c565b91506126568361270c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561268f5761268e6127fb565b5b828202905092915050565b60006126a58261270c565b91506126b08361270c565b9250828210156126c3576126c26127fb565b5b828203905092915050565b60006126d9826126ec565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015612741578082015181840152602081019050612726565b83811115612750576000848401525b50505050565b6000600282049050600182168061276e57607f821691505b6020821081141561278257612781612859565b5b50919050565b60006127938261270c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156127c6576127c56127fb565b5b600182019050919050565b60006127dc82612716565b915060ff8214156127f0576127ef6127fb565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f4552433230536e617073686f743a206e6f6e6578697374656e74206964000000600082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f7760008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f4163636f756e74204c6f636b6564000000000000000000000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f496e76616c696420506172616d65746572730000000000000000000000000000600082015250565b7f4552433230536e617073686f743a206964206973203000000000000000000000600082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b612d29816126ce565b8114612d3457600080fd5b50565b612d408161270c565b8114612d4b57600080fd5b5056fea264697066735822122097576ae43fba268d360a5b7445a343c8027612f60c0b72d0a379bd74f939f26b64736f6c63430008070033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061012c5760003560e01c8063715018a6116100ad578063981b24d011610071578063981b24d01461031f578063a457c2d71461034f578063a9059cbb1461037f578063dd62ed3e146103af578063f2fde38b146103df5761012c565b8063715018a6146102b357806379cc6790146102bd5780638da5cb5b146102d957806395d89b41146102f75780639711715a146103155761012c565b806339509351116100f457806339509351146101eb57806342966c681461021b5780634bd09c2a146102375780634ee2cd7e1461025357806370a08231146102835761012c565b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017f57806323b872dd1461019d578063313ce567146101cd575b600080fd5b6101396103fb565b60405161014691906121d4565b60405180910390f35b61016960048036038101906101649190611e0b565b61048d565b60405161017691906121b9565b60405180910390f35b6101876104ab565b60405161019491906123f6565b60405180910390f35b6101b760048036038101906101b29190611db8565b6104b5565b6040516101c491906121b9565b60405180910390f35b6101d56105ad565b6040516101e29190612411565b60405180910390f35b61020560048036038101906102009190611e0b565b6105b6565b60405161021291906121b9565b60405180910390f35b61023560048036038101906102309190611ecc565b610662565b005b610251600480360381019061024c9190611e4b565b610676565b005b61026d60048036038101906102689190611e0b565b61096d565b60405161027a91906123f6565b60405180910390f35b61029d60048036038101906102989190611d4b565b6109dd565b6040516102aa91906123f6565b60405180910390f35b6102bb610a25565b005b6102d760048036038101906102d29190611e0b565b610aad565b005b6102e1610b28565b6040516102ee919061219e565b60405180910390f35b6102ff610b52565b60405161030c91906121d4565b60405180910390f35b61031d610be4565b005b61033960048036038101906103349190611ecc565b610c6b565b60405161034691906123f6565b60405180910390f35b61036960048036038101906103649190611e0b565b610c9c565b60405161037691906121b9565b60405180910390f35b61039960048036038101906103949190611e0b565b610d87565b6040516103a691906121b9565b60405180910390f35b6103c960048036038101906103c49190611d78565b610da5565b6040516103d691906123f6565b60405180910390f35b6103f960048036038101906103f49190611d4b565b610e2c565b005b60606003805461040a90612756565b80601f016020809104026020016040519081016040528092919081815260200182805461043690612756565b80156104835780601f1061045857610100808354040283529160200191610483565b820191906000526020600020905b81548152906001019060200180831161046657829003601f168201915b5050505050905090565b60006104a161049a610f24565b8484610f2c565b6001905092915050565b6000600254905090565b60006104c28484846110f7565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061050d610f24565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561058d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610584906122b6565b60405180910390fd5b6105a185610599610f24565b858403610f2c565b60019150509392505050565b60006012905090565b60006106586105c3610f24565b8484600160006105d1610f24565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106539190612448565b610f2c565b6001905092915050565b61067361066d610f24565b8261136d565b50565b61067e610f24565b73ffffffffffffffffffffffffffffffffffffffff1661069c610b28565b73ffffffffffffffffffffffffffffffffffffffff16146106f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e9906122d6565b60405180910390fd5b81819050848490501461073a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073190612396565b60405180910390fd5b6000610744610b28565b9050600085859050905060006107586105ad565b600a6107649190612522565b9050600080600080600090505b85811015610960578489898381811061078d5761078c612888565b5b9050602002013561079e9190612640565b93506000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205492508a8a828181106107f4576107f3612888565b5b90506020020160208101906108099190611d4b565b91508383101561084e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084590612296565b60405180910390fd5b8383036000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550836000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546108e19190612448565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161094591906123f6565b60405180910390a3808061095890612788565b915050610771565b5050505050505050505050565b60008060006109ba84600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611538565b91509150816109d1576109cc856109dd565b6109d3565b805b9250505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a2d610f24565b73ffffffffffffffffffffffffffffffffffffffff16610a4b610b28565b73ffffffffffffffffffffffffffffffffffffffff1614610aa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a98906122d6565b60405180910390fd5b610aab6000611630565b565b6000610ac083610abb610f24565b610da5565b905081811015610b05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afc906122f6565b60405180910390fd5b610b1983610b11610f24565b848403610f2c565b610b23838361136d565b505050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610b6190612756565b80601f0160208091040260200160405190810160405280929190818152602001828054610b8d90612756565b8015610bda5780601f10610baf57610100808354040283529160200191610bda565b820191906000526020600020905b815481529060010190602001808311610bbd57829003601f168201915b5050505050905090565b610bec610f24565b73ffffffffffffffffffffffffffffffffffffffff16610c0a610b28565b73ffffffffffffffffffffffffffffffffffffffff1614610c60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c57906122d6565b60405180910390fd5b610c686116f6565b50565b6000806000610c7b846007611538565b9150915081610c9157610c8c6104ab565b610c93565b805b92505050919050565b60008060016000610cab610f24565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5f906123d6565b60405180910390fd5b610d7c610d73610f24565b85858403610f2c565b600191505092915050565b6000610d9b610d94610f24565b84846110f7565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e34610f24565b73ffffffffffffffffffffffffffffffffffffffff16610e52610b28565b73ffffffffffffffffffffffffffffffffffffffff1614610ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9f906122d6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0f90612256565b60405180910390fd5b610f2181611630565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9390612376565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561100c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100390612276565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110ea91906123f6565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115e90612356565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ce90612216565b60405180910390fd5b6111e283838361174c565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125f90612296565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112fb9190612448565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161135f91906123f6565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d490612316565b60405180910390fd5b6113e98260008361174c565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561146f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146690612236565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546114c6919061269a565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161152b91906123f6565b60405180910390a3505050565b6000806000841161157e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611575906123b6565b60405180910390fd5b6115886009611952565b8411156115ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c1906121f6565b60405180910390fd5b60006115e2858560000161196090919063ffffffff16565b90508360000180549050811415611600576000809250925050611629565b600184600101828154811061161857611617612888565b5b906000526020600020015492509250505b9250929050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006117026009611a3a565b600061170c611a50565b90507f8030e83b04d87bef53480e26263266d6ca66863aa8506aca6f2559d18aa1cb678160405161173d91906123f6565b60405180910390a18091505090565b600073689df33f77ee4bae8aa4e48ce366322c62cc3c3173ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156117c0577f000000000000000000000000000000000000000000000000000000006342e89f421090506118fa565b7342eef6f9c1134140e0c31fb60c231fce9565e22873ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611832577f0000000000000000000000000000000000000000000000000000000065241c1f421090506118f9565b60005b6005805490508160ff1610156118f75760058160ff168154811061185c5761185b612888565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614156118e4577f000000000000000000000000000000000000000000000000000000006342e89f421091506118f7565b80806118ef906127d1565b915050611835565b505b5b6000151581151514611941576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193890612336565b60405180910390fd5b61194c848484611a61565b50505050565b600081600001549050919050565b600080838054905014156119775760009050611a34565b600080848054905090505b808210156119db5760006119968383611b1b565b9050848682815481106119ac576119ab612888565b5b906000526020600020015411156119c5578091506119d5565b6001816119d29190612448565b92505b50611982565b600082118015611a13575083856001846119f5919061269a565b81548110611a0657611a05612888565b5b9060005260206000200154145b15611a2e57600182611a25919061269a565b92505050611a34565b81925050505b92915050565b6001816000016000828254019250508190555050565b6000611a5c6009611952565b905090565b611a6c838383611b41565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ab757611aaa82611b46565b611ab2611b99565b611b16565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b0257611af583611b46565b611afd611b99565b611b15565b611b0b83611b46565b611b1482611b46565b5b5b505050565b60006002828418611b2c919061249e565b828416611b399190612448565b905092915050565b505050565b611b96600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611b91836109dd565b611bad565b50565b611bab6007611ba66104ab565b611bad565b565b6000611bb7611a50565b905080611bc684600001611c28565b1015611c235782600001819080600181540180825580915050600190039060005260206000200160009091909190915055826001018290806001815401808255809150506001900390600052602060002001600090919091909150555b505050565b60008082805490501415611c3f5760009050611c70565b8160018380549050611c51919061269a565b81548110611c6257611c61612888565b5b906000526020600020015490505b919050565b600081359050611c8481612d20565b92915050565b60008083601f840112611ca057611c9f6128bc565b5b8235905067ffffffffffffffff811115611cbd57611cbc6128b7565b5b602083019150836020820283011115611cd957611cd86128c1565b5b9250929050565b60008083601f840112611cf657611cf56128bc565b5b8235905067ffffffffffffffff811115611d1357611d126128b7565b5b602083019150836020820283011115611d2f57611d2e6128c1565b5b9250929050565b600081359050611d4581612d37565b92915050565b600060208284031215611d6157611d606128cb565b5b6000611d6f84828501611c75565b91505092915050565b60008060408385031215611d8f57611d8e6128cb565b5b6000611d9d85828601611c75565b9250506020611dae85828601611c75565b9150509250929050565b600080600060608486031215611dd157611dd06128cb565b5b6000611ddf86828701611c75565b9350506020611df086828701611c75565b9250506040611e0186828701611d36565b9150509250925092565b60008060408385031215611e2257611e216128cb565b5b6000611e3085828601611c75565b9250506020611e4185828601611d36565b9150509250929050565b60008060008060408587031215611e6557611e646128cb565b5b600085013567ffffffffffffffff811115611e8357611e826128c6565b5b611e8f87828801611c8a565b9450945050602085013567ffffffffffffffff811115611eb257611eb16128c6565b5b611ebe87828801611ce0565b925092505092959194509250565b600060208284031215611ee257611ee16128cb565b5b6000611ef084828501611d36565b91505092915050565b611f02816126ce565b82525050565b611f11816126e0565b82525050565b6000611f228261242c565b611f2c8185612437565b9350611f3c818560208601612723565b611f45816128d0565b840191505092915050565b6000611f5d601d83612437565b9150611f68826128ee565b602082019050919050565b6000611f80602383612437565b9150611f8b82612917565b604082019050919050565b6000611fa3602283612437565b9150611fae82612966565b604082019050919050565b6000611fc6602683612437565b9150611fd1826129b5565b604082019050919050565b6000611fe9602283612437565b9150611ff482612a04565b604082019050919050565b600061200c602683612437565b915061201782612a53565b604082019050919050565b600061202f602883612437565b915061203a82612aa2565b604082019050919050565b6000612052602083612437565b915061205d82612af1565b602082019050919050565b6000612075602483612437565b915061208082612b1a565b604082019050919050565b6000612098602183612437565b91506120a382612b69565b604082019050919050565b60006120bb600e83612437565b91506120c682612bb8565b602082019050919050565b60006120de602583612437565b91506120e982612be1565b604082019050919050565b6000612101602483612437565b915061210c82612c30565b604082019050919050565b6000612124601283612437565b915061212f82612c7f565b602082019050919050565b6000612147601683612437565b915061215282612ca8565b602082019050919050565b600061216a602583612437565b915061217582612cd1565b604082019050919050565b6121898161270c565b82525050565b61219881612716565b82525050565b60006020820190506121b36000830184611ef9565b92915050565b60006020820190506121ce6000830184611f08565b92915050565b600060208201905081810360008301526121ee8184611f17565b905092915050565b6000602082019050818103600083015261220f81611f50565b9050919050565b6000602082019050818103600083015261222f81611f73565b9050919050565b6000602082019050818103600083015261224f81611f96565b9050919050565b6000602082019050818103600083015261226f81611fb9565b9050919050565b6000602082019050818103600083015261228f81611fdc565b9050919050565b600060208201905081810360008301526122af81611fff565b9050919050565b600060208201905081810360008301526122cf81612022565b9050919050565b600060208201905081810360008301526122ef81612045565b9050919050565b6000602082019050818103600083015261230f81612068565b9050919050565b6000602082019050818103600083015261232f8161208b565b9050919050565b6000602082019050818103600083015261234f816120ae565b9050919050565b6000602082019050818103600083015261236f816120d1565b9050919050565b6000602082019050818103600083015261238f816120f4565b9050919050565b600060208201905081810360008301526123af81612117565b9050919050565b600060208201905081810360008301526123cf8161213a565b9050919050565b600060208201905081810360008301526123ef8161215d565b9050919050565b600060208201905061240b6000830184612180565b92915050565b6000602082019050612426600083018461218f565b92915050565b600081519050919050565b600082825260208201905092915050565b60006124538261270c565b915061245e8361270c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612493576124926127fb565b5b828201905092915050565b60006124a98261270c565b91506124b48361270c565b9250826124c4576124c361282a565b5b828204905092915050565b6000808291508390505b6001851115612519578086048111156124f5576124f46127fb565b5b60018516156125045780820291505b8081029050612512856128e1565b94506124d9565b94509492505050565b600061252d8261270c565b915061253883612716565b92506125657fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461256d565b905092915050565b60008261257d5760019050612639565b8161258b5760009050612639565b81600181146125a157600281146125ab576125da565b6001915050612639565b60ff8411156125bd576125bc6127fb565b5b8360020a9150848211156125d4576125d36127fb565b5b50612639565b5060208310610133831016604e8410600b841016171561260f5782820a90508381111561260a576126096127fb565b5b612639565b61261c84848460016124cf565b92509050818404811115612633576126326127fb565b5b81810290505b9392505050565b600061264b8261270c565b91506126568361270c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561268f5761268e6127fb565b5b828202905092915050565b60006126a58261270c565b91506126b08361270c565b9250828210156126c3576126c26127fb565b5b828203905092915050565b60006126d9826126ec565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015612741578082015181840152602081019050612726565b83811115612750576000848401525b50505050565b6000600282049050600182168061276e57607f821691505b6020821081141561278257612781612859565b5b50919050565b60006127938261270c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156127c6576127c56127fb565b5b600182019050919050565b60006127dc82612716565b915060ff8214156127f0576127ef6127fb565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f4552433230536e617073686f743a206e6f6e6578697374656e74206964000000600082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f7760008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f4163636f756e74204c6f636b6564000000000000000000000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f496e76616c696420506172616d65746572730000000000000000000000000000600082015250565b7f4552433230536e617073686f743a206964206973203000000000000000000000600082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b612d29816126ce565b8114612d3457600080fd5b50565b612d408161270c565b8114612d4b57600080fd5b5056fea264697066735822122097576ae43fba268d360a5b7445a343c8027612f60c0b72d0a379bd74f939f26b64736f6c63430008070033
Deployed Bytecode Sourcemap
12357:1736:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3889:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4803:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4210:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4980:456;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4109:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5444:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8754:91;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12619:747;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10010:266;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4326:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;655:94;;;:::i;:::-;;8853:370;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;432:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3997:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12547:67;;;:::i;:::-;;10284:233;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5667:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4461:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4644:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;757:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3889:100;3943:13;3976:5;3969:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3889:100;:::o;4803:169::-;4886:4;4903:39;4912:12;:10;:12::i;:::-;4926:7;4935:6;4903:8;:39::i;:::-;4960:4;4953:11;;4803:169;;;;:::o;4210:108::-;4271:7;4298:12;;4291:19;;4210:108;:::o;4980:456::-;5086:4;5103:36;5113:6;5121:9;5132:6;5103:9;:36::i;:::-;5152:24;5179:11;:19;5191:6;5179:19;;;;;;;;;;;;;;;:33;5199:12;:10;:12::i;:::-;5179:33;;;;;;;;;;;;;;;;5152:60;;5251:6;5231:16;:26;;5223:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;5338:57;5347:6;5355:12;:10;:12::i;:::-;5388:6;5369:16;:25;5338:8;:57::i;:::-;5424:4;5417:11;;;4980:456;;;;;:::o;4109:93::-;4167:5;4192:2;4185:9;;4109:93;:::o;5444:215::-;5532:4;5549:80;5558:12;:10;:12::i;:::-;5572:7;5618:10;5581:11;:25;5593:12;:10;:12::i;:::-;5581:25;;;;;;;;;;;;;;;:34;5607:7;5581:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;5549:8;:80::i;:::-;5647:4;5640:11;;5444:215;;;;:::o;8754:91::-;8810:27;8816:12;:10;:12::i;:::-;8830:6;8810:5;:27::i;:::-;8754:91;:::o;12619:747::-;578:12;:10;:12::i;:::-;567:23;;:7;:5;:7::i;:::-;:23;;;559:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12758:6:::1;;:13;;12738:9;;:16;;:33;12730:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12799:14;12816:7;:5;:7::i;:::-;12799:24;;12828:8;12839:9;;:16;;12828:27;;12860:16;12885:10;:8;:10::i;:::-;12879:2;:16;;;;:::i;:::-;12860:35;;12902:14;12921:21:::0;12948:17:::1;12981:6:::0;12990:1:::1;12981:10;;12976:383;12997:3;12993:1;:7;12976:383;;;13039:8;13027:6;;13034:1;13027:9;;;;;;;:::i;:::-;;;;;;;;:20;;;;:::i;:::-;13018:29;;13069:9;:17:::0;13079:6:::1;13069:17;;;;;;;;;;;;;;;;13053:33;;13104:9;;13114:1;13104:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;13092:24;;13149:6;13132:13;:23;;13124:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;13257:6;13241:13;:22;13221:9;:17:::0;13231:6:::1;13221:17;;;;;;;;;;;;;;;:42;;;;13299:6;13275:9;:20:::0;13285:9:::1;13275:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;13335:9;13318:35;;13327:6;13318:35;;;13346:6;13318:35;;;;;;:::i;:::-;;;;;;;;13002:3;;;;;:::i;:::-;;;;12976:383;;;;12721:645;;;;;;12619:747:::0;;;;:::o;10010:266::-;10097:7;10118:16;10136:13;10153:55;10162:10;10174:24;:33;10199:7;10174:33;;;;;;;;;;;;;;;10153:8;:55::i;:::-;10117:91;;;;10228:11;:40;;10250:18;10260:7;10250:9;:18::i;:::-;10228:40;;;10242:5;10228:40;10221:47;;;;10010:266;;;;:::o;4326:127::-;4400:7;4427:9;:18;4437:7;4427:18;;;;;;;;;;;;;;;;4420:25;;4326:127;;;:::o;655:94::-;578:12;:10;:12::i;:::-;567:23;;:7;:5;:7::i;:::-;:23;;;559:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;720:21:::1;738:1;720:9;:21::i;:::-;655:94::o:0;8853:370::-;8930:24;8957:32;8967:7;8976:12;:10;:12::i;:::-;8957:9;:32::i;:::-;8930:59;;9028:6;9008:16;:26;;9000:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;9112:58;9121:7;9130:12;:10;:12::i;:::-;9163:6;9144:16;:25;9112:8;:58::i;:::-;9193:22;9199:7;9208:6;9193:5;:22::i;:::-;8919:304;8853:370;;:::o;432:87::-;478:7;505:6;;;;;;;;;;;498:13;;432:87;:::o;3997:104::-;4053:13;4086:7;4079:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3997:104;:::o;12547:67::-;578:12;:10;:12::i;:::-;567:23;;:7;:5;:7::i;:::-;:23;;;559:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12595:11:::1;:9;:11::i;:::-;;12547:67::o:0;10284:233::-;10355:7;10376:16;10394:13;10411:43;10420:10;10432:21;10411:8;:43::i;:::-;10375:79;;;;10474:11;:35;;10496:13;:11;:13::i;:::-;10474:35;;;10488:5;10474:35;10467:42;;;;10284:233;;;:::o;5667:413::-;5760:4;5777:24;5804:11;:25;5816:12;:10;:12::i;:::-;5804:25;;;;;;;;;;;;;;;:34;5830:7;5804:34;;;;;;;;;;;;;;;;5777:61;;5877:15;5857:16;:35;;5849:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;5971:67;5980:12;:10;:12::i;:::-;5994:7;6022:15;6003:16;:34;5971:8;:67::i;:::-;6068:4;6061:11;;;5667:413;;;;:::o;4461:175::-;4547:4;4564:42;4574:12;:10;:12::i;:::-;4588:9;4599:6;4564:9;:42::i;:::-;4624:4;4617:11;;4461:175;;;;:::o;4644:151::-;4733:7;4760:11;:18;4772:5;4760:18;;;;;;;;;;;;;;;:27;4779:7;4760:27;;;;;;;;;;;;;;;;4753:34;;4644:151;;;;:::o;757:193::-;578:12;:10;:12::i;:::-;567:23;;:7;:5;:7::i;:::-;:23;;;559:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;866:1:::1;846:22;;:8;:22;;;;838:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;923:19;933:8;923:9;:19::i;:::-;757:193:::0;:::o;95:98::-;148:7;175:10;168:17;;95:98;:::o;8243:346::-;8362:1;8345:19;;:5;:19;;;;8337:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8443:1;8424:21;;:7;:21;;;;8416:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8527:6;8497:11;:18;8509:5;8497:18;;;;;;;;;;;;;;;:27;8516:7;8497:27;;;;;;;;;;;;;;;:36;;;;8565:7;8549:32;;8558:5;8549:32;;;8574:6;8549:32;;;;;;:::i;:::-;;;;;;;;8243:346;;;:::o;6088:640::-;6212:1;6194:20;;:6;:20;;;;6186:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;6296:1;6275:23;;:9;:23;;;;6267:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;6351:47;6372:6;6380:9;6391:6;6351:20;:47::i;:::-;6411:21;6435:9;:17;6445:6;6435:17;;;;;;;;;;;;;;;;6411:41;;6488:6;6471:13;:23;;6463:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;6609:6;6593:13;:22;6573:9;:17;6583:6;6573:17;;;;;;;;;;;;;;;:42;;;;6661:6;6637:9;:20;6647:9;6637:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;6702:9;6685:35;;6694:6;6685:35;;;6713:6;6685:35;;;;;;:::i;:::-;;;;;;;;6175:553;6088:640;;;:::o;7705:530::-;7808:1;7789:21;;:7;:21;;;;7781:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7861:49;7882:7;7899:1;7903:6;7861:20;:49::i;:::-;7923:22;7948:9;:18;7958:7;7948:18;;;;;;;;;;;;;;;;7923:43;;8003:6;7985:14;:24;;7977:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;8122:6;8105:14;:23;8084:9;:18;8094:7;8084:18;;;;;;;;;;;;;;;:44;;;;8166:6;8150:12;;:22;;;;;;;:::i;:::-;;;;;;;;8216:1;8190:37;;8199:7;8190:37;;;8220:6;8190:37;;;;;;:::i;:::-;;;;;;;;7770:465;7705:530;;:::o;11020:512::-;11118:4;11124:7;11170:1;11157:10;:14;11149:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;11231:28;:18;:26;:28::i;:::-;11217:10;:42;;11209:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;11306:13;11322:40;11351:10;11322:9;:13;;:28;;:40;;;;:::i;:::-;11306:56;;11388:9;:13;;:20;;;;11379:5;:29;11375:150;;;11433:5;11440:1;11425:17;;;;;;;11375:150;11483:4;11489:9;:16;;11506:5;11489:23;;;;;;;;:::i;:::-;;;;;;;;;;11475:38;;;;;11020:512;;;;;;:::o;956:173::-;1012:16;1031:6;;;;;;;;;;;1012:25;;1057:8;1048:6;;:17;;;;;;;;;;;;;;;;;;1112:8;1081:40;;1102:8;1081:40;;;;;;;;;;;;1001:128;956:173;:::o;9646:222::-;9693:7;9713:30;:18;:28;:30::i;:::-;9756:17;9775:23;:21;:23::i;:::-;9756:42;;9814:19;9823:9;9814:19;;;;;;:::i;:::-;;;;;;;;9851:9;9844:16;;;9646:222;:::o;13374:716::-;13520:11;2934:42;13551:18;;:4;:18;;;13548:423;;;13612:29;13594:15;:47;13585:56;;13548:423;;;3022:42;13671:18;;:4;:18;;;13668:303;;;13732:29;13714:15;:47;13705:56;;13668:303;;;13798:11;13793:173;13823:5;:12;;;;13815:5;:20;;;13793:173;;;13864:5;13870;13864:12;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13856:20;;:4;:20;;;13853:107;;;13913:25;13895:15;:43;13886:52;;13946:5;;13853:107;13837:7;;;;;:::i;:::-;;;;13793:173;;;;13668:303;13548:423;14001:5;13991:15;;:6;:15;;;13983:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;14038:44;14065:4;14071:2;14075:6;14038:26;:44::i;:::-;13509:581;13374:716;;;:::o;14823:114::-;14888:7;14915;:14;;;14908:21;;14823:114;;;:::o;14121:614::-;14210:7;14250:1;14234:5;:12;;;;:17;14230:58;;;14275:1;14268:8;;;;14230:58;14300:11;14326:12;14341:5;:12;;;;14326:27;;14366:224;14379:4;14373:3;:10;14366:224;;;14400:11;14414:23;14427:3;14432:4;14414:12;:23::i;:::-;14400:37;;14471:7;14458:5;14464:3;14458:10;;;;;;;;:::i;:::-;;;;;;;;;;:20;14454:125;;;14506:3;14499:10;;14454:125;;;14562:1;14556:3;:7;;;;:::i;:::-;14550:13;;14454:125;14385:205;14366:224;;;14612:1;14606:3;:7;:36;;;;;14635:7;14617:5;14629:1;14623:3;:7;;;;:::i;:::-;14617:14;;;;;;;;:::i;:::-;;;;;;;;;;:25;14606:36;14602:126;;;14672:1;14666:3;:7;;;;:::i;:::-;14659:14;;;;;;14602:126;14713:3;14706:10;;;;14121:614;;;;;:::o;14945:127::-;15052:1;15034:7;:14;;;:19;;;;;;;;;;;14945:127;:::o;9875:::-;9939:7;9966:28;:18;:26;:28::i;:::-;9959:35;;9875:127;:::o;10525:487::-;10632:44;10659:4;10665:2;10669:6;10632:26;:44::i;:::-;10707:1;10691:18;;:4;:18;;;10687:318;;;10722:26;10745:2;10722:22;:26::i;:::-;10759:28;:26;:28::i;:::-;10687:318;;;10821:1;10807:16;;:2;:16;;;10803:202;;;10836:28;10859:4;10836:22;:28::i;:::-;10875;:26;:28::i;:::-;10803:202;;;10930:28;10953:4;10930:22;:28::i;:::-;10969:26;10992:2;10969:22;:26::i;:::-;10803:202;10687:318;10525:487;;;:::o;15667:118::-;15729:7;15776:1;15771;15767;:5;15766:11;;;;:::i;:::-;15761:1;15757;:5;15756:21;;;;:::i;:::-;15749:28;;15667:118;;;;:::o;8597:92::-;;;;:::o;11540:146::-;11608:70;11624:24;:33;11649:7;11624:33;;;;;;;;;;;;;;;11659:18;11669:7;11659:9;:18::i;:::-;11608:15;:70::i;:::-;11540:146;:::o;11694:118::-;11751:53;11767:21;11790:13;:11;:13::i;:::-;11751:15;:53::i;:::-;11694:118::o;11820:310::-;11915:17;11935:23;:21;:23::i;:::-;11915:43;;12006:9;11973:30;11989:9;:13;;11973:15;:30::i;:::-;:42;11969:154;;;12032:9;:13;;12051:9;12032:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12076:9;:16;;12098:12;12076:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11969:154;11904:226;11820:310;;:::o;12138:212::-;12208:7;12246:1;12232:3;:10;;;;:15;12228:115;;;12271:1;12264:8;;;;12228:115;12312:3;12329:1;12316:3;:10;;;;:14;;;;:::i;:::-;12312:19;;;;;;;;:::i;:::-;;;;;;;;;;12305:26;;12138:212;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;169:568::-;242:8;252:6;302:3;295:4;287:6;283:17;279:27;269:122;;310:79;;:::i;:::-;269:122;423:6;410:20;400:30;;453:18;445:6;442:30;439:117;;;475:79;;:::i;:::-;439:117;589:4;581:6;577:17;565:29;;643:3;635:4;627:6;623:17;613:8;609:32;606:41;603:128;;;650:79;;:::i;:::-;603:128;169:568;;;;;:::o;760:::-;833:8;843:6;893:3;886:4;878:6;874:17;870:27;860:122;;901:79;;:::i;:::-;860:122;1014:6;1001:20;991:30;;1044:18;1036:6;1033:30;1030:117;;;1066:79;;:::i;:::-;1030:117;1180:4;1172:6;1168:17;1156:29;;1234:3;1226:4;1218:6;1214:17;1204:8;1200:32;1197:41;1194:128;;;1241:79;;:::i;:::-;1194:128;760:568;;;;;:::o;1334:139::-;1380:5;1418:6;1405:20;1396:29;;1434:33;1461:5;1434:33;:::i;:::-;1334:139;;;;:::o;1479:329::-;1538:6;1587:2;1575:9;1566:7;1562:23;1558:32;1555:119;;;1593:79;;:::i;:::-;1555:119;1713:1;1738:53;1783:7;1774:6;1763:9;1759:22;1738:53;:::i;:::-;1728:63;;1684:117;1479:329;;;;:::o;1814:474::-;1882:6;1890;1939:2;1927:9;1918:7;1914:23;1910:32;1907:119;;;1945:79;;:::i;:::-;1907:119;2065:1;2090:53;2135:7;2126:6;2115:9;2111:22;2090:53;:::i;:::-;2080:63;;2036:117;2192:2;2218:53;2263:7;2254:6;2243:9;2239:22;2218:53;:::i;:::-;2208:63;;2163:118;1814:474;;;;;:::o;2294:619::-;2371:6;2379;2387;2436:2;2424:9;2415:7;2411:23;2407:32;2404:119;;;2442:79;;:::i;:::-;2404:119;2562:1;2587:53;2632:7;2623:6;2612:9;2608:22;2587:53;:::i;:::-;2577:63;;2533:117;2689:2;2715:53;2760:7;2751:6;2740:9;2736:22;2715:53;:::i;:::-;2705:63;;2660:118;2817:2;2843:53;2888:7;2879:6;2868:9;2864:22;2843:53;:::i;:::-;2833:63;;2788:118;2294:619;;;;;:::o;2919:474::-;2987:6;2995;3044:2;3032:9;3023:7;3019:23;3015:32;3012:119;;;3050:79;;:::i;:::-;3012:119;3170:1;3195:53;3240:7;3231:6;3220:9;3216:22;3195:53;:::i;:::-;3185:63;;3141:117;3297:2;3323:53;3368:7;3359:6;3348:9;3344:22;3323:53;:::i;:::-;3313:63;;3268:118;2919:474;;;;;:::o;3399:934::-;3521:6;3529;3537;3545;3594:2;3582:9;3573:7;3569:23;3565:32;3562:119;;;3600:79;;:::i;:::-;3562:119;3748:1;3737:9;3733:17;3720:31;3778:18;3770:6;3767:30;3764:117;;;3800:79;;:::i;:::-;3764:117;3913:80;3985:7;3976:6;3965:9;3961:22;3913:80;:::i;:::-;3895:98;;;;3691:312;4070:2;4059:9;4055:18;4042:32;4101:18;4093:6;4090:30;4087:117;;;4123:79;;:::i;:::-;4087:117;4236:80;4308:7;4299:6;4288:9;4284:22;4236:80;:::i;:::-;4218:98;;;;4013:313;3399:934;;;;;;;:::o;4339:329::-;4398:6;4447:2;4435:9;4426:7;4422:23;4418:32;4415:119;;;4453:79;;:::i;:::-;4415:119;4573:1;4598:53;4643:7;4634:6;4623:9;4619:22;4598:53;:::i;:::-;4588:63;;4544:117;4339:329;;;;:::o;4674:118::-;4761:24;4779:5;4761:24;:::i;:::-;4756:3;4749:37;4674:118;;:::o;4798:109::-;4879:21;4894:5;4879:21;:::i;:::-;4874:3;4867:34;4798:109;;:::o;4913:364::-;5001:3;5029:39;5062:5;5029:39;:::i;:::-;5084:71;5148:6;5143:3;5084:71;:::i;:::-;5077:78;;5164:52;5209:6;5204:3;5197:4;5190:5;5186:16;5164:52;:::i;:::-;5241:29;5263:6;5241:29;:::i;:::-;5236:3;5232:39;5225:46;;5005:272;4913:364;;;;:::o;5283:366::-;5425:3;5446:67;5510:2;5505:3;5446:67;:::i;:::-;5439:74;;5522:93;5611:3;5522:93;:::i;:::-;5640:2;5635:3;5631:12;5624:19;;5283:366;;;:::o;5655:::-;5797:3;5818:67;5882:2;5877:3;5818:67;:::i;:::-;5811:74;;5894:93;5983:3;5894:93;:::i;:::-;6012:2;6007:3;6003:12;5996:19;;5655:366;;;:::o;6027:::-;6169:3;6190:67;6254:2;6249:3;6190:67;:::i;:::-;6183:74;;6266:93;6355:3;6266:93;:::i;:::-;6384:2;6379:3;6375:12;6368:19;;6027:366;;;:::o;6399:::-;6541:3;6562:67;6626:2;6621:3;6562:67;:::i;:::-;6555:74;;6638:93;6727:3;6638:93;:::i;:::-;6756:2;6751:3;6747:12;6740:19;;6399:366;;;:::o;6771:::-;6913:3;6934:67;6998:2;6993:3;6934:67;:::i;:::-;6927:74;;7010:93;7099:3;7010:93;:::i;:::-;7128:2;7123:3;7119:12;7112:19;;6771:366;;;:::o;7143:::-;7285:3;7306:67;7370:2;7365:3;7306:67;:::i;:::-;7299:74;;7382:93;7471:3;7382:93;:::i;:::-;7500:2;7495:3;7491:12;7484:19;;7143:366;;;:::o;7515:::-;7657:3;7678:67;7742:2;7737:3;7678:67;:::i;:::-;7671:74;;7754:93;7843:3;7754:93;:::i;:::-;7872:2;7867:3;7863:12;7856:19;;7515:366;;;:::o;7887:::-;8029:3;8050:67;8114:2;8109:3;8050:67;:::i;:::-;8043:74;;8126:93;8215:3;8126:93;:::i;:::-;8244:2;8239:3;8235:12;8228:19;;7887:366;;;:::o;8259:::-;8401:3;8422:67;8486:2;8481:3;8422:67;:::i;:::-;8415:74;;8498:93;8587:3;8498:93;:::i;:::-;8616:2;8611:3;8607:12;8600:19;;8259:366;;;:::o;8631:::-;8773:3;8794:67;8858:2;8853:3;8794:67;:::i;:::-;8787:74;;8870:93;8959:3;8870:93;:::i;:::-;8988:2;8983:3;8979:12;8972:19;;8631:366;;;:::o;9003:::-;9145:3;9166:67;9230:2;9225:3;9166:67;:::i;:::-;9159:74;;9242:93;9331:3;9242:93;:::i;:::-;9360:2;9355:3;9351:12;9344:19;;9003:366;;;:::o;9375:::-;9517:3;9538:67;9602:2;9597:3;9538:67;:::i;:::-;9531:74;;9614:93;9703:3;9614:93;:::i;:::-;9732:2;9727:3;9723:12;9716:19;;9375:366;;;:::o;9747:::-;9889:3;9910:67;9974:2;9969:3;9910:67;:::i;:::-;9903:74;;9986:93;10075:3;9986:93;:::i;:::-;10104:2;10099:3;10095:12;10088:19;;9747:366;;;:::o;10119:::-;10261:3;10282:67;10346:2;10341:3;10282:67;:::i;:::-;10275:74;;10358:93;10447:3;10358:93;:::i;:::-;10476:2;10471:3;10467:12;10460:19;;10119:366;;;:::o;10491:::-;10633:3;10654:67;10718:2;10713:3;10654:67;:::i;:::-;10647:74;;10730:93;10819:3;10730:93;:::i;:::-;10848:2;10843:3;10839:12;10832:19;;10491:366;;;:::o;10863:::-;11005:3;11026:67;11090:2;11085:3;11026:67;:::i;:::-;11019:74;;11102:93;11191:3;11102:93;:::i;:::-;11220:2;11215:3;11211:12;11204:19;;10863:366;;;:::o;11235:118::-;11322:24;11340:5;11322:24;:::i;:::-;11317:3;11310:37;11235:118;;:::o;11359:112::-;11442:22;11458:5;11442:22;:::i;:::-;11437:3;11430:35;11359:112;;:::o;11477:222::-;11570:4;11608:2;11597:9;11593:18;11585:26;;11621:71;11689:1;11678:9;11674:17;11665:6;11621:71;:::i;:::-;11477:222;;;;:::o;11705:210::-;11792:4;11830:2;11819:9;11815:18;11807:26;;11843:65;11905:1;11894:9;11890:17;11881:6;11843:65;:::i;:::-;11705:210;;;;:::o;11921:313::-;12034:4;12072:2;12061:9;12057:18;12049:26;;12121:9;12115:4;12111:20;12107:1;12096:9;12092:17;12085:47;12149:78;12222:4;12213:6;12149:78;:::i;:::-;12141:86;;11921:313;;;;:::o;12240:419::-;12406:4;12444:2;12433:9;12429:18;12421:26;;12493:9;12487:4;12483:20;12479:1;12468:9;12464:17;12457:47;12521:131;12647:4;12521:131;:::i;:::-;12513:139;;12240:419;;;:::o;12665:::-;12831:4;12869:2;12858:9;12854:18;12846:26;;12918:9;12912:4;12908:20;12904:1;12893:9;12889:17;12882:47;12946:131;13072:4;12946:131;:::i;:::-;12938:139;;12665:419;;;:::o;13090:::-;13256:4;13294:2;13283:9;13279:18;13271:26;;13343:9;13337:4;13333:20;13329:1;13318:9;13314:17;13307:47;13371:131;13497:4;13371:131;:::i;:::-;13363:139;;13090:419;;;:::o;13515:::-;13681:4;13719:2;13708:9;13704:18;13696:26;;13768:9;13762:4;13758:20;13754:1;13743:9;13739:17;13732:47;13796:131;13922:4;13796:131;:::i;:::-;13788:139;;13515:419;;;:::o;13940:::-;14106:4;14144:2;14133:9;14129:18;14121:26;;14193:9;14187:4;14183:20;14179:1;14168:9;14164:17;14157:47;14221:131;14347:4;14221:131;:::i;:::-;14213:139;;13940:419;;;:::o;14365:::-;14531:4;14569:2;14558:9;14554:18;14546:26;;14618:9;14612:4;14608:20;14604:1;14593:9;14589:17;14582:47;14646:131;14772:4;14646:131;:::i;:::-;14638:139;;14365:419;;;:::o;14790:::-;14956:4;14994:2;14983:9;14979:18;14971:26;;15043:9;15037:4;15033:20;15029:1;15018:9;15014:17;15007:47;15071:131;15197:4;15071:131;:::i;:::-;15063:139;;14790:419;;;:::o;15215:::-;15381:4;15419:2;15408:9;15404:18;15396:26;;15468:9;15462:4;15458:20;15454:1;15443:9;15439:17;15432:47;15496:131;15622:4;15496:131;:::i;:::-;15488:139;;15215:419;;;:::o;15640:::-;15806:4;15844:2;15833:9;15829:18;15821:26;;15893:9;15887:4;15883:20;15879:1;15868:9;15864:17;15857:47;15921:131;16047:4;15921:131;:::i;:::-;15913:139;;15640:419;;;:::o;16065:::-;16231:4;16269:2;16258:9;16254:18;16246:26;;16318:9;16312:4;16308:20;16304:1;16293:9;16289:17;16282:47;16346:131;16472:4;16346:131;:::i;:::-;16338:139;;16065:419;;;:::o;16490:::-;16656:4;16694:2;16683:9;16679:18;16671:26;;16743:9;16737:4;16733:20;16729:1;16718:9;16714:17;16707:47;16771:131;16897:4;16771:131;:::i;:::-;16763:139;;16490:419;;;:::o;16915:::-;17081:4;17119:2;17108:9;17104:18;17096:26;;17168:9;17162:4;17158:20;17154:1;17143:9;17139:17;17132:47;17196:131;17322:4;17196:131;:::i;:::-;17188:139;;16915:419;;;:::o;17340:::-;17506:4;17544:2;17533:9;17529:18;17521:26;;17593:9;17587:4;17583:20;17579:1;17568:9;17564:17;17557:47;17621:131;17747:4;17621:131;:::i;:::-;17613:139;;17340:419;;;:::o;17765:::-;17931:4;17969:2;17958:9;17954:18;17946:26;;18018:9;18012:4;18008:20;18004:1;17993:9;17989:17;17982:47;18046:131;18172:4;18046:131;:::i;:::-;18038:139;;17765:419;;;:::o;18190:::-;18356:4;18394:2;18383:9;18379:18;18371:26;;18443:9;18437:4;18433:20;18429:1;18418:9;18414:17;18407:47;18471:131;18597:4;18471:131;:::i;:::-;18463:139;;18190:419;;;:::o;18615:::-;18781:4;18819:2;18808:9;18804:18;18796:26;;18868:9;18862:4;18858:20;18854:1;18843:9;18839:17;18832:47;18896:131;19022:4;18896:131;:::i;:::-;18888:139;;18615:419;;;:::o;19040:222::-;19133:4;19171:2;19160:9;19156:18;19148:26;;19184:71;19252:1;19241:9;19237:17;19228:6;19184:71;:::i;:::-;19040:222;;;;:::o;19268:214::-;19357:4;19395:2;19384:9;19380:18;19372:26;;19408:67;19472:1;19461:9;19457:17;19448:6;19408:67;:::i;:::-;19268:214;;;;:::o;19569:99::-;19621:6;19655:5;19649:12;19639:22;;19569:99;;;:::o;19674:169::-;19758:11;19792:6;19787:3;19780:19;19832:4;19827:3;19823:14;19808:29;;19674:169;;;;:::o;19849:305::-;19889:3;19908:20;19926:1;19908:20;:::i;:::-;19903:25;;19942:20;19960:1;19942:20;:::i;:::-;19937:25;;20096:1;20028:66;20024:74;20021:1;20018:81;20015:107;;;20102:18;;:::i;:::-;20015:107;20146:1;20143;20139:9;20132:16;;19849:305;;;;:::o;20160:185::-;20200:1;20217:20;20235:1;20217:20;:::i;:::-;20212:25;;20251:20;20269:1;20251:20;:::i;:::-;20246:25;;20290:1;20280:35;;20295:18;;:::i;:::-;20280:35;20337:1;20334;20330:9;20325:14;;20160:185;;;;:::o;20351:848::-;20412:5;20419:4;20443:6;20434:15;;20467:5;20458:14;;20481:712;20502:1;20492:8;20489:15;20481:712;;;20597:4;20592:3;20588:14;20582:4;20579:24;20576:50;;;20606:18;;:::i;:::-;20576:50;20656:1;20646:8;20642:16;20639:451;;;21071:4;21064:5;21060:16;21051:25;;20639:451;21121:4;21115;21111:15;21103:23;;21151:32;21174:8;21151:32;:::i;:::-;21139:44;;20481:712;;;20351:848;;;;;;;:::o;21205:281::-;21263:5;21287:23;21305:4;21287:23;:::i;:::-;21279:31;;21331:25;21347:8;21331:25;:::i;:::-;21319:37;;21375:104;21412:66;21402:8;21396:4;21375:104;:::i;:::-;21366:113;;21205:281;;;;:::o;21492:1073::-;21546:5;21737:8;21727:40;;21758:1;21749:10;;21760:5;;21727:40;21786:4;21776:36;;21803:1;21794:10;;21805:5;;21776:36;21872:4;21920:1;21915:27;;;;21956:1;21951:191;;;;21865:277;;21915:27;21933:1;21924:10;;21935:5;;;21951:191;21996:3;21986:8;21983:17;21980:43;;;22003:18;;:::i;:::-;21980:43;22052:8;22049:1;22045:16;22036:25;;22087:3;22080:5;22077:14;22074:40;;;22094:18;;:::i;:::-;22074:40;22127:5;;;21865:277;;22251:2;22241:8;22238:16;22232:3;22226:4;22223:13;22219:36;22201:2;22191:8;22188:16;22183:2;22177:4;22174:12;22170:35;22154:111;22151:246;;;22307:8;22301:4;22297:19;22288:28;;22342:3;22335:5;22332:14;22329:40;;;22349:18;;:::i;:::-;22329:40;22382:5;;22151:246;22422:42;22460:3;22450:8;22444:4;22441:1;22422:42;:::i;:::-;22407:57;;;;22496:4;22491:3;22487:14;22480:5;22477:25;22474:51;;;22505:18;;:::i;:::-;22474:51;22554:4;22547:5;22543:16;22534:25;;21492:1073;;;;;;:::o;22571:348::-;22611:7;22634:20;22652:1;22634:20;:::i;:::-;22629:25;;22668:20;22686:1;22668:20;:::i;:::-;22663:25;;22856:1;22788:66;22784:74;22781:1;22778:81;22773:1;22766:9;22759:17;22755:105;22752:131;;;22863:18;;:::i;:::-;22752:131;22911:1;22908;22904:9;22893:20;;22571:348;;;;:::o;22925:191::-;22965:4;22985:20;23003:1;22985:20;:::i;:::-;22980:25;;23019:20;23037:1;23019:20;:::i;:::-;23014:25;;23058:1;23055;23052:8;23049:34;;;23063:18;;:::i;:::-;23049:34;23108:1;23105;23101:9;23093:17;;22925:191;;;;:::o;23122:96::-;23159:7;23188:24;23206:5;23188:24;:::i;:::-;23177:35;;23122:96;;;:::o;23224:90::-;23258:7;23301:5;23294:13;23287:21;23276:32;;23224:90;;;:::o;23320:126::-;23357:7;23397:42;23390:5;23386:54;23375:65;;23320:126;;;:::o;23452:77::-;23489:7;23518:5;23507:16;;23452:77;;;:::o;23535:86::-;23570:7;23610:4;23603:5;23599:16;23588:27;;23535:86;;;:::o;23627:307::-;23695:1;23705:113;23719:6;23716:1;23713:13;23705:113;;;23804:1;23799:3;23795:11;23789:18;23785:1;23780:3;23776:11;23769:39;23741:2;23738:1;23734:10;23729:15;;23705:113;;;23836:6;23833:1;23830:13;23827:101;;;23916:1;23907:6;23902:3;23898:16;23891:27;23827:101;23676:258;23627:307;;;:::o;23940:320::-;23984:6;24021:1;24015:4;24011:12;24001:22;;24068:1;24062:4;24058:12;24089:18;24079:81;;24145:4;24137:6;24133:17;24123:27;;24079:81;24207:2;24199:6;24196:14;24176:18;24173:38;24170:84;;;24226:18;;:::i;:::-;24170:84;23991:269;23940:320;;;:::o;24266:233::-;24305:3;24328:24;24346:5;24328:24;:::i;:::-;24319:33;;24374:66;24367:5;24364:77;24361:103;;;24444:18;;:::i;:::-;24361:103;24491:1;24484:5;24480:13;24473:20;;24266:233;;;:::o;24505:167::-;24542:3;24565:22;24581:5;24565:22;:::i;:::-;24556:31;;24609:4;24602:5;24599:15;24596:41;;;24617:18;;:::i;:::-;24596:41;24664:1;24657:5;24653:13;24646:20;;24505:167;;;:::o;24678:180::-;24726:77;24723:1;24716:88;24823:4;24820:1;24813:15;24847:4;24844:1;24837:15;24864:180;24912:77;24909:1;24902:88;25009:4;25006:1;24999:15;25033:4;25030:1;25023:15;25050:180;25098:77;25095:1;25088:88;25195:4;25192:1;25185:15;25219:4;25216:1;25209:15;25236:180;25284:77;25281:1;25274:88;25381:4;25378:1;25371:15;25405:4;25402:1;25395:15;25422:117;25531:1;25528;25521:12;25545:117;25654:1;25651;25644:12;25668:117;25777:1;25774;25767:12;25791:117;25900:1;25897;25890:12;25914:117;26023:1;26020;26013:12;26037:102;26078:6;26129:2;26125:7;26120:2;26113:5;26109:14;26105:28;26095:38;;26037:102;;;:::o;26145:::-;26187:8;26234:5;26231:1;26227:13;26206:34;;26145:102;;;:::o;26253:179::-;26393:31;26389:1;26381:6;26377:14;26370:55;26253:179;:::o;26438:222::-;26578:34;26574:1;26566:6;26562:14;26555:58;26647:5;26642:2;26634:6;26630:15;26623:30;26438:222;:::o;26666:221::-;26806:34;26802:1;26794:6;26790:14;26783:58;26875:4;26870:2;26862:6;26858:15;26851:29;26666:221;:::o;26893:225::-;27033:34;27029:1;27021:6;27017:14;27010:58;27102:8;27097:2;27089:6;27085:15;27078:33;26893:225;:::o;27124:221::-;27264:34;27260:1;27252:6;27248:14;27241:58;27333:4;27328:2;27320:6;27316:15;27309:29;27124:221;:::o;27351:225::-;27491:34;27487:1;27479:6;27475:14;27468:58;27560:8;27555:2;27547:6;27543:15;27536:33;27351:225;:::o;27582:227::-;27722:34;27718:1;27710:6;27706:14;27699:58;27791:10;27786:2;27778:6;27774:15;27767:35;27582:227;:::o;27815:182::-;27955:34;27951:1;27943:6;27939:14;27932:58;27815:182;:::o;28003:223::-;28143:34;28139:1;28131:6;28127:14;28120:58;28212:6;28207:2;28199:6;28195:15;28188:31;28003:223;:::o;28232:220::-;28372:34;28368:1;28360:6;28356:14;28349:58;28441:3;28436:2;28428:6;28424:15;28417:28;28232:220;:::o;28458:164::-;28598:16;28594:1;28586:6;28582:14;28575:40;28458:164;:::o;28628:224::-;28768:34;28764:1;28756:6;28752:14;28745:58;28837:7;28832:2;28824:6;28820:15;28813:32;28628:224;:::o;28858:223::-;28998:34;28994:1;28986:6;28982:14;28975:58;29067:6;29062:2;29054:6;29050:15;29043:31;28858:223;:::o;29087:168::-;29227:20;29223:1;29215:6;29211:14;29204:44;29087:168;:::o;29261:172::-;29401:24;29397:1;29389:6;29385:14;29378:48;29261:172;:::o;29439:224::-;29579:34;29575:1;29567:6;29563:14;29556:58;29648:7;29643:2;29635:6;29631:15;29624:32;29439:224;:::o;29669:122::-;29742:24;29760:5;29742:24;:::i;:::-;29735:5;29732:35;29722:63;;29781:1;29778;29771:12;29722:63;29669:122;:::o;29797:::-;29870:24;29888:5;29870:24;:::i;:::-;29863:5;29860:35;29850:63;;29909:1;29906;29899:12;29850:63;29797:122;:::o
Swarm Source
ipfs://97576ae43fba268d360a5b7445a343c8027612f60c0b72d0a379bd74f939f26b
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.