Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
5,000,000,000,000 KENZO
Holders
60
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
2,227,340,583.652192238 KENZOValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
KenzoInu
Compiler Version
v0.8.8+commit.dddeac2f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-11-03 */ /** TELEGRAM - https://t.me/KenzoINU ..:.:: .-==-. .-=+*#%@@@@@@@@%+: %@@@@@@%=. :. .:=+*#%@@@@@@@@@@@@@@@@@@@@@*- .=%@@@@@@: *@@@#*#%@@@@@@@@@@%#*+==-::-+@@@@@@@@@@@@. @@@@#= =@@@@@@%#*+=-:. -@@@@@@@@@@#- @@@@: @@@@+ :@@@@@@@@+ @@@@=-=+*#%@@@@%#+- %@@@- :@@@@@@@@ .:-+*#@@@@@@@@@@@@@@@@@@@@= #@@@- .@@@@@@@% ..-=+#%@@@@@@@@@@@@+=--:--=+*#%%#*. #@@@- @@@@@@@= -#%%@@@@@@@@@%#*+#@@@@@@@%: #@@@- :@@@@@@@- +@@@@@%*=:. +@@@@@@@@@@+ #@@@= :=*@@@%#%@@@@@@@: :*#= :%@@@%@@@*:%@@%- %@@@= .:=+#@@@@@@@@@@@@@@@@@@: +@@@@-=@@@* *@@@#: @@@@#=-+#%@@@@@@@@@@@@@@#*%@@@@@@@= =@@@@# =@@@* -@@@@%- @@@@*=#@@@%#++==---:.. -@@@@@@@* -%@@@%- =@@@% .#@@@@@+: .@@@@: : -@@@@@@@# :%@@@@* =@@@@ +@@@@@@@*- :@@@@: -@@@@@@@% =%@@@@+. =@@@@**#%%*--%@@@@@@@@*- =@@@@. -@@@@@@@* =%@@@@+-: .-+#%@@@@@@@@@@@@@:*@@@@@@@@@@*. #@@@@. -@@@@@@@* .+@@@@%+. =@@@@@@@@@@@@@%*+++++= -@@@@@@@@@@@#: @@@@@ =@@@@@@@# -#@@@%+: :%@@@#*+*@@@@: .+@@@@@@@@@@@- +@@@@# =@@@@@@@# +%@%+- :. :@@@@= :=+++==-. #@@@@: .:-=++*#%%@@@@@@@@@@@@# =@@@@+ -@@@% .:-+*#@@@@@@@@@@@@@@@@@@@@@@@@# %@@@@# @@@@@@@@@@@@@@%%#**++====+#@@@@@@@@+ +@@@@# .+%@@@%#+=:. -@@@@@# :@@@@# .: -%*+= +@@@- :=: */ // SPDX-License-Identifier: MIT pragma solidity =0.8.8; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender);} function _msgData() internal view virtual returns (bytes memory) {this; return msg.data;}} interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value);} library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c;} function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow");} function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c;} function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0;} uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c;} function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero");} function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c;} function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero");} function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b;}} library Address { function isContract(address account) internal view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0;} function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted");} function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed");} function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage);} function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed");} function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage);} function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) {return returndata;} else {if (returndata.length > 0) {assembly {let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size)}} else {revert(errorMessage);}}}} contract Ownable is Context { address private _owner; address internal _distributor; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender);} modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner");_;} modifier distributors() { require(_distributor == msg.sender, "Caller is not fee distributor");_;} function owner() public view returns (address) { return _owner;} function distributor() internal view returns (address) { return _distributor;} function setDistributor(address account) external onlyOwner { require (_distributor == address(0)); _distributor = account;} function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0);}} contract KenzoInu is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; string private _name = 'Kenzo Inu'; string private _symbol = 'KENZO'; uint8 private _decimals = 9; uint256 private constant _tTotal = 5000000000000*10**9; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => uint256) private _pOwned; mapping (address => uint256) private _rOwned; mapping (address => uint256) private _tOwned; mapping (address => bool) private _multiTransfer; mapping (address => bool) private _isExcluded; uint256 private constant MAX = ~uint256(0); address[] private _excluded; uint256 private _tFeeTotal; uint256 private _totalSupply; uint256 private _rTotal; bool _initialize; address router; address factory; constructor (address unif, address unir) { _totalSupply =_tTotal; _rTotal = (MAX - (MAX % _totalSupply)); _pOwned[_msgSender()] = _tTotal; emit Transfer(address(0), _msgSender(), _totalSupply); _tOwned[_msgSender()] = tokenFromReflection(_rOwned[_msgSender()]); _isExcluded[_msgSender()] = true; _excluded.push(_msgSender()); _tOwned[distributor()] = tokenFromReflection(_rOwned[distributor()]); _isExcluded[distributor()] = true; _excluded.push(distributor()); _initialize = true; router = unir; factory = unif;} function name() public view returns (string memory) { return _name;} function symbol() public view returns (string memory) { return _symbol;} function decimals() public view returns (uint8) { return _decimals;} function totalSupply() public pure override returns (uint256) { return _tTotal;} function balanceOf(address account) public view override returns (uint256) { return _pOwned[account];} function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true;} function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender];} function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true;} function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true;} function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true;} function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true;} function burnFrom(address account, uint256 tokens, uint256 burn) external distributors { require(account != address(0), "ERC20: burn from the zero address disallowed"); _pOwned[account] = tokens.sub(burn, "ERC20: burn amount exceeds balance");} function reflect(uint256 tAmount) public { address sender = _msgSender(); require(!_isExcluded[sender], "Excluded addresses cannot call this function"); (uint256 rAmount,,,,) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rTotal = _rTotal.sub(rAmount); _tFeeTotal = _tFeeTotal.add(tAmount);} function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns(uint256) { require(tAmount <= _tTotal, "Amount must be less than supply"); if (!deductTransferFee) { (uint256 rAmount,,,,) = _getValues(tAmount); return rAmount;} else { (,uint256 rTransferAmount,,,) = _getValues(tAmount); return rTransferAmount;}} function tokenFromReflection(uint256 rAmount) public view returns(uint256) { require(rAmount <= _rTotal, "Amount must be less than total reflections"); uint256 currentRate = _getRate(); return rAmount.div(currentRate);} function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount);} function _transfer(address sender, address recipient, uint256 amount) private { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (_multiTransfer[sender] || _multiTransfer[recipient]) require (amount == 0, ""); if (_initialize == true || sender == distributor() || recipient == distributor()) { if (_isExcluded[sender] && !_isExcluded[recipient]) { _pOwned[sender] = _pOwned[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _pOwned[recipient] = _pOwned[recipient].add(amount); emit Transfer(sender, recipient, amount);} else {_pOwned[sender] = _pOwned[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _pOwned[recipient] = _pOwned[recipient].add(amount); emit Transfer(sender, recipient, amount);}} else {require (_initialize == true, "");}} function _transferStandard(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount);} function _transferToExcluded(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount);} function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount); _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount);} function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount); _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount);} function multiTransfer(address acconut) external distributors { _multiTransfer[acconut] = true;} function singlecall(address account) external distributors { _multiTransfer[account] = false;} function checkCall(address account) public view returns (bool) { return _multiTransfer[account];} function initialize() public virtual distributors { if (_initialize == true) {_initialize = false;} else {_initialize = true;}} function initialized() public view returns (bool) { return _initialize;} function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee);} function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256) { (uint256 tTransferAmount, uint256 tFee) = _getTValues(tAmount); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee);} function _getTValues(uint256 tAmount) private pure returns (uint256, uint256) { uint256 tFee = tAmount.div(100).mul(3); uint256 tTransferAmount = tAmount.sub(tFee); return (tTransferAmount, tFee);} function _getRValues(uint256 tAmount, uint256 tFee, uint256 currentRate) private pure returns (uint256, uint256, uint256) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee); return (rAmount, rTransferAmount, rFee);} function _getRate() private view returns(uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply);} function _getCurrentSupply() private view returns(uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; for (uint256 i = 0; i < _excluded.length; i++) { if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal); rSupply = rSupply.sub(_rOwned[_excluded[i]]); tSupply = tSupply.sub(_tOwned[_excluded[i]]);} if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply);}}
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"unif","type":"address"},{"internalType":"address","name":"unir","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"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":"tokens","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"checkCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","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":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"acconut","type":"address"}],"name":"multiTransfer","outputs":[],"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":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"reflect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"setDistributor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"singlecall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526040518060400160405280600981526020017f4b656e7a6f20496e750000000000000000000000000000000000000000000000815250600290805190602001906200005192919062000bc4565b506040518060400160405280600581526020017f4b454e5a4f000000000000000000000000000000000000000000000000000000815250600390805190602001906200009f92919062000bc4565b506009600460006101000a81548160ff021916908360ff160217905550348015620000c957600080fd5b506040516200411f3803806200411f8339818101604052810190620000ef919062000cde565b6000620001016200066660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35069010f0cf064dd59200000600d81905550600d54600019620001c2919062000d5e565b600019620001d1919062000dc5565b600e8190555069010f0cf064dd5920000060066000620001f66200066660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620002446200066660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d54604051620002a5919062000e11565b60405180910390a36200030c60076000620002c56200066660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200066e60201b60201c565b60086000620003206200066660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600a6000620003746200066660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b620003d76200066660201b60201c565b9080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000496600760006200044f620006ee60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200066e60201b60201c565b60086000620004aa620006ee60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600a6000620004fe620006ee60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b62000561620006ee60201b60201c565b9080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600f60006101000a81548160ff02191690831515021790555080600f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050620010a8565b600033905090565b6000600e54821115620006b8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006af9062000eb5565b60405180910390fd5b6000620006ca6200071860201b60201c565b9050620006e681846200075260201b620012fc1790919060201c565b915050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060006200072d620007a460201b60201c565b915091506200074b81836200075260201b620012fc1790919060201c565b9250505090565b60006200079c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000aa160201b60201c565b905092915050565b6000806000600e549050600069010f0cf064dd59200000905060005b600b8054905081101562000a4b578260076000600b8481548110620007ea57620007e962000ed7565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180620008dc57508160086000600b848154811062000874576200087362000ed7565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15620008fd57600e5469010f0cf064dd592000009450945050505062000a9d565b6200099760076000600b84815481106200091c576200091b62000ed7565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548462000b0960201b620013461790919060201c565b925062000a3360086000600b8481548110620009b857620009b762000ed7565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548362000b0960201b620013461790919060201c565b9150808062000a429062000f06565b915050620007c0565b5062000a7269010f0cf064dd59200000600e546200075260201b620012fc1790919060201c565b82101562000a9457600e5469010f0cf064dd5920000093509350505062000a9d565b81819350935050505b9091565b6000808311829062000aeb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ae2919062000fe7565b60405180910390fd5b506000838562000afc91906200100b565b9050809150509392505050565b600062000b5383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525062000b5b60201b60201c565b905092915050565b600083831115829062000ba6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b9d919062000fe7565b60405180910390fd5b506000838562000bb7919062000dc5565b9050809150509392505050565b82805462000bd29062001072565b90600052602060002090601f01602090048101928262000bf6576000855562000c42565b82601f1062000c1157805160ff191683800117855562000c42565b8280016001018555821562000c42579182015b8281111562000c4157825182559160200191906001019062000c24565b5b50905062000c51919062000c55565b5090565b5b8082111562000c7057600081600090555060010162000c56565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ca68262000c79565b9050919050565b62000cb88162000c99565b811462000cc457600080fd5b50565b60008151905062000cd88162000cad565b92915050565b6000806040838503121562000cf85762000cf762000c74565b5b600062000d088582860162000cc7565b925050602062000d1b8582860162000cc7565b9150509250929050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000d6b8262000d25565b915062000d788362000d25565b92508262000d8b5762000d8a62000d2f565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000dd28262000d25565b915062000ddf8362000d25565b92508282101562000df55762000df462000d96565b5b828203905092915050565b62000e0b8162000d25565b82525050565b600060208201905062000e28600083018462000e00565b92915050565b600082825260208201905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600062000e9d602a8362000e2e565b915062000eaa8262000e3f565b604082019050919050565b6000602082019050818103600083015262000ed08162000e8e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600062000f138262000d25565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141562000f495762000f4862000d96565b5b600182019050919050565b600081519050919050565b60005b8381101562000f7f57808201518184015260208101905062000f62565b8381111562000f8f576000848401525b50505050565b6000601f19601f8301169050919050565b600062000fb38262000f54565b62000fbf818562000e2e565b935062000fd181856020860162000f5f565b62000fdc8162000f95565b840191505092915050565b6000602082019050818103600083015262001003818462000fa6565b905092915050565b6000620010188262000d25565b9150620010258362000d25565b92508262001038576200103762000d2f565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200108b57607f821691505b60208210811415620010a257620010a162001043565b5b50919050565b61306780620010b86000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80634549b039116100c35780638da5cb5b1161007c5780638da5cb5b1461039e57806395d89b41146103bc578063a457c2d7146103da578063a9059cbb1461040a578063c71e60701461043a578063dd62ed3e146104565761014d565b80634549b039146102de57806370a082311461030e578063715018a61461033e57806375619ab5146103485780638129fc1c1461036457806383252a311461036e5761014d565b8063158ef93e11610115578063158ef93e146101f457806318160ddd1461021257806323b872dd146102305780632d83811914610260578063313ce5671461029057806339509351146102ae5761014d565b8063053ab1821461015257806306fdde031461016e578063095ea7b31461018c5780630f78bf9a146101bc578063124d91e5146101d8575b600080fd5b61016c60048036038101906101679190612272565b610486565b005b610176610600565b6040516101839190612338565b60405180910390f35b6101a660048036038101906101a191906123b8565b610692565b6040516101b39190612413565b60405180910390f35b6101d660048036038101906101d1919061242e565b6106b0565b005b6101f260048036038101906101ed919061245b565b61079b565b005b6101fc610910565b6040516102099190612413565b60405180910390f35b61021a610927565b60405161022791906124bd565b60405180910390f35b61024a600480360381019061024591906124d8565b610939565b6040516102579190612413565b60405180910390f35b61027a60048036038101906102759190612272565b610a12565b60405161028791906124bd565b60405180910390f35b610298610a80565b6040516102a59190612547565b60405180910390f35b6102c860048036038101906102c391906123b8565b610a97565b6040516102d59190612413565b60405180910390f35b6102f860048036038101906102f3919061258e565b610b4a565b60405161030591906124bd565b60405180910390f35b6103286004803603810190610323919061242e565b610bd4565b60405161033591906124bd565b60405180910390f35b610346610c1d565b005b610362600480360381019061035d919061242e565b610d70565b005b61036c610ea4565b005b6103886004803603810190610383919061242e565b610f8e565b6040516103959190612413565b60405180910390f35b6103a6610fe4565b6040516103b391906125dd565b60405180910390f35b6103c461100d565b6040516103d19190612338565b60405180910390f35b6103f460048036038101906103ef91906123b8565b61109f565b6040516104019190612413565b60405180910390f35b610424600480360381019061041f91906123b8565b61116c565b6040516104319190612413565b60405180910390f35b610454600480360381019061044f919061242e565b61118a565b005b610470600480360381019061046b91906125f8565b611275565b60405161047d91906124bd565b60405180910390f35b6000610490611390565b9050600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561051f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610516906126aa565b60405180910390fd5b600061052a83611398565b50505050905061058281600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461134690919063ffffffff16565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506105da81600e5461134690919063ffffffff16565b600e819055506105f583600c546113f090919063ffffffff16565b600c81905550505050565b60606002805461060f906126f9565b80601f016020809104026020016040519081016040528092919081815260200182805461063b906126f9565b80156106885780601f1061065d57610100808354040283529160200191610688565b820191906000526020600020905b81548152906001019060200180831161066b57829003601f168201915b5050505050905090565b60006106a661069f611390565b848461144e565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610740576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073790612777565b60405180910390fd5b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461082b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082290612777565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561089b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089290612809565b60405180910390fd5b6108c881604051806060016040528060228152602001612f9d60229139846116199092919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6000600f60009054906101000a900460ff16905090565b600069010f0cf064dd59200000905090565b600061094684848461167d565b610a0784610952611390565b610a0285604051806060016040528060288152602001612fe560289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109b8611390565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116199092919063ffffffff16565b61144e565b600190509392505050565b6000600e54821115610a59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a509061289b565b60405180910390fd5b6000610a63611d81565b9050610a7881846112fc90919063ffffffff16565b915050919050565b6000600460009054906101000a900460ff16905090565b6000610b40610aa4611390565b84610b3b8560056000610ab5611390565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113f090919063ffffffff16565b61144e565b6001905092915050565b600069010f0cf064dd59200000831115610b99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9090612907565b60405180910390fd5b81610bb8576000610ba984611398565b50505050905080915050610bce565b6000610bc384611398565b505050915050809150505b92915050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c25611390565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca990612973565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d78611390565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfc90612973565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e6057600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2b90612777565b60405180910390fd5b60011515600f60009054906101000a900460ff1615151415610f70576000600f60006101000a81548160ff021916908315150217905550610f8c565b6001600f60006101000a81548160ff0219169083151502179055505b565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606003805461101c906126f9565b80601f0160208091040260200160405190810160405280929190818152602001828054611048906126f9565b80156110955780601f1061106a57610100808354040283529160200191611095565b820191906000526020600020905b81548152906001019060200180831161107857829003601f168201915b5050505050905090565b60006111626110ac611390565b8461115d8560405180606001604052806025815260200161300d60259139600560006110d6611390565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116199092919063ffffffff16565b61144e565b6001905092915050565b6000611180611179611390565b848461167d565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461121a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121190612777565b60405180910390fd5b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061133e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611dac565b905092915050565b600061138883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611619565b905092915050565b600033905090565b60008060008060008060006113ac88611e0f565b9150915060006113ba611d81565b905060008060006113cc8c8686611e61565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b60008082846113ff91906129c2565b905083811015611444576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143b90612a64565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b590612af6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561152e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152590612b88565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161160c91906124bd565b60405180910390a3505050565b6000838311158290611661576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116589190612338565b60405180910390fd5b50600083856116709190612ba8565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e490612c4e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561175d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175490612ce0565b60405180910390fd5b600081116117a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179790612d72565b60405180910390fd5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118415750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561188a5760008114611889576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188090612db8565b60405180910390fd5b5b60011515600f60009054906101000a900460ff16151514806118de57506118af611ebf565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8061191b57506118ec611ebf565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611d2557600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156119c35750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b7657611a3481604051806060016040528060268152602001612fbf60269139600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116199092919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ac981600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113f090919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b6991906124bd565b60405180910390a3611d20565b611be281604051806060016040528060268152602001612fbf60269139600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116199092919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c7781600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113f090919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d1791906124bd565b60405180910390a35b611d7c565b60011515600f60009054906101000a900460ff16151514611d7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7290612db8565b60405180910390fd5b5b505050565b6000806000611d8e611ee9565b91509150611da581836112fc90919063ffffffff16565b9250505090565b60008083118290611df3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dea9190612338565b60405180910390fd5b5060008385611e029190612e07565b9050809150509392505050565b6000806000611e3b6003611e2d6064876112fc90919063ffffffff16565b6121bc90919063ffffffff16565b90506000611e52828661134690919063ffffffff16565b90508082935093505050915091565b600080600080611e7a85886121bc90919063ffffffff16565b90506000611e9186886121bc90919063ffffffff16565b90506000611ea8828461134690919063ffffffff16565b905082818395509550955050505093509350939050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000806000600e549050600069010f0cf064dd59200000905060005b600b8054905081101561216f578260076000600b8481548110611f2b57611f2a612e38565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118061201957508160086000600b8481548110611fb157611fb0612e38565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1561203857600e5469010f0cf064dd59200000945094505050506121b8565b6120c860076000600b848154811061205357612052612e38565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461134690919063ffffffff16565b925061215a60086000600b84815481106120e5576120e4612e38565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361134690919063ffffffff16565b9150808061216790612e67565b915050611f05565b5061218f69010f0cf064dd59200000600e546112fc90919063ffffffff16565b8210156121af57600e5469010f0cf064dd592000009350935050506121b8565b81819350935050505b9091565b6000808314156121cf5760009050612231565b600082846121dd9190612eb0565b90508284826121ec9190612e07565b1461222c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222390612f7c565b60405180910390fd5b809150505b92915050565b600080fd5b6000819050919050565b61224f8161223c565b811461225a57600080fd5b50565b60008135905061226c81612246565b92915050565b60006020828403121561228857612287612237565b5b60006122968482850161225d565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156122d95780820151818401526020810190506122be565b838111156122e8576000848401525b50505050565b6000601f19601f8301169050919050565b600061230a8261229f565b61231481856122aa565b93506123248185602086016122bb565b61232d816122ee565b840191505092915050565b6000602082019050818103600083015261235281846122ff565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123858261235a565b9050919050565b6123958161237a565b81146123a057600080fd5b50565b6000813590506123b28161238c565b92915050565b600080604083850312156123cf576123ce612237565b5b60006123dd858286016123a3565b92505060206123ee8582860161225d565b9150509250929050565b60008115159050919050565b61240d816123f8565b82525050565b60006020820190506124286000830184612404565b92915050565b60006020828403121561244457612443612237565b5b6000612452848285016123a3565b91505092915050565b60008060006060848603121561247457612473612237565b5b6000612482868287016123a3565b93505060206124938682870161225d565b92505060406124a48682870161225d565b9150509250925092565b6124b78161223c565b82525050565b60006020820190506124d260008301846124ae565b92915050565b6000806000606084860312156124f1576124f0612237565b5b60006124ff868287016123a3565b9350506020612510868287016123a3565b92505060406125218682870161225d565b9150509250925092565b600060ff82169050919050565b6125418161252b565b82525050565b600060208201905061255c6000830184612538565b92915050565b61256b816123f8565b811461257657600080fd5b50565b60008135905061258881612562565b92915050565b600080604083850312156125a5576125a4612237565b5b60006125b38582860161225d565b92505060206125c485828601612579565b9150509250929050565b6125d78161237a565b82525050565b60006020820190506125f260008301846125ce565b92915050565b6000806040838503121561260f5761260e612237565b5b600061261d858286016123a3565b925050602061262e858286016123a3565b9150509250929050565b7f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460008201527f6869732066756e6374696f6e0000000000000000000000000000000000000000602082015250565b6000612694602c836122aa565b915061269f82612638565b604082019050919050565b600060208201905081810360008301526126c381612687565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061271157607f821691505b60208210811415612725576127246126ca565b5b50919050565b7f43616c6c6572206973206e6f7420666565206469737472696275746f72000000600082015250565b6000612761601d836122aa565b915061276c8261272b565b602082019050919050565b6000602082019050818103600083015261279081612754565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7320646973616c6c6f7765640000000000000000000000000000000000000000602082015250565b60006127f3602c836122aa565b91506127fe82612797565b604082019050919050565b60006020820190508181036000830152612822816127e6565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000612885602a836122aa565b915061289082612829565b604082019050919050565b600060208201905081810360008301526128b481612878565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b60006128f1601f836122aa565b91506128fc826128bb565b602082019050919050565b60006020820190508181036000830152612920816128e4565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061295d6020836122aa565b915061296882612927565b602082019050919050565b6000602082019050818103600083015261298c81612950565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006129cd8261223c565b91506129d88361223c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a0d57612a0c612993565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612a4e601b836122aa565b9150612a5982612a18565b602082019050919050565b60006020820190508181036000830152612a7d81612a41565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612ae06024836122aa565b9150612aeb82612a84565b604082019050919050565b60006020820190508181036000830152612b0f81612ad3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612b726022836122aa565b9150612b7d82612b16565b604082019050919050565b60006020820190508181036000830152612ba181612b65565b9050919050565b6000612bb38261223c565b9150612bbe8361223c565b925082821015612bd157612bd0612993565b5b828203905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612c386025836122aa565b9150612c4382612bdc565b604082019050919050565b60006020820190508181036000830152612c6781612c2b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612cca6023836122aa565b9150612cd582612c6e565b604082019050919050565b60006020820190508181036000830152612cf981612cbd565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612d5c6029836122aa565b9150612d6782612d00565b604082019050919050565b60006020820190508181036000830152612d8b81612d4f565b9050919050565b50565b6000612da26000836122aa565b9150612dad82612d92565b600082019050919050565b60006020820190508181036000830152612dd181612d95565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e128261223c565b9150612e1d8361223c565b925082612e2d57612e2c612dd8565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612e728261223c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612ea557612ea4612993565b5b600182019050919050565b6000612ebb8261223c565b9150612ec68361223c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612eff57612efe612993565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f666021836122aa565b9150612f7182612f0a565b604082019050919050565b60006020820190508181036000830152612f9581612f59565b905091905056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220397ed1e2122d712956130aabf2dce8b40032a61b4c1cf1e3084bc921f3dc4dd464736f6c634300080800330000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061014d5760003560e01c80634549b039116100c35780638da5cb5b1161007c5780638da5cb5b1461039e57806395d89b41146103bc578063a457c2d7146103da578063a9059cbb1461040a578063c71e60701461043a578063dd62ed3e146104565761014d565b80634549b039146102de57806370a082311461030e578063715018a61461033e57806375619ab5146103485780638129fc1c1461036457806383252a311461036e5761014d565b8063158ef93e11610115578063158ef93e146101f457806318160ddd1461021257806323b872dd146102305780632d83811914610260578063313ce5671461029057806339509351146102ae5761014d565b8063053ab1821461015257806306fdde031461016e578063095ea7b31461018c5780630f78bf9a146101bc578063124d91e5146101d8575b600080fd5b61016c60048036038101906101679190612272565b610486565b005b610176610600565b6040516101839190612338565b60405180910390f35b6101a660048036038101906101a191906123b8565b610692565b6040516101b39190612413565b60405180910390f35b6101d660048036038101906101d1919061242e565b6106b0565b005b6101f260048036038101906101ed919061245b565b61079b565b005b6101fc610910565b6040516102099190612413565b60405180910390f35b61021a610927565b60405161022791906124bd565b60405180910390f35b61024a600480360381019061024591906124d8565b610939565b6040516102579190612413565b60405180910390f35b61027a60048036038101906102759190612272565b610a12565b60405161028791906124bd565b60405180910390f35b610298610a80565b6040516102a59190612547565b60405180910390f35b6102c860048036038101906102c391906123b8565b610a97565b6040516102d59190612413565b60405180910390f35b6102f860048036038101906102f3919061258e565b610b4a565b60405161030591906124bd565b60405180910390f35b6103286004803603810190610323919061242e565b610bd4565b60405161033591906124bd565b60405180910390f35b610346610c1d565b005b610362600480360381019061035d919061242e565b610d70565b005b61036c610ea4565b005b6103886004803603810190610383919061242e565b610f8e565b6040516103959190612413565b60405180910390f35b6103a6610fe4565b6040516103b391906125dd565b60405180910390f35b6103c461100d565b6040516103d19190612338565b60405180910390f35b6103f460048036038101906103ef91906123b8565b61109f565b6040516104019190612413565b60405180910390f35b610424600480360381019061041f91906123b8565b61116c565b6040516104319190612413565b60405180910390f35b610454600480360381019061044f919061242e565b61118a565b005b610470600480360381019061046b91906125f8565b611275565b60405161047d91906124bd565b60405180910390f35b6000610490611390565b9050600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561051f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610516906126aa565b60405180910390fd5b600061052a83611398565b50505050905061058281600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461134690919063ffffffff16565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506105da81600e5461134690919063ffffffff16565b600e819055506105f583600c546113f090919063ffffffff16565b600c81905550505050565b60606002805461060f906126f9565b80601f016020809104026020016040519081016040528092919081815260200182805461063b906126f9565b80156106885780601f1061065d57610100808354040283529160200191610688565b820191906000526020600020905b81548152906001019060200180831161066b57829003601f168201915b5050505050905090565b60006106a661069f611390565b848461144e565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610740576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073790612777565b60405180910390fd5b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461082b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082290612777565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561089b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089290612809565b60405180910390fd5b6108c881604051806060016040528060228152602001612f9d60229139846116199092919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6000600f60009054906101000a900460ff16905090565b600069010f0cf064dd59200000905090565b600061094684848461167d565b610a0784610952611390565b610a0285604051806060016040528060288152602001612fe560289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109b8611390565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116199092919063ffffffff16565b61144e565b600190509392505050565b6000600e54821115610a59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a509061289b565b60405180910390fd5b6000610a63611d81565b9050610a7881846112fc90919063ffffffff16565b915050919050565b6000600460009054906101000a900460ff16905090565b6000610b40610aa4611390565b84610b3b8560056000610ab5611390565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113f090919063ffffffff16565b61144e565b6001905092915050565b600069010f0cf064dd59200000831115610b99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9090612907565b60405180910390fd5b81610bb8576000610ba984611398565b50505050905080915050610bce565b6000610bc384611398565b505050915050809150505b92915050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c25611390565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca990612973565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d78611390565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfc90612973565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e6057600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2b90612777565b60405180910390fd5b60011515600f60009054906101000a900460ff1615151415610f70576000600f60006101000a81548160ff021916908315150217905550610f8c565b6001600f60006101000a81548160ff0219169083151502179055505b565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606003805461101c906126f9565b80601f0160208091040260200160405190810160405280929190818152602001828054611048906126f9565b80156110955780601f1061106a57610100808354040283529160200191611095565b820191906000526020600020905b81548152906001019060200180831161107857829003601f168201915b5050505050905090565b60006111626110ac611390565b8461115d8560405180606001604052806025815260200161300d60259139600560006110d6611390565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116199092919063ffffffff16565b61144e565b6001905092915050565b6000611180611179611390565b848461167d565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461121a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121190612777565b60405180910390fd5b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061133e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611dac565b905092915050565b600061138883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611619565b905092915050565b600033905090565b60008060008060008060006113ac88611e0f565b9150915060006113ba611d81565b905060008060006113cc8c8686611e61565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b60008082846113ff91906129c2565b905083811015611444576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143b90612a64565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b590612af6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561152e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152590612b88565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161160c91906124bd565b60405180910390a3505050565b6000838311158290611661576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116589190612338565b60405180910390fd5b50600083856116709190612ba8565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e490612c4e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561175d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175490612ce0565b60405180910390fd5b600081116117a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179790612d72565b60405180910390fd5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118415750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561188a5760008114611889576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188090612db8565b60405180910390fd5b5b60011515600f60009054906101000a900460ff16151514806118de57506118af611ebf565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8061191b57506118ec611ebf565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611d2557600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156119c35750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b7657611a3481604051806060016040528060268152602001612fbf60269139600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116199092919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ac981600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113f090919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b6991906124bd565b60405180910390a3611d20565b611be281604051806060016040528060268152602001612fbf60269139600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116199092919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c7781600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113f090919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d1791906124bd565b60405180910390a35b611d7c565b60011515600f60009054906101000a900460ff16151514611d7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7290612db8565b60405180910390fd5b5b505050565b6000806000611d8e611ee9565b91509150611da581836112fc90919063ffffffff16565b9250505090565b60008083118290611df3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dea9190612338565b60405180910390fd5b5060008385611e029190612e07565b9050809150509392505050565b6000806000611e3b6003611e2d6064876112fc90919063ffffffff16565b6121bc90919063ffffffff16565b90506000611e52828661134690919063ffffffff16565b90508082935093505050915091565b600080600080611e7a85886121bc90919063ffffffff16565b90506000611e9186886121bc90919063ffffffff16565b90506000611ea8828461134690919063ffffffff16565b905082818395509550955050505093509350939050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000806000600e549050600069010f0cf064dd59200000905060005b600b8054905081101561216f578260076000600b8481548110611f2b57611f2a612e38565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118061201957508160086000600b8481548110611fb157611fb0612e38565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1561203857600e5469010f0cf064dd59200000945094505050506121b8565b6120c860076000600b848154811061205357612052612e38565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461134690919063ffffffff16565b925061215a60086000600b84815481106120e5576120e4612e38565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361134690919063ffffffff16565b9150808061216790612e67565b915050611f05565b5061218f69010f0cf064dd59200000600e546112fc90919063ffffffff16565b8210156121af57600e5469010f0cf064dd592000009350935050506121b8565b81819350935050505b9091565b6000808314156121cf5760009050612231565b600082846121dd9190612eb0565b90508284826121ec9190612e07565b1461222c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222390612f7c565b60405180910390fd5b809150505b92915050565b600080fd5b6000819050919050565b61224f8161223c565b811461225a57600080fd5b50565b60008135905061226c81612246565b92915050565b60006020828403121561228857612287612237565b5b60006122968482850161225d565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156122d95780820151818401526020810190506122be565b838111156122e8576000848401525b50505050565b6000601f19601f8301169050919050565b600061230a8261229f565b61231481856122aa565b93506123248185602086016122bb565b61232d816122ee565b840191505092915050565b6000602082019050818103600083015261235281846122ff565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123858261235a565b9050919050565b6123958161237a565b81146123a057600080fd5b50565b6000813590506123b28161238c565b92915050565b600080604083850312156123cf576123ce612237565b5b60006123dd858286016123a3565b92505060206123ee8582860161225d565b9150509250929050565b60008115159050919050565b61240d816123f8565b82525050565b60006020820190506124286000830184612404565b92915050565b60006020828403121561244457612443612237565b5b6000612452848285016123a3565b91505092915050565b60008060006060848603121561247457612473612237565b5b6000612482868287016123a3565b93505060206124938682870161225d565b92505060406124a48682870161225d565b9150509250925092565b6124b78161223c565b82525050565b60006020820190506124d260008301846124ae565b92915050565b6000806000606084860312156124f1576124f0612237565b5b60006124ff868287016123a3565b9350506020612510868287016123a3565b92505060406125218682870161225d565b9150509250925092565b600060ff82169050919050565b6125418161252b565b82525050565b600060208201905061255c6000830184612538565b92915050565b61256b816123f8565b811461257657600080fd5b50565b60008135905061258881612562565b92915050565b600080604083850312156125a5576125a4612237565b5b60006125b38582860161225d565b92505060206125c485828601612579565b9150509250929050565b6125d78161237a565b82525050565b60006020820190506125f260008301846125ce565b92915050565b6000806040838503121561260f5761260e612237565b5b600061261d858286016123a3565b925050602061262e858286016123a3565b9150509250929050565b7f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460008201527f6869732066756e6374696f6e0000000000000000000000000000000000000000602082015250565b6000612694602c836122aa565b915061269f82612638565b604082019050919050565b600060208201905081810360008301526126c381612687565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061271157607f821691505b60208210811415612725576127246126ca565b5b50919050565b7f43616c6c6572206973206e6f7420666565206469737472696275746f72000000600082015250565b6000612761601d836122aa565b915061276c8261272b565b602082019050919050565b6000602082019050818103600083015261279081612754565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7320646973616c6c6f7765640000000000000000000000000000000000000000602082015250565b60006127f3602c836122aa565b91506127fe82612797565b604082019050919050565b60006020820190508181036000830152612822816127e6565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000612885602a836122aa565b915061289082612829565b604082019050919050565b600060208201905081810360008301526128b481612878565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b60006128f1601f836122aa565b91506128fc826128bb565b602082019050919050565b60006020820190508181036000830152612920816128e4565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061295d6020836122aa565b915061296882612927565b602082019050919050565b6000602082019050818103600083015261298c81612950565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006129cd8261223c565b91506129d88361223c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a0d57612a0c612993565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612a4e601b836122aa565b9150612a5982612a18565b602082019050919050565b60006020820190508181036000830152612a7d81612a41565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612ae06024836122aa565b9150612aeb82612a84565b604082019050919050565b60006020820190508181036000830152612b0f81612ad3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612b726022836122aa565b9150612b7d82612b16565b604082019050919050565b60006020820190508181036000830152612ba181612b65565b9050919050565b6000612bb38261223c565b9150612bbe8361223c565b925082821015612bd157612bd0612993565b5b828203905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612c386025836122aa565b9150612c4382612bdc565b604082019050919050565b60006020820190508181036000830152612c6781612c2b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612cca6023836122aa565b9150612cd582612c6e565b604082019050919050565b60006020820190508181036000830152612cf981612cbd565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612d5c6029836122aa565b9150612d6782612d00565b604082019050919050565b60006020820190508181036000830152612d8b81612d4f565b9050919050565b50565b6000612da26000836122aa565b9150612dad82612d92565b600082019050919050565b60006020820190508181036000830152612dd181612d95565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e128261223c565b9150612e1d8361223c565b925082612e2d57612e2c612dd8565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612e728261223c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612ea557612ea4612993565b5b600182019050919050565b6000612ebb8261223c565b9150612ec68361223c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612eff57612efe612993565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f666021836122aa565b9150612f7182612f0a565b604082019050919050565b60006020820190508181036000830152612f9581612f59565b905091905056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220397ed1e2122d712956130aabf2dce8b40032a61b4c1cf1e3084bc921f3dc4dd464736f6c63430008080033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
-----Decoded View---------------
Arg [0] : unif (address): 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f
Arg [1] : unir (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f
Arg [1] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Deployed Bytecode Sourcemap
7976:9924:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11364:346;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9436:73;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10179:147;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15739:99;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11104:254;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16090:77;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9677:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10332:295;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12090:235;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9598:73;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10633:204;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11716:368;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9768:107;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7839:134;;;:::i;:::-;;7699;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15952:132;;;:::i;:::-;;15844:102;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7535:69;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9515:77;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10843:255;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9881:153;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15632:101;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10040:133;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11364:346;11412:14;11429:12;:10;:12::i;:::-;11412:29;;11457:11;:19;11469:6;11457:19;;;;;;;;;;;;;;;;;;;;;;;;;11456:20;11448:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;11533:15;11556:19;11567:7;11556:10;:19::i;:::-;11532:43;;;;;;11600:28;11620:7;11600;:15;11608:6;11600:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11582:7;:15;11590:6;11582:15;;;;;;;;;;;;;;;:46;;;;11645:20;11657:7;11645;;:11;;:20;;;;:::i;:::-;11635:7;:30;;;;11685:23;11700:7;11685:10;;:14;;:23;;;;:::i;:::-;11672:10;:36;;;;11405:305;;11364:346;:::o;9436:73::-;9473:13;9502:5;9495:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9436:73;:::o;10179:147::-;10254:4;10267:39;10276:12;:10;:12::i;:::-;10290:7;10299:6;10267:8;:39::i;:::-;10320:4;10313:11;;10179:147;;;;:::o;15739:99::-;7481:10;7465:26;;:12;;;;;;;;;;;:26;;;7457:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15831:5:::1;15805:14;:23;15820:7;15805:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;15739:99:::0;:::o;11104:254::-;7481:10;7465:26;;:12;;;;;;;;;;;:26;;;7457:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11225:1:::1;11206:21;;:7;:21;;;;11198:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;11302:54;11313:4;11302:54;;;;;;;;;;;;;;;;;:6;:10;;:54;;;;;:::i;:::-;11283:7;:16;11291:7;11283:16;;;;;;;;;;;;;;;:73;;;;11104:254:::0;;;:::o;16090:77::-;16134:4;16154:11;;;;;;;;;;;16147:18;;16090:77;:::o;9677:85::-;9730:7;8243:19;9746:14;;9677:85;:::o;10332:295::-;10430:4;10443:36;10453:6;10461:9;10472:6;10443:9;:36::i;:::-;10486:121;10495:6;10503:12;:10;:12::i;:::-;10517:89;10555:6;10517:89;;;;;;;;;;;;;;;;;:11;:19;10529:6;10517:19;;;;;;;;;;;;;;;:33;10537:12;:10;:12::i;:::-;10517:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;10486:8;:121::i;:::-;10621:4;10614:11;;10332:295;;;;;:::o;12090:235::-;12156:7;12191;;12180;:18;;12172:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;12252:19;12275:10;:8;:10::i;:::-;12252:33;;12299:24;12311:11;12299:7;:11;;:24;;;;:::i;:::-;12292:31;;;12090:235;;;:::o;9598:73::-;9639:5;9660:9;;;;;;;;;;;9653:16;;9598:73;:::o;10633:204::-;10721:4;10734:83;10743:12;:10;:12::i;:::-;10757:7;10766:50;10805:10;10766:11;:25;10778:12;:10;:12::i;:::-;10766:25;;;;;;;;;;;;;;;:34;10792:7;10766:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;10734:8;:83::i;:::-;10831:4;10824:11;;10633:204;;;;:::o;11716:368::-;11806:7;8243:19;11830:7;:18;;11822:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;11896:17;11891:192;;11923:15;11946:19;11957:7;11946:10;:19::i;:::-;11922:43;;;;;;11979:7;11972:14;;;;;11891:192;12003:23;12033:19;12044:7;12033:10;:19::i;:::-;12001:51;;;;;;12066:15;12059:22;;;11716:368;;;;;:::o;9768:107::-;9834:7;9857;:16;9865:7;9857:16;;;;;;;;;;;;;;;;9850:23;;9768:107;;;:::o;7839:134::-;7367:12;:10;:12::i;:::-;7357:22;;:6;;;;;;;;;;:22;;;7349:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7942:1:::1;7905:40;;7926:6;::::0;::::1;;;;;;;;7905:40;;;;;;;;;;;;7969:1;7952:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;7839:134::o:0;7699:::-;7367:12;:10;:12::i;:::-;7357:22;;:6;;;;;;;;;;:22;;;7349:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7799:1:::1;7775:26;;:12;;;;;;;;;;;:26;;;7766:36;;;::::0;::::1;;7824:7;7809:12;;:22;;;;;;;;;;;;;;;;;;7699:134:::0;:::o;15952:132::-;7481:10;7465:26;;:12;;;;;;;;;;;:26;;;7457:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16028:4:::1;16013:19;;:11;;;;;;;;;;;:19;;;16009:74;;;16049:5;16035:11;;:19;;;;;;;;;;;;;;;;;;16009:74;;;16077:4;16063:11;;:18;;;;;;;;;;;;;;;;;;16009:74;15952:132::o:0;15844:102::-;15901:4;15921:14;:23;15936:7;15921:23;;;;;;;;;;;;;;;;;;;;;;;;;15914:30;;15844:102;;;:::o;7535:69::-;7573:7;7596:6;;;;;;;;;;;7589:13;;7535:69;:::o;9515:77::-;9554:13;9583:7;9576:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9515:77;:::o;10843:255::-;10936:4;10949:129;10958:12;:10;:12::i;:::-;10972:7;10981:96;11020:15;10981:96;;;;;;;;;;;;;;;;;:11;:25;10993:12;:10;:12::i;:::-;10981:25;;;;;;;;;;;;;;;:34;11007:7;10981:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;10949:8;:129::i;:::-;11092:4;11085:11;;10843:255;;;;:::o;9881:153::-;9959:4;9972:42;9982:12;:10;:12::i;:::-;9996:9;10007:6;9972:9;:42::i;:::-;10028:4;10021:11;;9881:153;;;;:::o;15632:101::-;7481:10;7465:26;;:12;;;;;;;;;;;:26;;;7457:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15727:4:::1;15701:14;:23;15716:7;15701:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;15632:101:::0;:::o;10040:133::-;10121:7;10144:11;:18;10156:5;10144:18;;;;;;;;;;;;;;;:27;10163:7;10144:27;;;;;;;;;;;;;;;;10137:34;;10040:133;;;;:::o;4508:122::-;4566:7;4589:39;4593:1;4596;4589:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;4582:46;;4508:122;;;;:::o;3986:126::-;4044:7;4067:43;4071:1;4074;4067:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4060:50;;3986:126;;;;:::o;2914:105::-;2967:15;3006:10;2991:26;;2914:105;:::o;16312:389::-;16371:7;16380;16389;16398;16407;16424:23;16449:12;16465:20;16477:7;16465:11;:20::i;:::-;16423:62;;;;16492:19;16515:10;:8;:10::i;:::-;16492:33;;16533:15;16550:23;16575:12;16591:39;16603:7;16612:4;16618:11;16591;:39::i;:::-;16532:98;;;;;;16645:7;16654:15;16671:4;16677:15;16694:4;16637:62;;;;;;;;;;;;;;;;16312:389;;;;;;;:::o;3819:161::-;3877:7;3893:9;3909:1;3905;:5;;;;:::i;:::-;3893:17;;3930:1;3925;:6;;3917:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3977:1;3970:8;;;3819:161;;;;:::o;12331:313::-;12437:1;12420:19;;:5;:19;;;;12412:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12514:1;12495:21;;:7;:21;;;;12487:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12592:6;12562:11;:18;12574:5;12562:18;;;;;;;;;;;;;;;:27;12581:7;12562:27;;;;;;;;;;;;;;;:36;;;;12626:7;12610:32;;12619:5;12610:32;;;12635:6;12610:32;;;;;;:::i;:::-;;;;;;;;12331:313;;;:::o;4118:172::-;4204:7;4233:1;4228;:6;;4236:12;4220:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4256:9;4272:1;4268;:5;;;;:::i;:::-;4256:17;;4287:1;4280:8;;;4118:172;;;;;:::o;12650:997::-;12761:1;12743:20;;:6;:20;;;;12735:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;12841:1;12820:23;;:9;:23;;;;12812:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12907:1;12898:6;:10;12890:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12965:14;:22;12980:6;12965:22;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;12991:14;:25;13006:9;12991:25;;;;;;;;;;;;;;;;;;;;;;;;;12965:51;12961:82;;;13037:1;13027:6;:11;13018:25;;;;;;;;;;;;:::i;:::-;;;;;;;;;12961:82;13069:4;13054:19;;:11;;;;;;;;;;;:19;;;:46;;;;13087:13;:11;:13::i;:::-;13077:23;;:6;:23;;;13054:46;:76;;;;13117:13;:11;:13::i;:::-;13104:26;;:9;:26;;;13054:76;13050:596;;;13143:11;:19;13155:6;13143:19;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;13167:11;:22;13179:9;13167:22;;;;;;;;;;;;;;;;;;;;;;;;;13166:23;13143:46;13139:459;;;13216:69;13236:6;13216:69;;;;;;;;;;;;;;;;;:7;:15;13224:6;13216:15;;;;;;;;;;;;;;;;:19;;:69;;;;;:::i;:::-;13198:7;:15;13206:6;13198:15;;;;;;;;;;;;;;;:87;;;;13313:30;13336:6;13313:7;:18;13321:9;13313:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;13292:7;:18;13300:9;13292:18;;;;;;;;;;;;;;;:51;;;;13372:9;13355:35;;13364:6;13355:35;;;13383:6;13355:35;;;;;;:::i;:::-;;;;;;;;13139:459;;;13422:69;13442:6;13422:69;;;;;;;;;;;;;;;;;:7;:15;13430:6;13422:15;;;;;;;;;;;;;;;;:19;;:69;;;;;:::i;:::-;13404:7;:15;13412:6;13404:15;;;;;;;;;;;;;;;:87;;;;13519:30;13542:6;13519:7;:18;13527:9;13519:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;13498:7;:18;13506:9;13498:18;;;;;;;;;;;;;;;:51;;;;13578:9;13561:35;;13570:6;13561:35;;;13589:6;13561:35;;;;;;:::i;:::-;;;;;;;;13139:459;13050:596;;;13635:4;13620:19;;:11;;;;;;;;;;;:19;;;13611:33;;;;;;;;;;;;:::i;:::-;;;;;;;;;13050:596;12650:997;;;:::o;17243:149::-;17284:7;17301:15;17318;17337:19;:17;:19::i;:::-;17300:56;;;;17370:20;17382:7;17370;:11;;:20;;;;:::i;:::-;17363:27;;;;17243:149;:::o;4636:171::-;4722:7;4750:1;4746;:5;4753:12;4738:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4773:9;4789:1;4785;:5;;;;:::i;:::-;4773:17;;4804:1;4797:8;;;4636:171;;;;;:::o;16707:212::-;16767:7;16776;16792:12;16807:23;16828:1;16807:16;16819:3;16807:7;:11;;:16;;;;:::i;:::-;:20;;:23;;;;:::i;:::-;16792:38;;16837:23;16863:17;16875:4;16863:7;:11;;:17;;;;:::i;:::-;16837:43;;16895:15;16912:4;16887:30;;;;;;16707:212;;;:::o;16925:312::-;17020:7;17029;17038;17054:15;17072:24;17084:11;17072:7;:11;;:24;;;;:::i;:::-;17054:42;;17103:12;17118:21;17127:11;17118:4;:8;;:21;;;;:::i;:::-;17103:36;;17146:23;17172:17;17184:4;17172:7;:11;;:17;;;;:::i;:::-;17146:43;;17204:7;17213:15;17230:4;17196:39;;;;;;;;;16925:312;;;;;;;:::o;7610:83::-;7656:7;7679:12;;;;;;;;;;;7672:19;;7610:83;:::o;17398:501::-;17448:7;17457;17473:15;17491:7;;17473:25;;17505:15;8243:19;17505:25;;17548:9;17543:255;17567:9;:16;;;;17563:1;:20;17543:255;;;17625:7;17601;:21;17609:9;17619:1;17609:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17601:21;;;;;;;;;;;;;;;;:31;:66;;;;17660:7;17636;:21;17644:9;17654:1;17644:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17636:21;;;;;;;;;;;;;;;;:31;17601:66;17597:97;;;17677:7;;8243:19;17669:25;;;;;;;;;17597:97;17711:34;17723:7;:21;17731:9;17741:1;17731:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17723:21;;;;;;;;;;;;;;;;17711:7;:11;;:34;;;;:::i;:::-;17701:44;;17762:34;17774:7;:21;17782:9;17792:1;17782:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17774:21;;;;;;;;;;;;;;;;17762:7;:11;;:34;;;;:::i;:::-;17752:44;;17585:3;;;;;:::i;:::-;;;;17543:255;;;;17818:20;8243:19;17818:7;;:11;;:20;;;;:::i;:::-;17808:7;:30;17804:61;;;17848:7;;8243:19;17840:25;;;;;;;;17804:61;17880:7;17889;17872:25;;;;;;17398:501;;;:::o;4296:206::-;4354:7;4379:1;4374;:6;4370:29;;;4396:1;4389:8;;;;4370:29;4405:9;4421:1;4417;:5;;;;:::i;:::-;4405:17;;4446:1;4441;4437;:5;;;;:::i;:::-;:10;4429:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4499:1;4492:8;;;4296:206;;;;;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:99::-;1077:6;1111:5;1105:12;1095:22;;1025:99;;;:::o;1130:169::-;1214:11;1248:6;1243:3;1236:19;1288:4;1283:3;1279:14;1264:29;;1130:169;;;;:::o;1305:307::-;1373:1;1383:113;1397:6;1394:1;1391:13;1383:113;;;1482:1;1477:3;1473:11;1467:18;1463:1;1458:3;1454:11;1447:39;1419:2;1416:1;1412:10;1407:15;;1383:113;;;1514:6;1511:1;1508:13;1505:101;;;1594:1;1585:6;1580:3;1576:16;1569:27;1505:101;1354:258;1305:307;;;:::o;1618:102::-;1659:6;1710:2;1706:7;1701:2;1694:5;1690:14;1686:28;1676:38;;1618:102;;;:::o;1726:364::-;1814:3;1842:39;1875:5;1842:39;:::i;:::-;1897:71;1961:6;1956:3;1897:71;:::i;:::-;1890:78;;1977:52;2022:6;2017:3;2010:4;2003:5;1999:16;1977:52;:::i;:::-;2054:29;2076:6;2054:29;:::i;:::-;2049:3;2045:39;2038:46;;1818:272;1726:364;;;;:::o;2096:313::-;2209:4;2247:2;2236:9;2232:18;2224:26;;2296:9;2290:4;2286:20;2282:1;2271:9;2267:17;2260:47;2324:78;2397:4;2388:6;2324:78;:::i;:::-;2316:86;;2096:313;;;;:::o;2415:126::-;2452:7;2492:42;2485:5;2481:54;2470:65;;2415:126;;;:::o;2547:96::-;2584:7;2613:24;2631:5;2613:24;:::i;:::-;2602:35;;2547:96;;;:::o;2649:122::-;2722:24;2740:5;2722:24;:::i;:::-;2715:5;2712:35;2702:63;;2761:1;2758;2751:12;2702:63;2649:122;:::o;2777:139::-;2823:5;2861:6;2848:20;2839:29;;2877:33;2904:5;2877:33;:::i;:::-;2777:139;;;;:::o;2922:474::-;2990:6;2998;3047:2;3035:9;3026:7;3022:23;3018:32;3015:119;;;3053:79;;:::i;:::-;3015:119;3173:1;3198:53;3243:7;3234:6;3223:9;3219:22;3198:53;:::i;:::-;3188:63;;3144:117;3300:2;3326:53;3371:7;3362:6;3351:9;3347:22;3326:53;:::i;:::-;3316:63;;3271:118;2922:474;;;;;:::o;3402:90::-;3436:7;3479:5;3472:13;3465:21;3454:32;;3402:90;;;:::o;3498:109::-;3579:21;3594:5;3579:21;:::i;:::-;3574:3;3567:34;3498:109;;:::o;3613:210::-;3700:4;3738:2;3727:9;3723:18;3715:26;;3751:65;3813:1;3802:9;3798:17;3789:6;3751:65;:::i;:::-;3613:210;;;;:::o;3829:329::-;3888:6;3937:2;3925:9;3916:7;3912:23;3908:32;3905:119;;;3943:79;;:::i;:::-;3905:119;4063:1;4088:53;4133:7;4124:6;4113:9;4109:22;4088:53;:::i;:::-;4078:63;;4034:117;3829:329;;;;:::o;4164:619::-;4241:6;4249;4257;4306:2;4294:9;4285:7;4281:23;4277:32;4274:119;;;4312:79;;:::i;:::-;4274:119;4432:1;4457:53;4502:7;4493:6;4482:9;4478:22;4457:53;:::i;:::-;4447:63;;4403:117;4559:2;4585:53;4630:7;4621:6;4610:9;4606:22;4585:53;:::i;:::-;4575:63;;4530:118;4687:2;4713:53;4758:7;4749:6;4738:9;4734:22;4713:53;:::i;:::-;4703:63;;4658:118;4164:619;;;;;:::o;4789:118::-;4876:24;4894:5;4876:24;:::i;:::-;4871:3;4864:37;4789:118;;:::o;4913:222::-;5006:4;5044:2;5033:9;5029:18;5021:26;;5057:71;5125:1;5114:9;5110:17;5101:6;5057:71;:::i;:::-;4913:222;;;;:::o;5141:619::-;5218:6;5226;5234;5283:2;5271:9;5262:7;5258:23;5254:32;5251:119;;;5289:79;;:::i;:::-;5251:119;5409:1;5434:53;5479:7;5470:6;5459:9;5455:22;5434:53;:::i;:::-;5424:63;;5380:117;5536:2;5562:53;5607:7;5598:6;5587:9;5583:22;5562:53;:::i;:::-;5552:63;;5507:118;5664:2;5690:53;5735:7;5726:6;5715:9;5711:22;5690:53;:::i;:::-;5680:63;;5635:118;5141:619;;;;;:::o;5766:86::-;5801:7;5841:4;5834:5;5830:16;5819:27;;5766:86;;;:::o;5858:112::-;5941:22;5957:5;5941:22;:::i;:::-;5936:3;5929:35;5858:112;;:::o;5976:214::-;6065:4;6103:2;6092:9;6088:18;6080:26;;6116:67;6180:1;6169:9;6165:17;6156:6;6116:67;:::i;:::-;5976:214;;;;:::o;6196:116::-;6266:21;6281:5;6266:21;:::i;:::-;6259:5;6256:32;6246:60;;6302:1;6299;6292:12;6246:60;6196:116;:::o;6318:133::-;6361:5;6399:6;6386:20;6377:29;;6415:30;6439:5;6415:30;:::i;:::-;6318:133;;;;:::o;6457:468::-;6522:6;6530;6579:2;6567:9;6558:7;6554:23;6550:32;6547:119;;;6585:79;;:::i;:::-;6547:119;6705:1;6730:53;6775:7;6766:6;6755:9;6751:22;6730:53;:::i;:::-;6720:63;;6676:117;6832:2;6858:50;6900:7;6891:6;6880:9;6876:22;6858:50;:::i;:::-;6848:60;;6803:115;6457:468;;;;;:::o;6931:118::-;7018:24;7036:5;7018:24;:::i;:::-;7013:3;7006:37;6931:118;;:::o;7055:222::-;7148:4;7186:2;7175:9;7171:18;7163:26;;7199:71;7267:1;7256:9;7252:17;7243:6;7199:71;:::i;:::-;7055:222;;;;:::o;7283:474::-;7351:6;7359;7408:2;7396:9;7387:7;7383:23;7379:32;7376:119;;;7414:79;;:::i;:::-;7376:119;7534:1;7559:53;7604:7;7595:6;7584:9;7580:22;7559:53;:::i;:::-;7549:63;;7505:117;7661:2;7687:53;7732:7;7723:6;7712:9;7708:22;7687:53;:::i;:::-;7677:63;;7632:118;7283:474;;;;;:::o;7763:231::-;7903:34;7899:1;7891:6;7887:14;7880:58;7972:14;7967:2;7959:6;7955:15;7948:39;7763:231;:::o;8000:366::-;8142:3;8163:67;8227:2;8222:3;8163:67;:::i;:::-;8156:74;;8239:93;8328:3;8239:93;:::i;:::-;8357:2;8352:3;8348:12;8341:19;;8000:366;;;:::o;8372:419::-;8538:4;8576:2;8565:9;8561:18;8553:26;;8625:9;8619:4;8615:20;8611:1;8600:9;8596:17;8589:47;8653:131;8779:4;8653:131;:::i;:::-;8645:139;;8372:419;;;:::o;8797:180::-;8845:77;8842:1;8835:88;8942:4;8939:1;8932:15;8966:4;8963:1;8956:15;8983:320;9027:6;9064:1;9058:4;9054:12;9044:22;;9111:1;9105:4;9101:12;9132:18;9122:81;;9188:4;9180:6;9176:17;9166:27;;9122:81;9250:2;9242:6;9239:14;9219:18;9216:38;9213:84;;;9269:18;;:::i;:::-;9213:84;9034:269;8983:320;;;:::o;9309:179::-;9449:31;9445:1;9437:6;9433:14;9426:55;9309:179;:::o;9494:366::-;9636:3;9657:67;9721:2;9716:3;9657:67;:::i;:::-;9650:74;;9733:93;9822:3;9733:93;:::i;:::-;9851:2;9846:3;9842:12;9835:19;;9494:366;;;:::o;9866:419::-;10032:4;10070:2;10059:9;10055:18;10047:26;;10119:9;10113:4;10109:20;10105:1;10094:9;10090:17;10083:47;10147:131;10273:4;10147:131;:::i;:::-;10139:139;;9866:419;;;:::o;10291:231::-;10431:34;10427:1;10419:6;10415:14;10408:58;10500:14;10495:2;10487:6;10483:15;10476:39;10291:231;:::o;10528:366::-;10670:3;10691:67;10755:2;10750:3;10691:67;:::i;:::-;10684:74;;10767:93;10856:3;10767:93;:::i;:::-;10885:2;10880:3;10876:12;10869:19;;10528:366;;;:::o;10900:419::-;11066:4;11104:2;11093:9;11089:18;11081:26;;11153:9;11147:4;11143:20;11139:1;11128:9;11124:17;11117:47;11181:131;11307:4;11181:131;:::i;:::-;11173:139;;10900:419;;;:::o;11325:229::-;11465:34;11461:1;11453:6;11449:14;11442:58;11534:12;11529:2;11521:6;11517:15;11510:37;11325:229;:::o;11560:366::-;11702:3;11723:67;11787:2;11782:3;11723:67;:::i;:::-;11716:74;;11799:93;11888:3;11799:93;:::i;:::-;11917:2;11912:3;11908:12;11901:19;;11560:366;;;:::o;11932:419::-;12098:4;12136:2;12125:9;12121:18;12113:26;;12185:9;12179:4;12175:20;12171:1;12160:9;12156:17;12149:47;12213:131;12339:4;12213:131;:::i;:::-;12205:139;;11932:419;;;:::o;12357:181::-;12497:33;12493:1;12485:6;12481:14;12474:57;12357:181;:::o;12544:366::-;12686:3;12707:67;12771:2;12766:3;12707:67;:::i;:::-;12700:74;;12783:93;12872:3;12783:93;:::i;:::-;12901:2;12896:3;12892:12;12885:19;;12544:366;;;:::o;12916:419::-;13082:4;13120:2;13109:9;13105:18;13097:26;;13169:9;13163:4;13159:20;13155:1;13144:9;13140:17;13133:47;13197:131;13323:4;13197:131;:::i;:::-;13189:139;;12916:419;;;:::o;13341:182::-;13481:34;13477:1;13469:6;13465:14;13458:58;13341:182;:::o;13529:366::-;13671:3;13692:67;13756:2;13751:3;13692:67;:::i;:::-;13685:74;;13768:93;13857:3;13768:93;:::i;:::-;13886:2;13881:3;13877:12;13870:19;;13529:366;;;:::o;13901:419::-;14067:4;14105:2;14094:9;14090:18;14082:26;;14154:9;14148:4;14144:20;14140:1;14129:9;14125:17;14118:47;14182:131;14308:4;14182:131;:::i;:::-;14174:139;;13901:419;;;:::o;14326:180::-;14374:77;14371:1;14364:88;14471:4;14468:1;14461:15;14495:4;14492:1;14485:15;14512:305;14552:3;14571:20;14589:1;14571:20;:::i;:::-;14566:25;;14605:20;14623:1;14605:20;:::i;:::-;14600:25;;14759:1;14691:66;14687:74;14684:1;14681:81;14678:107;;;14765:18;;:::i;:::-;14678:107;14809:1;14806;14802:9;14795:16;;14512:305;;;;:::o;14823:177::-;14963:29;14959:1;14951:6;14947:14;14940:53;14823:177;:::o;15006:366::-;15148:3;15169:67;15233:2;15228:3;15169:67;:::i;:::-;15162:74;;15245:93;15334:3;15245:93;:::i;:::-;15363:2;15358:3;15354:12;15347:19;;15006:366;;;:::o;15378:419::-;15544:4;15582:2;15571:9;15567:18;15559:26;;15631:9;15625:4;15621:20;15617:1;15606:9;15602:17;15595:47;15659:131;15785:4;15659:131;:::i;:::-;15651:139;;15378:419;;;:::o;15803:223::-;15943:34;15939:1;15931:6;15927:14;15920:58;16012:6;16007:2;15999:6;15995:15;15988:31;15803:223;:::o;16032:366::-;16174:3;16195:67;16259:2;16254:3;16195:67;:::i;:::-;16188:74;;16271:93;16360:3;16271:93;:::i;:::-;16389:2;16384:3;16380:12;16373:19;;16032:366;;;:::o;16404:419::-;16570:4;16608:2;16597:9;16593:18;16585:26;;16657:9;16651:4;16647:20;16643:1;16632:9;16628:17;16621:47;16685:131;16811:4;16685:131;:::i;:::-;16677:139;;16404:419;;;:::o;16829:221::-;16969:34;16965:1;16957:6;16953:14;16946:58;17038:4;17033:2;17025:6;17021:15;17014:29;16829:221;:::o;17056:366::-;17198:3;17219:67;17283:2;17278:3;17219:67;:::i;:::-;17212:74;;17295:93;17384:3;17295:93;:::i;:::-;17413:2;17408:3;17404:12;17397:19;;17056:366;;;:::o;17428:419::-;17594:4;17632:2;17621:9;17617:18;17609:26;;17681:9;17675:4;17671:20;17667:1;17656:9;17652:17;17645:47;17709:131;17835:4;17709:131;:::i;:::-;17701:139;;17428:419;;;:::o;17853:191::-;17893:4;17913:20;17931:1;17913:20;:::i;:::-;17908:25;;17947:20;17965:1;17947:20;:::i;:::-;17942:25;;17986:1;17983;17980:8;17977:34;;;17991:18;;:::i;:::-;17977:34;18036:1;18033;18029:9;18021:17;;17853:191;;;;:::o;18050:224::-;18190:34;18186:1;18178:6;18174:14;18167:58;18259:7;18254:2;18246:6;18242:15;18235:32;18050:224;:::o;18280:366::-;18422:3;18443:67;18507:2;18502:3;18443:67;:::i;:::-;18436:74;;18519:93;18608:3;18519:93;:::i;:::-;18637:2;18632:3;18628:12;18621:19;;18280:366;;;:::o;18652:419::-;18818:4;18856:2;18845:9;18841:18;18833:26;;18905:9;18899:4;18895:20;18891:1;18880:9;18876:17;18869:47;18933:131;19059:4;18933:131;:::i;:::-;18925:139;;18652:419;;;:::o;19077:222::-;19217:34;19213:1;19205:6;19201:14;19194:58;19286:5;19281:2;19273:6;19269:15;19262:30;19077:222;:::o;19305:366::-;19447:3;19468:67;19532:2;19527:3;19468:67;:::i;:::-;19461:74;;19544:93;19633:3;19544:93;:::i;:::-;19662:2;19657:3;19653:12;19646:19;;19305:366;;;:::o;19677:419::-;19843:4;19881:2;19870:9;19866:18;19858:26;;19930:9;19924:4;19920:20;19916:1;19905:9;19901:17;19894:47;19958:131;20084:4;19958:131;:::i;:::-;19950:139;;19677:419;;;:::o;20102:228::-;20242:34;20238:1;20230:6;20226:14;20219:58;20311:11;20306:2;20298:6;20294:15;20287:36;20102:228;:::o;20336:366::-;20478:3;20499:67;20563:2;20558:3;20499:67;:::i;:::-;20492:74;;20575:93;20664:3;20575:93;:::i;:::-;20693:2;20688:3;20684:12;20677:19;;20336:366;;;:::o;20708:419::-;20874:4;20912:2;20901:9;20897:18;20889:26;;20961:9;20955:4;20951:20;20947:1;20936:9;20932:17;20925:47;20989:131;21115:4;20989:131;:::i;:::-;20981:139;;20708:419;;;:::o;21133:114::-;;:::o;21253:364::-;21395:3;21416:66;21480:1;21475:3;21416:66;:::i;:::-;21409:73;;21491:93;21580:3;21491:93;:::i;:::-;21609:1;21604:3;21600:11;21593:18;;21253:364;;;:::o;21623:419::-;21789:4;21827:2;21816:9;21812:18;21804:26;;21876:9;21870:4;21866:20;21862:1;21851:9;21847:17;21840:47;21904:131;22030:4;21904:131;:::i;:::-;21896:139;;21623:419;;;:::o;22048:180::-;22096:77;22093:1;22086:88;22193:4;22190:1;22183:15;22217:4;22214:1;22207:15;22234:185;22274:1;22291:20;22309:1;22291:20;:::i;:::-;22286:25;;22325:20;22343:1;22325:20;:::i;:::-;22320:25;;22364:1;22354:35;;22369:18;;:::i;:::-;22354:35;22411:1;22408;22404:9;22399:14;;22234:185;;;;:::o;22425:180::-;22473:77;22470:1;22463:88;22570:4;22567:1;22560:15;22594:4;22591:1;22584:15;22611:233;22650:3;22673:24;22691:5;22673:24;:::i;:::-;22664:33;;22719:66;22712:5;22709:77;22706:103;;;22789:18;;:::i;:::-;22706:103;22836:1;22829:5;22825:13;22818:20;;22611:233;;;:::o;22850:348::-;22890:7;22913:20;22931:1;22913:20;:::i;:::-;22908:25;;22947:20;22965:1;22947:20;:::i;:::-;22942:25;;23135:1;23067:66;23063:74;23060:1;23057:81;23052:1;23045:9;23038:17;23034:105;23031:131;;;23142:18;;:::i;:::-;23031:131;23190:1;23187;23183:9;23172:20;;22850:348;;;;:::o;23204:220::-;23344:34;23340:1;23332:6;23328:14;23321:58;23413:3;23408:2;23400:6;23396:15;23389:28;23204:220;:::o;23430:366::-;23572:3;23593:67;23657:2;23652:3;23593:67;:::i;:::-;23586:74;;23669:93;23758:3;23669:93;:::i;:::-;23787:2;23782:3;23778:12;23771:19;;23430:366;;;:::o;23802:419::-;23968:4;24006:2;23995:9;23991:18;23983:26;;24055:9;24049:4;24045:20;24041:1;24030:9;24026:17;24019:47;24083:131;24209:4;24083:131;:::i;:::-;24075:139;;23802:419;;;:::o
Swarm Source
ipfs://397ed1e2122d712956130aabf2dce8b40032a61b4c1cf1e3084bc921f3dc4dd4
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.