Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Source Code
Overview
Max Total Supply
0 CST
Holders
1
Transfers
-
0
Market
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
ContentsShopperToken
Compiler Version
v0.5.2+commit.1df8f40c
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2021-12-08
*/
// File: openzeppelin-solidity/contracts/token/ERC20/IERC20.sol
pragma solidity ^0.5.2;
/**
* @title ERC20 interface
* @dev see https://eips.ethereum.org/EIPS/eip-20
*/
interface IERC20 {
function transfer(address to, uint256 value) external returns (bool);
function approve(address spender, uint256 value) external returns (bool);
function transferFrom(address from, address to, uint256 value) external returns (bool);
function totalSupply() external view returns (uint256);
function balanceOf(address who) external view returns (uint256);
function allowance(address owner, address spender) external view returns (uint256);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
// File: openzeppelin-solidity/contracts/ownership/Ownable.sol
pragma solidity ^0.5.2;
/**
* @title Ownable
* @dev The Ownable contract has an owner address, and provides basic authorization control
* functions, this simplifies the implementation of "user permissions".
*/
contract Ownable {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev The Ownable constructor sets the original `owner` of the contract to the sender
* account.
*/
constructor () internal {
_owner = msg.sender;
emit OwnershipTransferred(address(0), _owner);
}
/**
* @return the address of the owner.
*/
function owner() public view returns (address) {
return _owner;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(isOwner());
_;
}
/**
* @return true if `msg.sender` is the owner of the contract.
*/
function isOwner() public view returns (bool) {
return msg.sender == _owner;
}
/**
* @dev Allows the current owner to relinquish control of the contract.
* It will not be possible to call the functions with the `onlyOwner`
* modifier anymore.
* @notice Renouncing ownership will leave the contract without an owner,
* thereby removing any functionality that is only available to the owner.
*/
function renounceOwnership() public onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
/**
* @dev Allows the current owner to transfer control of the contract to a newOwner.
* @param newOwner The address to transfer ownership to.
*/
function transferOwnership(address newOwner) public onlyOwner {
_transferOwnership(newOwner);
}
/**
* @dev Transfers control of the contract to a newOwner.
* @param newOwner The address to transfer ownership to.
*/
function _transferOwnership(address newOwner) internal {
require(newOwner != address(0));
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
// File: openzeppelin-solidity/contracts/math/SafeMath.sol
pragma solidity ^0.5.2;
/**
* @title SafeMath
* @dev Unsigned math operations with safety checks that revert on error
*/
library SafeMath {
/**
* @dev Multiplies two unsigned integers, reverts on overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
// Gas optimization: this is cheaper than requiring 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b);
return c;
}
/**
* @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
// Solidity only automatically asserts when dividing by 0
require(b > 0);
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
/**
* @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend).
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
require(b <= a);
uint256 c = a - b;
return c;
}
/**
* @dev Adds two unsigned integers, reverts on overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a);
return c;
}
/**
* @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo),
* reverts when dividing by zero.
*/
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
require(b != 0);
return a % b;
}
}
// File: contracts/Pausable.sol
pragma solidity 0.5.2;
contract Pausable is Ownable {
event Pause();
event Unpause();
bool public paused = false;
modifier whenNotPaused() {
require(!paused);
_;
}
modifier whenPaused() {
require(paused);
_;
}
function pause() onlyOwner whenNotPaused public {
paused = true;
emit Pause();
}
function unpause() onlyOwner whenPaused public {
paused = false;
emit Unpause();
}
}
// File: contracts/ContentsShopperToken.sol
pragma solidity 0.5.2;
interface TokenRecipient {
function receiveApproval(address _from, uint256 _value, address _token, bytes calldata _extraData) external;
}
contract ContentsShopperToken is IERC20, Ownable, Pausable {
using SafeMath for uint256;
struct LockupInfo {
uint256 releaseTime;
uint256 termOfRound;
uint256 unlockAmountPerRound;
uint256 lockupBalance;
}
string public name;
string public symbol;
uint8 constant public decimals =18;
uint256 internal initialSupply;
uint256 internal totalSupply_;
mapping(address => uint256) internal balances;
mapping(address => bool) internal locks;
mapping(address => bool) public frozen;
mapping(address => mapping(address => uint256)) internal allowed;
mapping(address => LockupInfo[]) internal lockupInfo;
event Lock(address indexed holder, uint256 value);
event Unlock(address indexed holder, uint256 value);
event Burn(address indexed owner, uint256 value);
event Mint(uint256 value);
event Freeze(address indexed holder);
event Unfreeze(address indexed holder);
modifier notFrozen(address _holder) {
require(!frozen[_holder]);
_;
}
constructor() public {
name = "Contents Shopper Token";
symbol = "CST";
initialSupply = 1*(10**9);
totalSupply_ = initialSupply * 10 ** uint(decimals);
balances[owner()] = totalSupply_;
emit Transfer(address(0), owner(), totalSupply_);
}
//
function () external payable {
revert();
}
function totalSupply() public view returns (uint256) {
return totalSupply_;
}
function transfer(address _to, uint256 _value) public whenNotPaused notFrozen(msg.sender) returns (bool) {
if (locks[msg.sender]) {
autoUnlock(msg.sender);
}
require(_to != address(0));
require(_value <= balances[msg.sender]);
// SafeMath.sub will throw if there is not enough balance.
balances[msg.sender] = balances[msg.sender].sub(_value);
balances[_to] = balances[_to].add(_value);
emit Transfer(msg.sender, _to, _value);
return true;
}
function balanceOf(address _holder) public view returns (uint256 balance) {
uint256 lockedBalance = 0;
if(locks[_holder]) {
for(uint256 idx = 0; idx < lockupInfo[_holder].length ; idx++ ) {
lockedBalance = lockedBalance.add(lockupInfo[_holder][idx].lockupBalance);
}
}
return balances[_holder] + lockedBalance;
}
function transferFrom(address _from, address _to, uint256 _value) public whenNotPaused notFrozen(_from)returns (bool) {
if (locks[_from]) {
autoUnlock(_from);
}
require(_to != address(0));
require(_value <= balances[_from]);
require(_value <= allowed[_from][msg.sender]);
balances[_from] = balances[_from].sub(_value);
balances[_to] = balances[_to].add(_value);
allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
emit Transfer(_from, _to, _value);
return true;
}
function approve(address _spender, uint256 _value) public whenNotPaused returns (bool) {
allowed[msg.sender][_spender] = _value;
emit Approval(msg.sender, _spender, _value);
return true;
}
function approveAndCall(address _spender, uint256 _value, bytes memory _extraData) public returns (bool success) {
require(isContract(_spender));
TokenRecipient spender = TokenRecipient(_spender);
if (approve(_spender, _value)) {
spender.receiveApproval(msg.sender, _value, address(this), _extraData);
return true;
}
}
function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
require(spender != address(0));
allowed[msg.sender][spender] = (allowed[msg.sender][spender].add(addedValue));
emit Approval(msg.sender, spender, allowed[msg.sender][spender]);
return true;
}
function decreaseAllowance( address spender, uint256 subtractedValue) public returns (bool) {
require(spender != address(0));
allowed[msg.sender][spender] = (allowed[msg.sender][spender].sub(subtractedValue));
emit Approval(msg.sender, spender, allowed[msg.sender][spender]);
return true;
}
function allowance(address _holder, address _spender) public view returns (uint256) {
return allowed[_holder][_spender];
}
function lock(address _holder, uint256 _amount, uint256 _releaseStart, uint256 _termOfRound, uint256 _releaseRate) public onlyOwner returns (bool) {
require(balances[_holder] >= _amount);
if(_termOfRound==0 ) {
_termOfRound = 1;
}
balances[_holder] = balances[_holder].sub(_amount);
lockupInfo[_holder].push(
LockupInfo(_releaseStart, _termOfRound, _amount.div(100).mul(_releaseRate), _amount)
);
locks[_holder] = true;
emit Lock(_holder, _amount);
return true;
}
function unlock(address _holder, uint256 _idx) public onlyOwner returns (bool) {
require(locks[_holder]);
require(_idx < lockupInfo[_holder].length);
LockupInfo storage lockupinfo = lockupInfo[_holder][_idx];
uint256 releaseAmount = lockupinfo.lockupBalance;
delete lockupInfo[_holder][_idx];
lockupInfo[_holder][_idx] = lockupInfo[_holder][lockupInfo[_holder].length.sub(1)];
lockupInfo[_holder].length -=1;
if(lockupInfo[_holder].length == 0) {
locks[_holder] = false;
}
emit Unlock(_holder, releaseAmount);
balances[_holder] = balances[_holder].add(releaseAmount);
return true;
}
function freezeAccount(address _holder) public onlyOwner returns (bool) {
require(!frozen[_holder]);
frozen[_holder] = true;
emit Freeze(_holder);
return true;
}
function unfreezeAccount(address _holder) public onlyOwner returns (bool) {
require(frozen[_holder]);
frozen[_holder] = false;
emit Unfreeze(_holder);
return true;
}
function getNowTime() public view returns(uint256) {
return now;
}
function showLockState(address _holder, uint256 _idx) public view returns (bool, uint256, uint256, uint256, uint256, uint256) {
if(locks[_holder]) {
return (
locks[_holder],
lockupInfo[_holder].length,
lockupInfo[_holder][_idx].lockupBalance,
lockupInfo[_holder][_idx].releaseTime,
lockupInfo[_holder][_idx].termOfRound,
lockupInfo[_holder][_idx].unlockAmountPerRound
);
} else {
return (
locks[_holder],
lockupInfo[_holder].length,
0,0,0,0
);
}
}
function distribute(address _to, uint256 _value) public onlyOwner returns (bool) {
require(_to != address(0));
require(_value <= balances[owner()]);
balances[owner()] = balances[owner()].sub(_value);
balances[_to] = balances[_to].add(_value);
emit Transfer(owner(), _to, _value);
return true;
}
function distributeWithLockup(address _to, uint256 _value, uint256 _releaseStart, uint256 _termOfRound, uint256 _releaseRate) public onlyOwner returns (bool) {
distribute(_to, _value);
lock(_to, _value, _releaseStart, _termOfRound, _releaseRate);
return true;
}
function claimToken(IERC20 token, address _to, uint256 _value) public onlyOwner returns (bool) {
token.transfer(_to, _value);
return true;
}
function burn(uint256 _value) public onlyOwner returns (bool success) {
require(_value <= balances[msg.sender]);
address burner = msg.sender;
balances[burner] = balances[burner].sub(_value);
totalSupply_ = totalSupply_.sub(_value);
emit Burn(burner, _value);
return true;
}
function mint(address _to, uint256 _amount) onlyOwner public returns (bool) {
totalSupply_ = totalSupply_.add(_amount);
balances[_to] = balances[_to].add(_amount);
emit Transfer(address(0), _to, _amount);
return true;
}
function isContract(address addr) internal view returns (bool) {
uint size;
assembly{size := extcodesize(addr)}
return size > 0;
}
function autoUnlock(address _holder) internal returns (bool) {
for(uint256 idx =0; idx < lockupInfo[_holder].length ; idx++ ) {
if(locks[_holder]==false) {
return true;
}
if (lockupInfo[_holder][idx].releaseTime <= now) {
// If lockupinfo was deleted, loop restart at same position.
if( releaseTimeLock(_holder, idx) ) {
idx -=1;
}
}
}
return true;
}
function releaseTimeLock(address _holder, uint256 _idx) internal returns(bool) {
require(locks[_holder]);
require(_idx < lockupInfo[_holder].length);
// If lock status of holder is finished, delete lockup info.
LockupInfo storage info = lockupInfo[_holder][_idx];
uint256 releaseAmount = info.unlockAmountPerRound;
uint256 sinceFrom = now.sub(info.releaseTime);
uint256 sinceRound = sinceFrom.div(info.termOfRound);
releaseAmount = releaseAmount.add( sinceRound.mul(info.unlockAmountPerRound) );
if(releaseAmount >= info.lockupBalance) {
releaseAmount = info.lockupBalance;
delete lockupInfo[_holder][_idx];
lockupInfo[_holder][_idx] = lockupInfo[_holder][lockupInfo[_holder].length.sub(1)];
lockupInfo[_holder].length -=1;
if(lockupInfo[_holder].length == 0) {
locks[_holder] = false;
}
emit Unlock(_holder, releaseAmount);
balances[_holder] = balances[_holder].add(releaseAmount);
return true;
} else {
lockupInfo[_holder][_idx].releaseTime = lockupInfo[_holder][_idx].releaseTime.add( sinceRound.add(1).mul(info.termOfRound) );
lockupInfo[_holder][_idx].lockupBalance = lockupInfo[_holder][_idx].lockupBalance.sub(releaseAmount);
emit Unlock(_holder, releaseAmount);
balances[_holder] = balances[_holder].add(releaseAmount);
return false;
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"claimToken","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_holder","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_holder","type":"address"}],"name":"unfreezeAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_holder","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_releaseStart","type":"uint256"},{"name":"_termOfRound","type":"uint256"},{"name":"_releaseRate","type":"uint256"}],"name":"lock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_holder","type":"address"},{"name":"_idx","type":"uint256"}],"name":"unlock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getNowTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_releaseStart","type":"uint256"},{"name":"_termOfRound","type":"uint256"},{"name":"_releaseRate","type":"uint256"}],"name":"distributeWithLockup","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_holder","type":"address"},{"name":"_idx","type":"uint256"}],"name":"showLockState","outputs":[{"name":"","type":"bool"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"},{"name":"_extraData","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"frozen","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_holder","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_holder","type":"address"}],"name":"freezeAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"distribute","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"holder","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Lock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"holder","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Unlock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"value","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"holder","type":"address"}],"name":"Freeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"holder","type":"address"}],"name":"Unfreeze","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}]Contract Creation Code
608060405260008060146101000a81548160ff0219169083151502179055503480156200002b57600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36040805190810160405280601681526020017f436f6e74656e74732053686f7070657220546f6b656e000000000000000000008152506001908051906020019062000135929190620002ae565b506040805190810160405280600381526020017f43535400000000000000000000000000000000000000000000000000000000008152506002908051906020019062000183929190620002ae565b50633b9aca00600381905550601260ff16600a0a6003540260048190555060045460056000620001c162000285640100000000026401000000009004565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200021862000285640100000000026401000000009004565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004546040518082815260200191505060405180910390a36200035d565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002f157805160ff191683800117855562000322565b8280016001018555821562000322579182015b828111156200032157825182559160200191906001019062000304565b5b50905062000331919062000335565b5090565b6200035a91905b80821115620003565760008160009055506001016200033c565b5090565b90565b614143806200036d6000396000f3fe6080604052600436106101f5576000357c0100000000000000000000000000000000000000000000000000000000900480637eee288d1161011f578063c572652b116100b2578063dd62ed3e11610081578063dd62ed3e14610cbf578063f26c159f14610d44578063f2fde38b14610dad578063fb93210814610dfe576101f5565b8063c572652b14610a25578063c9e075c614610ab6578063cae9ca5114610b4c578063d051665014610c56576101f5565b806395d89b41116100ee57806395d89b41146108845780639b819d3814610914578063a457c2d71461093f578063a9059cbb146109b2576101f5565b80637eee288d146107745780638456cb59146107e75780638da5cb5b146107fe5780638f32d59b14610855576101f5565b80633f4ba83a1161019757806370a082311161016657806370a08231146105fe578063715018a614610663578063788649ea1461067a5780637c759d0d146106e3576101f5565b80633f4ba83a146104f257806340c10f191461050957806342966c681461057c5780635c975abb146105cf576101f5565b806318160ddd116101d357806318160ddd1461039057806323b872dd146103bb578063313ce5671461044e578063395093511461047f576101f5565b806306fdde03146101fa578063095ea7b31461028a578063125bfb66146102fd575b600080fd5b34801561020657600080fd5b5061020f610e71565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561024f578082015181840152602081019050610234565b50505050905090810190601f16801561027c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561029657600080fd5b506102e3600480360360408110156102ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f0f565b604051808215151515815260200191505060405180910390f35b34801561030957600080fd5b506103766004803603606081101561032057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061101c565b604051808215151515815260200191505060405180910390f35b34801561039c57600080fd5b506103a561111b565b6040518082815260200191505060405180910390f35b3480156103c757600080fd5b50610434600480360360608110156103de57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611125565b604051808215151515815260200191505060405180910390f35b34801561045a57600080fd5b506104636115b8565b604051808260ff1660ff16815260200191505060405180910390f35b34801561048b57600080fd5b506104d8600480360360408110156104a257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115bd565b604051808215151515815260200191505060405180910390f35b3480156104fe57600080fd5b506105076117f4565b005b34801561051557600080fd5b506105626004803603604081101561052c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061186a565b604051808215151515815260200191505060405180910390f35b34801561058857600080fd5b506105b56004803603602081101561059f57600080fd5b810190808035906020019092919050505061199f565b604051808215151515815260200191505060405180910390f35b3480156105db57600080fd5b506105e4611b0f565b604051808215151515815260200191505060405180910390f35b34801561060a57600080fd5b5061064d6004803603602081101561062157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b22565b6040518082815260200191505060405180910390f35b34801561066f57600080fd5b50610678611c96565b005b34801561068657600080fd5b506106c96004803603602081101561069d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d68565b604051808215151515815260200191505060405180910390f35b3480156106ef57600080fd5b5061075a600480360360a081101561070657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050611e79565b604051808215151515815260200191505060405180910390f35b34801561078057600080fd5b506107cd6004803603604081101561079757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061210e565b604051808215151515815260200191505060405180910390f35b3480156107f357600080fd5b506107fc6125cc565b005b34801561080a57600080fd5b50610813612644565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561086157600080fd5b5061086a61266d565b604051808215151515815260200191505060405180910390f35b34801561089057600080fd5b506108996126c4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108d95780820151818401526020810190506108be565b50505050905090810190601f1680156109065780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561092057600080fd5b50610929612762565b6040518082815260200191505060405180910390f35b34801561094b57600080fd5b506109986004803603604081101561096257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061276a565b604051808215151515815260200191505060405180910390f35b3480156109be57600080fd5b50610a0b600480360360408110156109d557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506129a1565b604051808215151515815260200191505060405180910390f35b348015610a3157600080fd5b50610a9c600480360360a0811015610a4857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050612c99565b604051808215151515815260200191505060405180910390f35b348015610ac257600080fd5b50610b0f60048036036040811015610ad957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612cd4565b6040518087151515158152602001868152602001858152602001848152602001838152602001828152602001965050505050505060405180910390f35b348015610b5857600080fd5b50610c3c60048036036060811015610b6f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610bb657600080fd5b820183602082011115610bc857600080fd5b80359060200191846001830284011164010000000083111715610bea57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050613001565b604051808215151515815260200191505060405180910390f35b348015610c6257600080fd5b50610ca560048036036020811015610c7957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061319a565b604051808215151515815260200191505060405180910390f35b348015610ccb57600080fd5b50610d2e60048036036040811015610ce257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506131ba565b6040518082815260200191505060405180910390f35b348015610d5057600080fd5b50610d9360048036036020811015610d6757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613241565b604051808215151515815260200191505060405180910390f35b348015610db957600080fd5b50610dfc60048036036020811015610dd057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613353565b005b348015610e0a57600080fd5b50610e5760048036036040811015610e2157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613372565b604051808215151515815260200191505060405180910390f35b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f075780601f10610edc57610100808354040283529160200191610f07565b820191906000526020600020905b815481529060010190602001808311610eea57829003601f168201915b505050505081565b60008060149054906101000a900460ff16151515610f2c57600080fd5b81600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600061102661266d565b151561103157600080fd5b8373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156110d457600080fd5b505af11580156110e8573d6000803e3d6000fd5b505050506040513d60208110156110fe57600080fd5b810190808051906020019092919050505050600190509392505050565b6000600454905090565b60008060149054906101000a900460ff1615151561114257600080fd5b83600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561119c57600080fd5b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156111f9576111f7856135c6565b505b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561123557600080fd5b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054831115151561128357600080fd5b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054831115151561130e57600080fd5b61136083600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461371090919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113f583600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461373290919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114c783600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461371090919063ffffffff16565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b601281565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156115fa57600080fd5b61168982600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461373290919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6117fc61266d565b151561180757600080fd5b600060149054906101000a900460ff16151561182257600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b600061187461266d565b151561187f57600080fd5b6118948260045461373290919063ffffffff16565b6004819055506118ec82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461373290919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60006119a961266d565b15156119b457600080fd5b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611a0257600080fd5b6000339050611a5983600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461371090919063ffffffff16565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ab18360045461371090919063ffffffff16565b6004819055508073ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5846040518082815260200191505060405180910390a26001915050919050565b600060149054906101000a900460ff1681565b60008060009050600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611c4c5760008090505b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050811015611c4a57611c3b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515611c1a57fe5b9060005260206000209060040201600301548361373290919063ffffffff16565b91508080600101915050611b81565b505b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401915050919050565b611c9e61266d565b1515611ca957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000611d7261266d565b1515611d7d57600080fd5b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611dd557600080fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fca5069937e68fd197927055037f59d7c90bf75ac104e6e375539ef480c3ad6ee60405160405180910390a260019050919050565b6000611e8361266d565b1515611e8e57600080fd5b84600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611edc57600080fd5b6000831415611eea57600192505b611f3c85600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461371090919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020608060405190810160405280868152602001858152602001611ffc85611fee60648b61375390919063ffffffff16565b61377d90919063ffffffff16565b81526020018781525090806001815401808255809150509060018203906000526020600020906004020160009091929091909150600082015181600001556020820151816001015560408201518160020155606082015181600301555050506001600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508573ffffffffffffffffffffffffffffffffffffffff167f625fed9875dada8643f2418b838ae0bc78d9a148a18eee4ee1979ff0f3f5d427866040518082815260200191505060405180910390a26001905095945050505050565b600061211861266d565b151561212357600080fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561217b57600080fd5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050821015156121cb57600080fd5b6000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110151561221957fe5b90600052602060002090600402019050600081600301549050600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110151561227e57fe5b90600052602060002090600402016000808201600090556001820160009055600282016000905560038201600090555050600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206123446001600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905061371090919063ffffffff16565b81548110151561235057fe5b9060005260206000209060040201600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020858154811015156123aa57fe5b9060005260206000209060040201600082015481600001556001820154816001015560028201548160020155600382015481600301559050506001600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208181805490500391508161243891906140a6565b506000600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905014156124dd576000600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8473ffffffffffffffffffffffffffffffffffffffff167f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f1826040518082815260200191505060405180910390a261257d81600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461373290919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060019250505092915050565b6125d461266d565b15156125df57600080fd5b600060149054906101000a900460ff161515156125fb57600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b60028054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561275a5780601f1061272f5761010080835404028352916020019161275a565b820191906000526020600020905b81548152906001019060200180831161273d57829003601f168201915b505050505081565b600042905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156127a757600080fd5b61283682600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461371090919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60008060149054906101000a900460ff161515156129be57600080fd5b33600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515612a1857600080fd5b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612a7557612a73336135c6565b505b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515612ab157600080fd5b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548311151515612aff57600080fd5b612b5183600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461371090919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612be683600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461373290919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191505092915050565b6000612ca361266d565b1515612cae57600080fd5b612cb88686613372565b50612cc68686868686611e79565b506001905095945050505050565b600080600080600080600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612f4857600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002089815481101515612e0b57fe5b906000526020600020906004020160030154600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208a815481101515612e6957fe5b906000526020600020906004020160000154600960008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208b815481101515612ec757fe5b906000526020600020906004020160010154600960008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208c815481101515612f2557fe5b906000526020600020906004020160020154955095509550955095509550612ff7565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490506000806000808393508292508191508090509550955095509550955095505b9295509295509295565b600061300c846137bb565b151561301757600080fd5b60008490506130268585610f0f565b15613191578073ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338630876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015613120578082015181840152602081019050613105565b50505050905090810190601f16801561314d5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561316f57600080fd5b505af1158015613183573d6000803e3d6000fd5b505050506001915050613193565b505b9392505050565b60076020528060005260406000206000915054906101000a900460ff1681565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061324b61266d565b151561325657600080fd5b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156132af57600080fd5b6001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167faf85b60d26151edd11443b704d424da6c43d0468f2235ebae3d1904dbc32304960405160405180910390a260019050919050565b61335b61266d565b151561336657600080fd5b61336f816137ce565b50565b600061337c61266d565b151561338757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156133c357600080fd5b600560006133cf612644565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561341857600080fd5b6134718260056000613428612644565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461371090919063ffffffff16565b6005600061347d612644565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061350d82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461373290919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff1661356f612644565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600080600090505b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156137055760001515600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141561367b57600191505061370b565b42600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811015156136c857fe5b9060005260206000209060040201600001541115156136f8576136eb83826138c8565b156136f7576001810390505b5b80806001019150506135ce565b50600190505b919050565b600082821115151561372157600080fd5b600082840390508091505092915050565b600080828401905083811015151561374957600080fd5b8091505092915050565b6000808211151561376357600080fd5b6000828481151561377057fe5b0490508091505092915050565b60008083141561379057600090506137b5565b600082840290508284828115156137a357fe5b041415156137b057600080fd5b809150505b92915050565b600080823b905060008111915050919050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561380a57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561392257600080fd5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508210151561397257600080fd5b6000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838154811015156139c057fe5b9060005260206000209060040201905060008160020154905060006139f283600001544261371090919063ffffffff16565b90506000613a0d84600101548361375390919063ffffffff16565b9050613a38613a2985600201548361377d90919063ffffffff16565b8461373290919063ffffffff16565b9250836003015483101515613de95783600301549250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002086815481101515613a9a57fe5b90600052602060002090600402016000808201600090556001820160009055600282016000905560038201600090555050600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020613b606001600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905061371090919063ffffffff16565b815481101515613b6c57fe5b9060005260206000209060040201600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002087815481101515613bc657fe5b9060005260206000209060040201600082015481600001556001820154816001015560028201548160020155600382015481600301559050506001600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081818054905003915081613c5491906140a6565b506000600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490501415613cf9576000600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8673ffffffffffffffffffffffffffffffffffffffff167f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f1846040518082815260200191505060405180910390a2613d9983600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461373290919063ffffffff16565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060019450505050506140a0565b613e82613e168560010154613e0860018561373290919063ffffffff16565b61377d90919063ffffffff16565b600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002088815481101515613e6257fe5b90600052602060002090600402016000015461373290919063ffffffff16565b600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002087815481101515613ece57fe5b906000526020600020906004020160000181905550613f5383600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002088815481101515613f3357fe5b90600052602060002090600402016003015461371090919063ffffffff16565b600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002087815481101515613f9f57fe5b9060005260206000209060040201600301819055508673ffffffffffffffffffffffffffffffffffffffff167f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f1846040518082815260200191505060405180910390a261405483600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461373290919063ffffffff16565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060009450505050505b92915050565b8154818355818111156140d3576004028160040283600052602060002091820191016140d291906140d8565b5b505050565b61411491905b8082111561411057600080820160009055600182016000905560028201600090556003820160009055506004016140de565b5090565b9056fea165627a7a7230582027c0fe6dfca2745df1f4c71934cd627b9bb3fc539239f551461b57baa015e1e10029
Deployed Bytecode
0x6080604052600436106101f5576000357c0100000000000000000000000000000000000000000000000000000000900480637eee288d1161011f578063c572652b116100b2578063dd62ed3e11610081578063dd62ed3e14610cbf578063f26c159f14610d44578063f2fde38b14610dad578063fb93210814610dfe576101f5565b8063c572652b14610a25578063c9e075c614610ab6578063cae9ca5114610b4c578063d051665014610c56576101f5565b806395d89b41116100ee57806395d89b41146108845780639b819d3814610914578063a457c2d71461093f578063a9059cbb146109b2576101f5565b80637eee288d146107745780638456cb59146107e75780638da5cb5b146107fe5780638f32d59b14610855576101f5565b80633f4ba83a1161019757806370a082311161016657806370a08231146105fe578063715018a614610663578063788649ea1461067a5780637c759d0d146106e3576101f5565b80633f4ba83a146104f257806340c10f191461050957806342966c681461057c5780635c975abb146105cf576101f5565b806318160ddd116101d357806318160ddd1461039057806323b872dd146103bb578063313ce5671461044e578063395093511461047f576101f5565b806306fdde03146101fa578063095ea7b31461028a578063125bfb66146102fd575b600080fd5b34801561020657600080fd5b5061020f610e71565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561024f578082015181840152602081019050610234565b50505050905090810190601f16801561027c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561029657600080fd5b506102e3600480360360408110156102ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f0f565b604051808215151515815260200191505060405180910390f35b34801561030957600080fd5b506103766004803603606081101561032057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061101c565b604051808215151515815260200191505060405180910390f35b34801561039c57600080fd5b506103a561111b565b6040518082815260200191505060405180910390f35b3480156103c757600080fd5b50610434600480360360608110156103de57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611125565b604051808215151515815260200191505060405180910390f35b34801561045a57600080fd5b506104636115b8565b604051808260ff1660ff16815260200191505060405180910390f35b34801561048b57600080fd5b506104d8600480360360408110156104a257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115bd565b604051808215151515815260200191505060405180910390f35b3480156104fe57600080fd5b506105076117f4565b005b34801561051557600080fd5b506105626004803603604081101561052c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061186a565b604051808215151515815260200191505060405180910390f35b34801561058857600080fd5b506105b56004803603602081101561059f57600080fd5b810190808035906020019092919050505061199f565b604051808215151515815260200191505060405180910390f35b3480156105db57600080fd5b506105e4611b0f565b604051808215151515815260200191505060405180910390f35b34801561060a57600080fd5b5061064d6004803603602081101561062157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b22565b6040518082815260200191505060405180910390f35b34801561066f57600080fd5b50610678611c96565b005b34801561068657600080fd5b506106c96004803603602081101561069d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d68565b604051808215151515815260200191505060405180910390f35b3480156106ef57600080fd5b5061075a600480360360a081101561070657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050611e79565b604051808215151515815260200191505060405180910390f35b34801561078057600080fd5b506107cd6004803603604081101561079757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061210e565b604051808215151515815260200191505060405180910390f35b3480156107f357600080fd5b506107fc6125cc565b005b34801561080a57600080fd5b50610813612644565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561086157600080fd5b5061086a61266d565b604051808215151515815260200191505060405180910390f35b34801561089057600080fd5b506108996126c4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108d95780820151818401526020810190506108be565b50505050905090810190601f1680156109065780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561092057600080fd5b50610929612762565b6040518082815260200191505060405180910390f35b34801561094b57600080fd5b506109986004803603604081101561096257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061276a565b604051808215151515815260200191505060405180910390f35b3480156109be57600080fd5b50610a0b600480360360408110156109d557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506129a1565b604051808215151515815260200191505060405180910390f35b348015610a3157600080fd5b50610a9c600480360360a0811015610a4857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050612c99565b604051808215151515815260200191505060405180910390f35b348015610ac257600080fd5b50610b0f60048036036040811015610ad957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612cd4565b6040518087151515158152602001868152602001858152602001848152602001838152602001828152602001965050505050505060405180910390f35b348015610b5857600080fd5b50610c3c60048036036060811015610b6f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610bb657600080fd5b820183602082011115610bc857600080fd5b80359060200191846001830284011164010000000083111715610bea57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050613001565b604051808215151515815260200191505060405180910390f35b348015610c6257600080fd5b50610ca560048036036020811015610c7957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061319a565b604051808215151515815260200191505060405180910390f35b348015610ccb57600080fd5b50610d2e60048036036040811015610ce257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506131ba565b6040518082815260200191505060405180910390f35b348015610d5057600080fd5b50610d9360048036036020811015610d6757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613241565b604051808215151515815260200191505060405180910390f35b348015610db957600080fd5b50610dfc60048036036020811015610dd057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613353565b005b348015610e0a57600080fd5b50610e5760048036036040811015610e2157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613372565b604051808215151515815260200191505060405180910390f35b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f075780601f10610edc57610100808354040283529160200191610f07565b820191906000526020600020905b815481529060010190602001808311610eea57829003601f168201915b505050505081565b60008060149054906101000a900460ff16151515610f2c57600080fd5b81600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600061102661266d565b151561103157600080fd5b8373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156110d457600080fd5b505af11580156110e8573d6000803e3d6000fd5b505050506040513d60208110156110fe57600080fd5b810190808051906020019092919050505050600190509392505050565b6000600454905090565b60008060149054906101000a900460ff1615151561114257600080fd5b83600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561119c57600080fd5b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156111f9576111f7856135c6565b505b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561123557600080fd5b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054831115151561128357600080fd5b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054831115151561130e57600080fd5b61136083600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461371090919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113f583600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461373290919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114c783600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461371090919063ffffffff16565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b601281565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156115fa57600080fd5b61168982600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461373290919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6117fc61266d565b151561180757600080fd5b600060149054906101000a900460ff16151561182257600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b600061187461266d565b151561187f57600080fd5b6118948260045461373290919063ffffffff16565b6004819055506118ec82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461373290919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60006119a961266d565b15156119b457600080fd5b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611a0257600080fd5b6000339050611a5983600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461371090919063ffffffff16565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ab18360045461371090919063ffffffff16565b6004819055508073ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5846040518082815260200191505060405180910390a26001915050919050565b600060149054906101000a900460ff1681565b60008060009050600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611c4c5760008090505b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050811015611c4a57611c3b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515611c1a57fe5b9060005260206000209060040201600301548361373290919063ffffffff16565b91508080600101915050611b81565b505b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401915050919050565b611c9e61266d565b1515611ca957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000611d7261266d565b1515611d7d57600080fd5b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611dd557600080fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fca5069937e68fd197927055037f59d7c90bf75ac104e6e375539ef480c3ad6ee60405160405180910390a260019050919050565b6000611e8361266d565b1515611e8e57600080fd5b84600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611edc57600080fd5b6000831415611eea57600192505b611f3c85600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461371090919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020608060405190810160405280868152602001858152602001611ffc85611fee60648b61375390919063ffffffff16565b61377d90919063ffffffff16565b81526020018781525090806001815401808255809150509060018203906000526020600020906004020160009091929091909150600082015181600001556020820151816001015560408201518160020155606082015181600301555050506001600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508573ffffffffffffffffffffffffffffffffffffffff167f625fed9875dada8643f2418b838ae0bc78d9a148a18eee4ee1979ff0f3f5d427866040518082815260200191505060405180910390a26001905095945050505050565b600061211861266d565b151561212357600080fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561217b57600080fd5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050821015156121cb57600080fd5b6000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110151561221957fe5b90600052602060002090600402019050600081600301549050600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110151561227e57fe5b90600052602060002090600402016000808201600090556001820160009055600282016000905560038201600090555050600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206123446001600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905061371090919063ffffffff16565b81548110151561235057fe5b9060005260206000209060040201600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020858154811015156123aa57fe5b9060005260206000209060040201600082015481600001556001820154816001015560028201548160020155600382015481600301559050506001600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208181805490500391508161243891906140a6565b506000600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905014156124dd576000600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8473ffffffffffffffffffffffffffffffffffffffff167f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f1826040518082815260200191505060405180910390a261257d81600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461373290919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060019250505092915050565b6125d461266d565b15156125df57600080fd5b600060149054906101000a900460ff161515156125fb57600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b60028054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561275a5780601f1061272f5761010080835404028352916020019161275a565b820191906000526020600020905b81548152906001019060200180831161273d57829003601f168201915b505050505081565b600042905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156127a757600080fd5b61283682600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461371090919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60008060149054906101000a900460ff161515156129be57600080fd5b33600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515612a1857600080fd5b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612a7557612a73336135c6565b505b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515612ab157600080fd5b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548311151515612aff57600080fd5b612b5183600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461371090919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612be683600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461373290919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191505092915050565b6000612ca361266d565b1515612cae57600080fd5b612cb88686613372565b50612cc68686868686611e79565b506001905095945050505050565b600080600080600080600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612f4857600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002089815481101515612e0b57fe5b906000526020600020906004020160030154600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208a815481101515612e6957fe5b906000526020600020906004020160000154600960008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208b815481101515612ec757fe5b906000526020600020906004020160010154600960008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208c815481101515612f2557fe5b906000526020600020906004020160020154955095509550955095509550612ff7565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490506000806000808393508292508191508090509550955095509550955095505b9295509295509295565b600061300c846137bb565b151561301757600080fd5b60008490506130268585610f0f565b15613191578073ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338630876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015613120578082015181840152602081019050613105565b50505050905090810190601f16801561314d5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561316f57600080fd5b505af1158015613183573d6000803e3d6000fd5b505050506001915050613193565b505b9392505050565b60076020528060005260406000206000915054906101000a900460ff1681565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061324b61266d565b151561325657600080fd5b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156132af57600080fd5b6001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167faf85b60d26151edd11443b704d424da6c43d0468f2235ebae3d1904dbc32304960405160405180910390a260019050919050565b61335b61266d565b151561336657600080fd5b61336f816137ce565b50565b600061337c61266d565b151561338757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156133c357600080fd5b600560006133cf612644565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561341857600080fd5b6134718260056000613428612644565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461371090919063ffffffff16565b6005600061347d612644565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061350d82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461373290919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff1661356f612644565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600080600090505b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156137055760001515600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141561367b57600191505061370b565b42600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811015156136c857fe5b9060005260206000209060040201600001541115156136f8576136eb83826138c8565b156136f7576001810390505b5b80806001019150506135ce565b50600190505b919050565b600082821115151561372157600080fd5b600082840390508091505092915050565b600080828401905083811015151561374957600080fd5b8091505092915050565b6000808211151561376357600080fd5b6000828481151561377057fe5b0490508091505092915050565b60008083141561379057600090506137b5565b600082840290508284828115156137a357fe5b041415156137b057600080fd5b809150505b92915050565b600080823b905060008111915050919050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561380a57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561392257600080fd5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508210151561397257600080fd5b6000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838154811015156139c057fe5b9060005260206000209060040201905060008160020154905060006139f283600001544261371090919063ffffffff16565b90506000613a0d84600101548361375390919063ffffffff16565b9050613a38613a2985600201548361377d90919063ffffffff16565b8461373290919063ffffffff16565b9250836003015483101515613de95783600301549250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002086815481101515613a9a57fe5b90600052602060002090600402016000808201600090556001820160009055600282016000905560038201600090555050600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020613b606001600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905061371090919063ffffffff16565b815481101515613b6c57fe5b9060005260206000209060040201600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002087815481101515613bc657fe5b9060005260206000209060040201600082015481600001556001820154816001015560028201548160020155600382015481600301559050506001600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081818054905003915081613c5491906140a6565b506000600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490501415613cf9576000600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8673ffffffffffffffffffffffffffffffffffffffff167f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f1846040518082815260200191505060405180910390a2613d9983600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461373290919063ffffffff16565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060019450505050506140a0565b613e82613e168560010154613e0860018561373290919063ffffffff16565b61377d90919063ffffffff16565b600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002088815481101515613e6257fe5b90600052602060002090600402016000015461373290919063ffffffff16565b600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002087815481101515613ece57fe5b906000526020600020906004020160000181905550613f5383600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002088815481101515613f3357fe5b90600052602060002090600402016003015461371090919063ffffffff16565b600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002087815481101515613f9f57fe5b9060005260206000209060040201600301819055508673ffffffffffffffffffffffffffffffffffffffff167f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f1846040518082815260200191505060405180910390a261405483600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461373290919063ffffffff16565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060009450505050505b92915050565b8154818355818111156140d3576004028160040283600052602060002091820191016140d291906140d8565b5b505050565b61411491905b8082111561411057600080820160009055600182016000905560028201600090556003820160009055506004016140de565b5090565b9056fea165627a7a7230582027c0fe6dfca2745df1f4c71934cd627b9bb3fc539239f551461b57baa015e1e10029
Deployed Bytecode Sourcemap
5936:10788:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7388:8;;;6202:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6202:18:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6202:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9066:220;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9066:220:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9066:220:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13683:163;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13683:163:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13683:163:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7412:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7412:91:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8466:592;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8466:592:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8466:592:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6254:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6254:34:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9687:322;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9687:322:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9687:322:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5596:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5596:105:0;;;:::i;:::-;;14194:260;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14194:260:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14194:260:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13854:332;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13854:332:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13854:332:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5294:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5294:26:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8062:396;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8062:396:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8062:396:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2389:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2389:140:0;;;:::i;:::-;;12023:206;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12023:206:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12023:206:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10502:581;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10502:581:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;10502:581:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11091:714;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11091:714:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11091:714:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5485:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5485:103:0;;;:::i;:::-;;1599:79;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1599:79:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1934:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1934:92:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6227:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6227:20:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6227:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12237:80;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12237:80:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10017:333;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10017:333:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10017:333:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7511:543;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7511:543:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7511:543:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13382:293;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13382:293:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;13382:293:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12325:686;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12325:686:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12325:686:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9294:385;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9294:385:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9294:385:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;9294:385:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9294:385:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;9294:385:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;9294:385:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6468:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6468:38:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6468:38:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10358:136;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10358:136:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10358:136:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11813:202;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11813:202:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11813:202:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2706:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2706:109:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2706:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;13019:355;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13019:355:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13019:355:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6202:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9066:220::-;9147:4;5374:6;;;;;;;;;;;5373:7;5365:16;;;;;;;;9196:6;9164:7;:19;9172:10;9164:19;;;;;;;;;;;;;;;:29;9184:8;9164:29;;;;;;;;;;;;;;;:38;;;;9239:8;9218:38;;9227:10;9218:38;;;9249:6;9218:38;;;;;;;;;;;;;;;;;;9274:4;9267:11;;9066:220;;;;:::o;13683:163::-;13772:4;1811:9;:7;:9::i;:::-;1803:18;;;;;;;;13789:5;:14;;;13804:3;13809:6;13789:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13789:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13789:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13789:27:0;;;;;;;;;;;;;;;;;13834:4;13827:11;;13683:163;;;;;:::o;7412:91::-;7456:7;7483:12;;7476:19;;7412:91;:::o;8466:592::-;8578:4;5374:6;;;;;;;;;;;5373:7;5365:16;;;;;;;;8563:5;6992:6;:15;6999:7;6992:15;;;;;;;;;;;;;;;;;;;;;;;;;6991:16;6983:25;;;;;;;;8599:5;:12;8605:5;8599:12;;;;;;;;;;;;;;;;;;;;;;;;;8595:62;;;8628:17;8639:5;8628:10;:17::i;:::-;;8595:62;8690:1;8675:17;;:3;:17;;;;8667:26;;;;;;;;8722:8;:15;8731:5;8722:15;;;;;;;;;;;;;;;;8712:6;:25;;8704:34;;;;;;;;8767:7;:14;8775:5;8767:14;;;;;;;;;;;;;;;:26;8782:10;8767:26;;;;;;;;;;;;;;;;8757:6;:36;;8749:45;;;;;;;;8827:27;8847:6;8827:8;:15;8836:5;8827:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;8809:8;:15;8818:5;8809:15;;;;;;;;;;;;;;;:45;;;;8881:25;8899:6;8881:8;:13;8890:3;8881:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;8865:8;:13;8874:3;8865:13;;;;;;;;;;;;;;;:41;;;;8946:38;8977:6;8946:7;:14;8954:5;8946:14;;;;;;;;;;;;;;;:26;8961:10;8946:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;8917:7;:14;8925:5;8917:14;;;;;;;;;;;;;;;:26;8932:10;8917:26;;;;;;;;;;;;;;;:67;;;;9016:3;9000:28;;9009:5;9000:28;;;9021:6;9000:28;;;;;;;;;;;;;;;;;;9046:4;9039:11;;5392:1;8466:592;;;;;:::o;6254:34::-;6286:2;6254:34;:::o;9687:322::-;9767:4;9811:1;9792:21;;:7;:21;;;;9784:30;;;;;;;;9857:44;9890:10;9857:7;:19;9865:10;9857:19;;;;;;;;;;;;;;;:28;9877:7;9857:28;;;;;;;;;;;;;;;;:32;;:44;;;;:::i;:::-;9825:7;:19;9833:10;9825:19;;;;;;;;;;;;;;;:28;9845:7;9825:28;;;;;;;;;;;;;;;:77;;;;9941:7;9920:59;;9929:10;9920:59;;;9950:7;:19;9958:10;9950:19;;;;;;;;;;;;;;;:28;9970:7;9950:28;;;;;;;;;;;;;;;;9920:59;;;;;;;;;;;;;;;;;;9997:4;9990:11;;9687:322;;;;:::o;5596:105::-;1811:9;:7;:9::i;:::-;1803:18;;;;;;;;5450:6;;;;;;;;;;;5442:15;;;;;;;;5663:5;5654:6;;:14;;;;;;;;;;;;;;;;;;5684:9;;;;;;;;;;5596:105::o;14194:260::-;14264:4;1811:9;:7;:9::i;:::-;1803:18;;;;;;;;14296:25;14313:7;14296:12;;:16;;:25;;;;:::i;:::-;14281:12;:40;;;;14348:26;14366:7;14348:8;:13;14357:3;14348:13;;;;;;;;;;;;;;;;:17;;:26;;;;:::i;:::-;14332:8;:13;14341:3;14332:13;;;;;;;;;;;;;;;:42;;;;14411:3;14390:34;;14407:1;14390:34;;;14416:7;14390:34;;;;;;;;;;;;;;;;;;14442:4;14435:11;;14194:260;;;;:::o;13854:332::-;13910:12;1811:9;:7;:9::i;:::-;1803:18;;;;;;;;13953:8;:20;13962:10;13953:20;;;;;;;;;;;;;;;;13943:6;:30;;13935:39;;;;;;;;13985:14;14002:10;13985:27;;14042:28;14063:6;14042:8;:16;14051:6;14042:16;;;;;;;;;;;;;;;;:20;;:28;;;;:::i;:::-;14023:8;:16;14032:6;14023:16;;;;;;;;;;;;;;;:47;;;;14096:24;14113:6;14096:12;;:16;;:24;;;;:::i;:::-;14081:12;:39;;;;14141:6;14136:20;;;14149:6;14136:20;;;;;;;;;;;;;;;;;;14174:4;14167:11;;;13854:332;;;:::o;5294:26::-;;;;;;;;;;;;;:::o;8062:396::-;8119:15;8147:21;8171:1;8147:25;;8186:5;:14;8192:7;8186:14;;;;;;;;;;;;;;;;;;;;;;;;;8183:217;;;8221:11;8235:1;8221:15;;8217:172;8244:10;:19;8255:7;8244:19;;;;;;;;;;;;;;;:26;;;;8238:3;:32;8217:172;;;8316:57;8334:10;:19;8345:7;8334:19;;;;;;;;;;;;;;;8354:3;8334:24;;;;;;;;;;;;;;;;;;;;:38;;;8316:13;:17;;:57;;;;:::i;:::-;8300:73;;8273:5;;;;;;;8217:172;;;;8183:217;8437:13;8417:8;:17;8426:7;8417:17;;;;;;;;;;;;;;;;:33;8410:40;;;8062:396;;;:::o;2389:140::-;1811:9;:7;:9::i;:::-;1803:18;;;;;;;;2488:1;2451:40;;2472:6;;;;;;;;;;;2451:40;;;;;;;;;;;;2519:1;2502:6;;:19;;;;;;;;;;;;;;;;;;2389:140::o;12023:206::-;12091:4;1811:9;:7;:9::i;:::-;1803:18;;;;;;;;12116:6;:15;12123:7;12116:15;;;;;;;;;;;;;;;;;;;;;;;;;12108:24;;;;;;;;12161:5;12143:6;:15;12150:7;12143:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;12191:7;12182:17;;;;;;;;;;;;12217:4;12210:11;;12023:206;;;:::o;10502:581::-;10643:4;1811:9;:7;:9::i;:::-;1803:18;;;;;;;;10689:7;10668:8;:17;10677:7;10668:17;;;;;;;;;;;;;;;;:28;;10660:37;;;;;;;;10725:1;10711:12;:15;10708:64;;;10759:1;10744:16;;10708:64;10802:30;10824:7;10802:8;:17;10811:7;10802:17;;;;;;;;;;;;;;;;:21;;:30;;;;:::i;:::-;10782:8;:17;10791:7;10782:17;;;;;;;;;;;;;;;:50;;;;10843:10;:19;10854:7;10843:19;;;;;;;;;;;;;;;10882:84;;;;;;;;;10893:13;10882:84;;;;10908:12;10882:84;;;;10922:34;10943:12;10922:16;10934:3;10922:7;:11;;:16;;;;:::i;:::-;:20;;:34;;;;:::i;:::-;10882:84;;;;10958:7;10882:84;;;10843:134;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;10843:134:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11007:4;10990:5;:14;10996:7;10990:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11034:7;11029:22;;;11043:7;11029:22;;;;;;;;;;;;;;;;;;11071:4;11064:11;;10502:581;;;;;;;:::o;11091:714::-;11164:4;1811:9;:7;:9::i;:::-;1803:18;;;;;;;;11189:5;:14;11195:7;11189:14;;;;;;;;;;;;;;;;;;;;;;;;;11181:23;;;;;;;;11230:10;:19;11241:7;11230:19;;;;;;;;;;;;;;;:26;;;;11223:4;:33;11215:42;;;;;;;;11268:29;11300:10;:19;11311:7;11300:19;;;;;;;;;;;;;;;11320:4;11300:25;;;;;;;;;;;;;;;;;;;;11268:57;;11336:21;11360:10;:24;;;11336:48;;11404:10;:19;11415:7;11404:19;;;;;;;;;;;;;;;11424:4;11404:25;;;;;;;;;;;;;;;;;;;;;11397:32;;;;;;;;;;;;;;;;;;;;;;;;;;11468:10;:19;11479:7;11468:19;;;;;;;;;;;;;;;11488:33;11519:1;11488:10;:19;11499:7;11488:19;;;;;;;;;;;;;;;:26;;;;:30;;:33;;;;:::i;:::-;11468:54;;;;;;;;;;;;;;;;;;;;11440:10;:19;11451:7;11440:19;;;;;;;;;;;;;;;11460:4;11440:25;;;;;;;;;;;;;;;;;;;;:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11562:1;11533:10;:19;11544:7;11533:19;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;:::i;:::-;;11607:1;11577:10;:19;11588:7;11577:19;;;;;;;;;;;;;;;:26;;;;:31;11574:85;;;11642:5;11625;:14;11631:7;11625:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;11574:85;11683:7;11676:30;;;11692:13;11676:30;;;;;;;;;;;;;;;;;;11737:36;11759:13;11737:8;:17;11746:7;11737:17;;;;;;;;;;;;;;;;:21;;:36;;;;:::i;:::-;11717:8;:17;11726:7;11717:17;;;;;;;;;;;;;;;:56;;;;11793:4;11786:11;;;;11091:714;;;;:::o;5485:103::-;1811:9;:7;:9::i;:::-;1803:18;;;;;;;;5374:6;;;;;;;;;;;5373:7;5365:16;;;;;;;;5553:4;5544:6;;:13;;;;;;;;;;;;;;;;;;5573:7;;;;;;;;;;5485:103::o;1599:79::-;1637:7;1664:6;;;;;;;;;;;1657:13;;1599:79;:::o;1934:92::-;1974:4;2012:6;;;;;;;;;;;1998:20;;:10;:20;;;1991:27;;1934:92;:::o;6227:20::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12237:80::-;12279:7;12306:3;12299:10;;12237:80;:::o;10017:333::-;10103:4;10147:1;10128:21;;:7;:21;;;;10120:30;;;;;;;;10193:49;10226:15;10193:7;:19;10201:10;10193:19;;;;;;;;;;;;;;;:28;10213:7;10193:28;;;;;;;;;;;;;;;;:32;;:49;;;;:::i;:::-;10161:7;:19;10169:10;10161:19;;;;;;;;;;;;;;;:28;10181:7;10161:28;;;;;;;;;;;;;;;:82;;;;10282:7;10261:59;;10270:10;10261:59;;;10291:7;:19;10299:10;10291:19;;;;;;;;;;;;;;;:28;10311:7;10291:28;;;;;;;;;;;;;;;;10261:59;;;;;;;;;;;;;;;;;;10338:4;10331:11;;10017:333;;;;:::o;7511:543::-;7610:4;5374:6;;;;;;;;;;;5373:7;5365:16;;;;;;;;7589:10;6992:6;:15;6999:7;6992:15;;;;;;;;;;;;;;;;;;;;;;;;;6991:16;6983:25;;;;;;;;7631:5;:17;7637:10;7631:17;;;;;;;;;;;;;;;;;;;;;;;;;7627:72;;;7665:22;7676:10;7665;:22::i;:::-;;7627:72;7732:1;7717:17;;:3;:17;;;;7709:26;;;;;;;;7764:8;:20;7773:10;7764:20;;;;;;;;;;;;;;;;7754:6;:30;;7746:39;;;;;;;;7891:32;7916:6;7891:8;:20;7900:10;7891:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;7868:8;:20;7877:10;7868:20;;;;;;;;;;;;;;;:55;;;;7950:25;7968:6;7950:8;:13;7959:3;7950:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;7934:8;:13;7943:3;7934:13;;;;;;;;;;;;;;;:41;;;;8012:3;7991:33;;8000:10;7991:33;;;8017:6;7991:33;;;;;;;;;;;;;;;;;;8042:4;8035:11;;5392:1;7511:543;;;;:::o;13382:293::-;13534:4;1811:9;:7;:9::i;:::-;1803:18;;;;;;;;13551:23;13562:3;13567:6;13551:10;:23::i;:::-;;13585:60;13590:3;13595:6;13603:13;13618:12;13632;13585:4;:60::i;:::-;;13663:4;13656:11;;13382:293;;;;;;;:::o;12325:686::-;12400:4;12406:7;12415;12424;12433;12442;12465:5;:14;12471:7;12465:14;;;;;;;;;;;;;;;;;;;;;;;;;12462:542;;;12522:5;:14;12528:7;12522:14;;;;;;;;;;;;;;;;;;;;;;;;;12555:10;:19;12566:7;12555:19;;;;;;;;;;;;;;;:26;;;;12600:10;:19;12611:7;12600:19;;;;;;;;;;;;;;;12620:4;12600:25;;;;;;;;;;;;;;;;;;;;:39;;;12658:10;:19;12669:7;12658:19;;;;;;;;;;;;;;;12678:4;12658:25;;;;;;;;;;;;;;;;;;;;:37;;;12714:10;:19;12725:7;12714:19;;;;;;;;;;;;;;;12734:4;12714:25;;;;;;;;;;;;;;;;;;;;:37;;;12770:10;:19;12781:7;12770:19;;;;;;;;;;;;;;;12790:4;12770:25;;;;;;;;;;;;;;;;;;;;:46;;;12496:335;;;;;;;;;;;;;;12462:542;12890:5;:14;12896:7;12890:14;;;;;;;;;;;;;;;;;;;;;;;;;12923:10;:19;12934:7;12923:19;;;;;;;;;;;;;;;:26;;;;12968:1;12970;12972;12974;12864:126;;;;;;;;;;;;;;;;;;;;;;;;12325:686;;;;;;;;;:::o;9294:385::-;9393:12;9426:20;9437:8;9426:10;:20::i;:::-;9418:29;;;;;;;;9458:22;9498:8;9458:49;;9522:25;9530:8;9540:6;9522:7;:25::i;:::-;9518:154;;;9564:7;:23;;;9588:10;9600:6;9616:4;9623:10;9564:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;9564:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9564:70:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9564:70:0;;;;9656:4;9649:11;;;;;9518:154;9294:385;;;;;;;:::o;6468:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;10358:136::-;10433:7;10460;:16;10468:7;10460:16;;;;;;;;;;;;;;;:26;10477:8;10460:26;;;;;;;;;;;;;;;;10453:33;;10358:136;;;;:::o;11813:202::-;11879:4;1811:9;:7;:9::i;:::-;1803:18;;;;;;;;11905:6;:15;11912:7;11905:15;;;;;;;;;;;;;;;;;;;;;;;;;11904:16;11896:25;;;;;;;;11950:4;11932:6;:15;11939:7;11932:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;11977:7;11970:15;;;;;;;;;;;;12003:4;11996:11;;11813:202;;;:::o;2706:109::-;1811:9;:7;:9::i;:::-;1803:18;;;;;;;;2779:28;2798:8;2779:18;:28::i;:::-;2706:109;:::o;13019:355::-;13094:4;1811:9;:7;:9::i;:::-;1803:18;;;;;;;;13134:1;13119:17;;:3;:17;;;;13111:26;;;;;;;;13166:8;:17;13175:7;:5;:7::i;:::-;13166:17;;;;;;;;;;;;;;;;13156:6;:27;;13148:36;;;;;;;;13217:29;13239:6;13217:8;:17;13226:7;:5;:7::i;:::-;13217:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;13197:8;:17;13206:7;:5;:7::i;:::-;13197:17;;;;;;;;;;;;;;;:49;;;;13273:25;13291:6;13273:8;:13;13282:3;13273:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;13257:8;:13;13266:3;13257:13;;;;;;;;;;;;;;;:41;;;;13332:3;13314:30;;13323:7;:5;:7::i;:::-;13314:30;;;13337:6;13314:30;;;;;;;;;;;;;;;;;;13362:4;13355:11;;13019:355;;;;:::o;14632:525::-;14687:4;14710:11;14723:1;14710:14;;14706:422;14732:10;:19;14743:7;14732:19;;;;;;;;;;;;;;;:26;;;;14726:3;:32;14706:422;;;14803:5;14787:21;;:5;:14;14793:7;14787:14;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;14784:72;;;14836:4;14829:11;;;;;14784:72;14914:3;14874:10;:19;14885:7;14874:19;;;;;;;;;;;;;;;14894:3;14874:24;;;;;;;;;;;;;;;;;;;;:36;;;:43;;14870:247;;;15020:29;15036:7;15045:3;15020:15;:29::i;:::-;15016:86;;;15081:1;15075:7;;;;15016:86;14870:247;14761:5;;;;;;;14706:422;;;;15145:4;15138:11;;14632:525;;;;:::o;4471:150::-;4529:7;4562:1;4557;:6;;4549:15;;;;;;;;4575:9;4591:1;4587;:5;4575:17;;4612:1;4605:8;;;4471:150;;;;:::o;4709:::-;4767:7;4787:9;4803:1;4799;:5;4787:17;;4828:1;4823;:6;;4815:15;;;;;;;;4850:1;4843:8;;;4709:150;;;;:::o;4030:303::-;4088:7;4187:1;4183;:5;4175:14;;;;;;;;4200:9;4216:1;4212;:5;;;;;;;;4200:17;;4324:1;4317:8;;;4030:303;;;;:::o;3462:433::-;3520:7;3769:1;3764;:6;3760:47;;;3794:1;3787:8;;;;3760:47;3819:9;3835:1;3831;:5;3819:17;;3864:1;3859;3855;:5;;;;;;;;:10;3847:19;;;;;;;;3886:1;3879:8;;;3462:433;;;;;:::o;14462:162::-;14519:4;14536:9;14585:4;14573:17;14565:25;;14615:1;14608:4;:8;14601:15;;;14462:162;;;:::o;2965:187::-;3059:1;3039:22;;:8;:22;;;;3031:31;;;;;;;;3107:8;3078:38;;3099:6;;;;;;;;;;;3078:38;;;;;;;;;;;;3136:8;3127:6;;:17;;;;;;;;;;;;;;;;;;2965:187;:::o;15165:1556::-;15238:4;15263:5;:14;15269:7;15263:14;;;;;;;;;;;;;;;;;;;;;;;;;15255:23;;;;;;;;15304:10;:19;15315:7;15304:19;;;;;;;;;;;;;;;:26;;;;15297:4;:33;15289:42;;;;;;;;15414:23;15440:10;:19;15451:7;15440:19;;;;;;;;;;;;;;;15460:4;15440:25;;;;;;;;;;;;;;;;;;;;15414:51;;15476:21;15500:4;:25;;;15476:49;;15536:17;15556:25;15564:4;:16;;;15556:3;:7;;:25;;;;:::i;:::-;15536:45;;15592:18;15613:31;15627:4;:16;;;15613:9;:13;;:31;;;;:::i;:::-;15592:52;;15671:62;15690:41;15705:4;:25;;;15690:10;:14;;:41;;;;:::i;:::-;15671:13;:17;;:62;;;;:::i;:::-;15655:78;;15766:4;:18;;;15749:13;:35;;15746:968;;;15817:4;:18;;;15801:34;;15859:10;:19;15870:7;15859:19;;;;;;;;;;;;;;;15879:4;15859:25;;;;;;;;;;;;;;;;;;;;;15852:32;;;;;;;;;;;;;;;;;;;;;;;;;;15927:10;:19;15938:7;15927:19;;;;;;;;;;;;;;;15947:33;15978:1;15947:10;:19;15958:7;15947:19;;;;;;;;;;;;;;;:26;;;;:30;;:33;;;;:::i;:::-;15927:54;;;;;;;;;;;;;;;;;;;;15899:10;:19;15910:7;15899:19;;;;;;;;;;;;;;;15919:4;15899:25;;;;;;;;;;;;;;;;;;;;:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16025:1;15996:10;:19;16007:7;15996:19;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;:::i;:::-;;16076:1;16046:10;:19;16057:7;16046:19;;;;;;;;;;;;;;;:26;;;;:31;16043:93;;;16115:5;16098;:14;16104:7;16098:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;16043:93;16162:7;16155:30;;;16171:13;16155:30;;;;;;;;;;;;;;;;;;16220:36;16242:13;16220:8;:17;16229:7;16220:17;;;;;;;;;;;;;;;;:21;;:36;;;;:::i;:::-;16200:8;:17;16209:7;16200:17;;;;;;;;;;;;;;;:56;;;;16278:4;16271:11;;;;;;;;15746:968;16355:84;16398:39;16420:4;:16;;;16398:17;16413:1;16398:10;:14;;:17;;;;:::i;:::-;:21;;:39;;;;:::i;:::-;16355:10;:19;16366:7;16355:19;;;;;;;;;;;;;;;16375:4;16355:25;;;;;;;;;;;;;;;;;;;;:37;;;:41;;:84;;;;:::i;:::-;16315:10;:19;16326:7;16315:19;;;;;;;;;;;;;;;16335:4;16315:25;;;;;;;;;;;;;;;;;;;;:37;;:124;;;;16496:58;16540:13;16496:10;:19;16507:7;16496:19;;;;;;;;;;;;;;;16516:4;16496:25;;;;;;;;;;;;;;;;;;;;:39;;;:43;;:58;;;;:::i;:::-;16454:10;:19;16465:7;16454:19;;;;;;;;;;;;;;;16474:4;16454:25;;;;;;;;;;;;;;;;;;;;:39;;:100;;;;16581:7;16574:30;;;16590:13;16574:30;;;;;;;;;;;;;;;;;;16639:36;16661:13;16639:8;:17;16648:7;16639:17;;;;;;;;;;;;;;;;:21;;:36;;;;:::i;:::-;16619:8;:17;16628:7;16619:17;;;;;;;;;;;;;;;:56;;;;16697:5;16690:12;;;;;;15165:1556;;;;;:::o;5936:10788::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
bzzr://27c0fe6dfca2745df1f4c71934cd627b9bb3fc539239f551461b57baa015e1e1
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.
Add Token to MetaMask (Web3)