ETH Price: $3,303.31 (+0.85%)
Gas: 4 Gwei

Token

Serval IT (SERV)
 

Overview

Max Total Supply

350,000,000 SERV

Holders

15

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
3,069,151.016894121860972756 SERV

Value
$0.00
0xba03eca6b692532648c4da21840fb9af578147a2
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
SERVToken

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-07-26
*/

//Official Website of ServalIT: https://servalit.com/
//New Website Under Construction: https://servalittoken.com/

pragma solidity ^0.4.24;

contract ERC20 {
	uint256 public totalSupply;

	function balanceOf(address who) public view returns (uint256 balance);

	function allowance(address owner, address spender) public view returns (uint256 remaining);

	function transfer(address to, uint256 value) public returns (bool success);

	function approve(address spender, uint256 value) public returns (bool success);

	function transferFrom(address from, address to, uint256 value) public returns (bool success);

	event Transfer(address indexed _from, address indexed _to, uint256 _value);

	event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}

library SafeMath {
	function sub(uint256 a, uint256 b) internal pure returns (uint256 c) {
		c = a - b;
		assert(b <= a && c <= a);
		return c;
	}

	function add(uint256 a, uint256 b) internal pure returns (uint256 c) {
		c = a + b;
		assert(c >= a && c>=b);
		return c;
	}
}

library SafeERC20 {
	function safeTransfer(ERC20 _token, address _to, uint256 _value) internal {
		require(_token.transfer(_to, _value));
	}
}

contract Owned {
	address public owner;

	constructor() public {
		owner = msg.sender;
	}

	modifier onlyOwner {
		require(msg.sender == owner,"O1- Owner only function");
		_;
	}

	function setOwner(address newOwner) onlyOwner public {
		owner = newOwner;
	}
}

contract Pausable is Owned {
	event Pause();
	event Unpause();

	bool public paused = false;

	modifier whenNotPaused() {
		require(!paused);
		_;
	}

	modifier whenPaused() {
		require(paused);
		_;
	}

	function pause() public onlyOwner whenNotPaused {
		paused = true;
		emit Pause();
	}

	function unpause() public onlyOwner whenPaused {
		paused = false;
		emit Unpause();
	}
}

contract SERVToken is Owned, Pausable, ERC20 {
	using SafeMath for uint256;
	using SafeERC20 for ERC20;

	mapping (address => uint256) public balances;
	mapping (address => mapping (address => uint256)) public allowed;
	mapping (address => bool) public frozenAccount;
	mapping (address => bool) public verifyPublisher;
	mapping (address => bool) public verifyWallet;

	struct fStruct { uint256 index; }
	mapping(string => fStruct) private fileHashes;
	string[] private fileIndex;

	string public constant name = "Serval IT";
	uint8 public constant decimals = 18;
	string public constant symbol = "SERV";
	uint256 public constant initialSupply = 350000000;

	uint256 public validationPrice = 7 * 10 ** uint(decimals);
	address public validationWallet = address(0);

	constructor() public {
		validationWallet = msg.sender;
		verifyWallet[msg.sender] = true;
		totalSupply = initialSupply * 10 ** uint(decimals);
		balances[msg.sender] = totalSupply;
		emit Transfer(address(0),owner,initialSupply);
	}

	function () public payable {
		revert();
	}

	function transfer(address _to, uint256 _value) public whenNotPaused returns (bool success) {
		require(_to != msg.sender,"T1- Recipient can not be the same as sender");
		require(_to != address(0),"T2- Please check the recipient address");
		require(balances[msg.sender] >= _value,"T3- The balance of sender is too low");
		require(!frozenAccount[msg.sender],"T4- The wallet of sender is frozen");
		require(!frozenAccount[_to],"T5- The wallet of recipient is frozen");

		balances[msg.sender] = balances[msg.sender].sub(_value);
		balances[_to] = balances[_to].add(_value);

		emit Transfer(msg.sender, _to, _value);

		return true;
	}

	function transferFrom(address _from, address _to, uint256 _value) public whenNotPaused returns (bool success) {
		require(_to != address(0),"TF1- Please check the recipient address");
		require(balances[_from] >= _value,"TF2- The balance of sender is too low");
		require(allowed[_from][msg.sender] >= _value,"TF3- The allowance of sender is too low");
		require(!frozenAccount[_from],"TF4- The wallet of sender is frozen");
		require(!frozenAccount[_to],"TF5- The wallet of recipient is frozen");

		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 balanceOf(address _owner) public view returns (uint256 balance) {
		return balances[_owner];
	}

	function approve(address _spender, uint256 _value) public whenNotPaused returns (bool success) {
		require((_value == 0) || (allowed[msg.sender][_spender] == 0),"A1- Reset allowance to 0 first");

		allowed[msg.sender][_spender] = _value;

		emit Approval(msg.sender, _spender, _value);

		return true;
	}

	function increaseApproval(address _spender, uint256 _addedValue) public whenNotPaused returns (bool) {
		allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);

		emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);

		return true;
	}

	function decreaseApproval(address _spender, uint256 _subtractedValue) public whenNotPaused returns (bool) {
		allowed[msg.sender][_spender] = allowed[msg.sender][_spender].sub(_subtractedValue);

		emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);

		return true;
	}

	function allowance(address _owner, address _spender) public view returns (uint256 remaining) {
		return allowed[_owner][_spender];
	}

	struct TKN { address sender; uint256 value; bytes data; bytes4 sig; }

	function tokenFallback(address _from, uint256 _value, bytes _data) public pure returns (bool) {
		TKN memory tkn;
		tkn.sender = _from;
		tkn.value = _value;
		tkn.data = _data;
		uint32 u = uint32(_data[3]) + (uint32(_data[2]) << 8) + (uint32(_data[1]) << 16) + (uint32(_data[0]) << 24);
		tkn.sig = bytes4(u);
		return true;
	}

	function transferToken(address tokenAddress, uint256 tokens) public onlyOwner {
		ERC20(tokenAddress).safeTransfer(owner,tokens);
	}

	function burn(uint256 _value) public onlyOwner returns (bool) {
		require(_value <= balances[msg.sender],"B1- The balance of burner is too low");

		balances[msg.sender] = balances[msg.sender].sub(_value);
		totalSupply = totalSupply.sub(_value);

		emit Burn(msg.sender, _value);

		emit Transfer(msg.sender, address(0), _value);

		return true;
	}

	function freeze(address _address, bool _state) public onlyOwner returns (bool) {
		frozenAccount[_address] = _state;

		emit Freeze(_address, _state);

		return true;
	}

	function validatePublisher(address Address, bool State, string Publisher) public onlyOwner returns (bool) {
		verifyPublisher[Address] = State;

		emit ValidatePublisher(Address,State,Publisher);

		return true;
	}

	function validateWallet(address Address, bool State, string Wallet) public onlyOwner returns (bool) {
		verifyWallet[Address] = State;

		emit ValidateWallet(Address,State,Wallet);

		return true;
	}

	function validateFile(address To, uint256 Payment, bytes Data, bool cStore, bool eLog) public whenNotPaused returns (bool) {
		require(Payment>=validationPrice,"V1- Insufficient payment provided");
		require(verifyPublisher[msg.sender],"V2- Unverified publisher address");
		require(!frozenAccount[msg.sender],"V3- The wallet of publisher is frozen");
		require(Data.length == 64,"V4- Invalid hash provided");

		if (!verifyWallet[To] || frozenAccount[To]) {
			To = validationWallet;
		}

		uint256 index = 0;
		string memory fileHash = string(Data);

		if (cStore) {
			if (fileIndex.length > 0) {
				require(fileHashes[fileHash].index == 0,"V5- This hash was previously validated");
			}

			fileHashes[fileHash].index = fileIndex.push(fileHash)-1;
			index = fileHashes[fileHash].index;
		}

		if (allowed[To][msg.sender] >= Payment) {
			allowed[To][msg.sender] = allowed[To][msg.sender].sub(Payment);
		} else {
			balances[msg.sender] = balances[msg.sender].sub(Payment);
			balances[To] = balances[To].add(Payment);
		}

		emit Transfer(msg.sender, To, Payment);

		if (eLog) {
			emit ValidateFile(index,fileHash);
		}

		return true;
	}

	function verifyFile(string fileHash) public view returns (bool) {
		if (fileIndex.length == 0) {
			return false;
		}

		bytes memory a = bytes(fileIndex[fileHashes[fileHash].index]);
		bytes memory b = bytes(fileHash);

		if (a.length != b.length) {
			return false;
		}

		for (uint256 i = 0; i < a.length; i ++) {
			if (a[i] != b[i]) {
				return false;
			}
		}

		return true;
	}

	function setPrice(uint256 newPrice) public onlyOwner {
		validationPrice = newPrice;
	}

	function setWallet(address newWallet) public onlyOwner {
		validationWallet = newWallet;
	}

	function listFiles(uint256 startAt, uint256 stopAt) onlyOwner public returns (bool) {
		if (fileIndex.length == 0) {
			return false;
		}

		require(startAt <= fileIndex.length-1,"L1- Please select a valid start");

		if (stopAt > 0) {
			require(stopAt > startAt && stopAt <= fileIndex.length-1,"L2- Please select a valid stop");
		} else {
			stopAt = fileIndex.length-1;
		}

		for (uint256 i = startAt; i <= stopAt; i++) {
			emit LogEvent(i,fileIndex[i]);
		}

		return true;
	}

	event Burn(address indexed burner, uint256 value);
	event Freeze(address target, bool frozen);

	event ValidateFile(uint256 index, string data);
	event ValidatePublisher(address indexed publisherAddress, bool state, string indexed publisherName);
	event ValidateWallet(address indexed walletAddress, bool state, string indexed walletName);

	event LogEvent(uint256 index, string data) anonymous;
}

Contract Security Audit

Contract ABI

[{"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":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transferToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"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":"startAt","type":"uint256"},{"name":"stopAt","type":"uint256"}],"name":"listFiles","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"verifyPublisher","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"initialSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"validationWallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","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":false,"inputs":[{"name":"newPrice","type":"uint256"}],"name":"setPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"validationPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"fileHash","type":"string"}],"name":"verifyFile","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"frozenAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"To","type":"address"},{"name":"Payment","type":"uint256"},{"name":"Data","type":"bytes"},{"name":"cStore","type":"bool"},{"name":"eLog","type":"bool"}],"name":"validateFile","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"},{"name":"_state","type":"bool"}],"name":"freeze","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"tokenFallback","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"Address","type":"address"},{"name":"State","type":"bool"},{"name":"Publisher","type":"string"}],"name":"validatePublisher","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newWallet","type":"address"}],"name":"setWallet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"verifyWallet","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"Address","type":"address"},{"name":"State","type":"bool"},{"name":"Wallet","type":"string"}],"name":"validateWallet","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":"burner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"target","type":"address"},{"indexed":false,"name":"frozen","type":"bool"}],"name":"Freeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"index","type":"uint256"},{"indexed":false,"name":"data","type":"string"}],"name":"ValidateFile","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"publisherAddress","type":"address"},{"indexed":false,"name":"state","type":"bool"},{"indexed":true,"name":"publisherName","type":"string"}],"name":"ValidatePublisher","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"walletAddress","type":"address"},{"indexed":false,"name":"state","type":"bool"},{"indexed":true,"name":"walletName","type":"string"}],"name":"ValidateWallet","type":"event"},{"anonymous":true,"inputs":[{"indexed":false,"name":"index","type":"uint256"},{"indexed":false,"name":"data","type":"string"}],"name":"LogEvent","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"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"}]

608060405260008060146101000a81548160ff021916908315150217905550601260ff16600a0a6007026009556000600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561007a57600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601260ff16600a0a6314dc938002600181905550600154600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6314dc93806040518082815260200191505060405180910390a36147c3806102486000396000f3006080604052600436106101b7576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146101bc578063095ea7b31461024c5780631072cbea146102b157806313af4035146102fe57806318160ddd146103415780631927a8ea1461036c57806323b872dd146103bb57806327e235e314610440578063313ce5671461049757806336ef12d5146104c8578063378dc3dc146105235780633f4ba83a1461054e57806342966c68146105655780634e83977a146105aa5780635c658165146106015780635c975abb1461067857806366188463146106a757806370a082311461070c5780638456cb59146107635780638da5cb5b1461077a57806391b7f5ed146107d157806395d89b41146107fe578063a9059cbb1461088e578063ae7d00f3146108f3578063b02710231461091e578063b414d4b61461099f578063bb0bef19146109fa578063bf120ae514610abd578063c0ee0b8a14610b24578063d22e7b6914610bcf578063d73dd62314610c7c578063dd62ed3e14610ce1578063deaa59df14610d58578063fc399c7914610d9b578063fe8312c114610df6575b600080fd5b3480156101c857600080fd5b506101d1610ea3565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102115780820151818401526020810190506101f6565b50505050905090810190601f16801561023e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025857600080fd5b50610297600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610edc565b604051808215151515815260200191505060405180910390f35b3480156102bd57600080fd5b506102fc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110e8565b005b34801561030a57600080fd5b5061033f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111fc565b005b34801561034d57600080fd5b50610356611303565b6040518082815260200191505060405180910390f35b34801561037857600080fd5b506103a16004803603810190808035906020019092919080359060200190929190505050611309565b604051808215151515815260200191505060405180910390f35b3480156103c757600080fd5b50610426600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115ea565b604051808215151515815260200191505060405180910390f35b34801561044c57600080fd5b50610481600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d42565b6040518082815260200191505060405180910390f35b3480156104a357600080fd5b506104ac611d5a565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104d457600080fd5b50610509600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d5f565b604051808215151515815260200191505060405180910390f35b34801561052f57600080fd5b50610538611d7f565b6040518082815260200191505060405180910390f35b34801561055a57600080fd5b50610563611d87565b005b34801561057157600080fd5b5061059060048036038101908080359060200190929190505050611eae565b604051808215151515815260200191505060405180910390f35b3480156105b657600080fd5b506105bf6121be565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561060d57600080fd5b50610662600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506121e4565b6040518082815260200191505060405180910390f35b34801561068457600080fd5b5061068d612209565b604051808215151515815260200191505060405180910390f35b3480156106b357600080fd5b506106f2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061221c565b604051808215151515815260200191505060405180910390f35b34801561071857600080fd5b5061074d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612433565b6040518082815260200191505060405180910390f35b34801561076f57600080fd5b5061077861247c565b005b34801561078657600080fd5b5061078f6125a5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107dd57600080fd5b506107fc600480360381019080803590602001909291905050506125ca565b005b34801561080a57600080fd5b50610813612698565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610853578082015181840152602081019050610838565b50505050905090810190601f1680156108805780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561089a57600080fd5b506108d9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506126d1565b604051808215151515815260200191505060405180910390f35b3480156108ff57600080fd5b50610908612cc9565b6040518082815260200191505060405180910390f35b34801561092a57600080fd5b50610985600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050612ccf565b604051808215151515815260200191505060405180910390f35b3480156109ab57600080fd5b506109e0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612f53565b604051808215151515815260200191505060405180910390f35b348015610a0657600080fd5b50610aa3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803515159060200190929190803515159060200190929190505050612f73565b604051808215151515815260200191505060405180910390f35b348015610ac957600080fd5b50610b0a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050613953565b604051808215151515815260200191505060405180910390f35b348015610b3057600080fd5b50610bb5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050613ae9565b604051808215151515815260200191505060405180910390f35b348015610bdb57600080fd5b50610c62600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050613dd6565b604051808215151515815260200191505060405180910390f35b348015610c8857600080fd5b50610cc7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613fb3565b604051808215151515815260200191505060405180910390f35b348015610ced57600080fd5b50610d42600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506141ca565b6040518082815260200191505060405180910390f35b348015610d6457600080fd5b50610d99600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614251565b005b348015610da757600080fd5b50610ddc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614359565b604051808215151515815260200191505060405180910390f35b348015610e0257600080fd5b50610e89600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050614379565b604051808215151515815260200191505060405180910390f35b6040805190810160405280600981526020017f53657276616c204954000000000000000000000000000000000000000000000081525081565b60008060149054906101000a900460ff16151515610ef957600080fd5b6000821480610f8457506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b1515610ff8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f41312d20526573657420616c6c6f77616e636520746f2030206669727374000081525060200191505060405180910390fd5b81600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4f312d204f776e6572206f6e6c792066756e6374696f6e00000000000000000081525060200191505060405180910390fd5b6111f86000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff166145569092919063ffffffff16565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4f312d204f776e6572206f6e6c792066756e6374696f6e00000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60015481565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4f312d204f776e6572206f6e6c792066756e6374696f6e00000000000000000081525060200191505060405180910390fd5b600060088054905014156113e757600091506115e3565b6001600880549050038411151515611467576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4c312d20506c656173652073656c65637420612076616c69642073746172740081525060200191505060405180910390fd5b600083111561150057838311801561148757506001600880549050038311155b15156114fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4c322d20506c656173652073656c65637420612076616c69642073746f70000081525060200191505060405180910390fd5b61150c565b60016008805490500392505b8390505b82811115156115de578060088281548110151561152957fe5b9060005260206000200160405180838152602001806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156115c25780601f10611597576101008083540402835291602001916115c2565b820191906000526020600020905b8154815290600101906020018083116115a557829003601f168201915b5050935050505060405180910390a08080600101915050611510565b600191505b5092915050565b60008060149054906101000a900460ff1615151561160757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156116d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f5446312d20506c6561736520636865636b2074686520726563697069656e742081526020017f616464726573730000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156117af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f5446322d205468652062616c616e6365206f662073656e64657220697320746f81526020017f6f206c6f7700000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156118c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f5446332d2054686520616c6c6f77616e6365206f662073656e6465722069732081526020017f746f6f206c6f770000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156119b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5446342d205468652077616c6c6574206f662073656e6465722069732066726f81526020017f7a656e000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611a99576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f5446352d205468652077616c6c6574206f6620726563697069656e742069732081526020017f66726f7a656e000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b611aeb82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461464490919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b8082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461466c90919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c5282600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461464490919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60026020528060005260406000206000915090505481565b601281565b60056020528060005260406000206000915054906101000a900460ff1681565b6314dc938081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e4b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4f312d204f776e6572206f6e6c792066756e6374696f6e00000000000000000081525060200191505060405180910390fd5b600060149054906101000a900460ff161515611e6657600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f74576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4f312d204f776e6572206f6e6c792066756e6374696f6e00000000000000000081525060200191505060405180910390fd5b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515612051576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f42312d205468652062616c616e6365206f66206275726e657220697320746f6f81526020017f206c6f770000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6120a382600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461464490919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120fb8260015461464490919063ffffffff16565b6001819055503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6003602052816000526040600020602052806000526040600020600091509150505481565b600060149054906101000a900460ff1681565b60008060149054906101000a900460ff1615151561223957600080fd5b6122c882600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461464490919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612540576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4f312d204f776e6572206f6e6c792066756e6374696f6e00000000000000000081525060200191505060405180910390fd5b600060149054906101000a900460ff1615151561255c57600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561268e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4f312d204f776e6572206f6e6c792066756e6374696f6e00000000000000000081525060200191505060405180910390fd5b8060098190555050565b6040805190810160405280600481526020017f534552560000000000000000000000000000000000000000000000000000000081525081565b60008060149054906101000a900460ff161515156126ee57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156127b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f54312d20526563697069656e742063616e206e6f74206265207468652073616d81526020017f652061732073656e64657200000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515612883576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f54322d20506c6561736520636865636b2074686520726563697069656e74206181526020017f646472657373000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515612960576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f54332d205468652062616c616e6365206f662073656e64657220697320746f6f81526020017f206c6f770000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515612a48576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f54342d205468652077616c6c6574206f662073656e6465722069732066726f7a81526020017f656e00000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515612b30576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f54352d205468652077616c6c6574206f6620726563697069656e74206973206681526020017f726f7a656e00000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b612b8282600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461464490919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c1782600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461466c90919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60095481565b60006060806000806008805490501415612cec5760009350612f4b565b60086007866040518082805190602001908083835b602083101515612d265780518252602082019150602081019050602083039250612d01565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060000154815481101515612d6957fe5b906000526020600020018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612e075780601f10612ddc57610100808354040283529160200191612e07565b820191906000526020600020905b815481529060010190602001808311612dea57829003601f168201915b5050505050925084915081518351141515612e255760009350612f4b565b600090505b8251811015612f46578181815181101515612e4157fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168382815181101515612ebc57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141515612f395760009350612f4b565b8080600101915050612e2a565b600193505b505050919050565b60046020528060005260406000206000915054906101000a900460ff1681565b6000806060600060149054906101000a900460ff16151515612f9457600080fd5b6009548710151515613034576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f56312d20496e73756666696369656e74207061796d656e742070726f7669646581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156130f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f56322d20556e7665726966696564207075626c6973686572206164647265737381525060200191505060405180910390fd5b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156131dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f56332d205468652077616c6c6574206f66207075626c6973686572206973206681526020017f726f7a656e00000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60408651141515613256576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f56342d20496e76616c696420686173682070726f76696465640000000000000081525060200191505060405180910390fd5b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615806132f85750600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561332357600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1697505b600091508590508415613570576000600880549050111561344b5760006007826040518082805190602001908083835b6020831015156133785780518252602082019150602081019050602083039250613353565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206000015414151561344a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f56352d20546869732068617368207761732070726576696f75736c792076616c81526020017f696461746564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5b6001600882908060018154018082558091505090600182039060005260206000200160009091929091909150908051906020019061348a929190614694565b50036007826040518082805190602001908083835b6020831015156134c4578051825260208201915060208101905060208303925061349f565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600001819055506007816040518082805190602001908083835b6020831015156135365780518252602082019150602081019050602083039250613511565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206000015491505b86600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015156137095761368487600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461464490919063ffffffff16565b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613834565b61375b87600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461464490919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506137f087600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461466c90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef896040518082815260200191505060405180910390a38315613944577f9c0869bc3817f1ac640137074dc06b0f25f80f238c719419b6cff93dfab4dd4182826040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156139085780820151818401526020810190506138ed565b50505050905090810190601f1680156139355780820380516001836020036101000a031916815260200191505b50935050505060405180910390a15b60019250505095945050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613a19576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4f312d204f776e6572206f6e6c792066756e6374696f6e00000000000000000081525060200191505060405180910390fd5b81600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507ff022c1fbc00daf4d2e6cdc62e0338b967bd3be38ccc3d7f8e0168bd668c7bcfe8383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a16001905092915050565b6000613af3614714565b600085826000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050848260200181815250508382604001819052506018846000815181101515613b5157fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027f0100000000000000000000000000000000000000000000000000000000000000900463ffffffff169060020a026010856001815181101515613bdb57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027f0100000000000000000000000000000000000000000000000000000000000000900463ffffffff169060020a026008866002815181101515613c6557fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027f0100000000000000000000000000000000000000000000000000000000000000900463ffffffff169060020a02866003815181101515613ced57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027f010000000000000000000000000000000000000000000000000000000000000090040101019050807c01000000000000000000000000000000000000000000000000000000000282606001907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815250506001925050509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613e9c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4f312d204f776e6572206f6e6c792066756e6374696f6e00000000000000000081525060200191505060405180910390fd5b82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550816040518082805190602001908083835b602083101515613f295780518252602082019150602081019050602083039250613f04565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390208473ffffffffffffffffffffffffffffffffffffffff167f292123b68099c6aa2b5d37989544acbb7000794b52d1f629067b3f3ee1ce79fa85604051808215151515815260200191505060405180910390a3600190509392505050565b60008060149054906101000a900460ff16151515613fd057600080fd5b61405f82600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461466c90919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515614315576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4f312d204f776e6572206f6e6c792066756e6374696f6e00000000000000000081525060200191505060405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60066020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561443f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4f312d204f776e6572206f6e6c792066756e6374696f6e00000000000000000081525060200191505060405180910390fd5b82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550816040518082805190602001908083835b6020831015156144cc57805182526020820191506020810190506020830392506144a7565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390208473ffffffffffffffffffffffffffffffffffffffff167f3d08b6e3d62b04396eca9fe996bd52ef13d33affdfb79e470ed9fdbe4910452385604051808215151515815260200191505060405180910390a3600190509392505050565b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156145f957600080fd5b505af115801561460d573d6000803e3d6000fd5b505050506040513d602081101561462357600080fd5b8101908080519060200190929190505050151561463f57600080fd5b505050565b6000818303905082821115801561465b5750828111155b151561466357fe5b80905092915050565b600081830190508281101580156146835750818110155b151561468b57fe5b80905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106146d557805160ff1916838001178555614703565b82800160010185558215614703579182015b828111156147025782518255916020019190600101906146e7565b5b5090506147109190614772565b5090565b608060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016060815260200160007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681525090565b61479491905b80821115614790576000816000905550600101614778565b5090565b905600a165627a7a72305820f79ff0fbd87f646d394a0bbafe2dc7a5ac2bbc80e9775a888fc317511dea821a0029

Deployed Bytecode

0x6080604052600436106101b7576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146101bc578063095ea7b31461024c5780631072cbea146102b157806313af4035146102fe57806318160ddd146103415780631927a8ea1461036c57806323b872dd146103bb57806327e235e314610440578063313ce5671461049757806336ef12d5146104c8578063378dc3dc146105235780633f4ba83a1461054e57806342966c68146105655780634e83977a146105aa5780635c658165146106015780635c975abb1461067857806366188463146106a757806370a082311461070c5780638456cb59146107635780638da5cb5b1461077a57806391b7f5ed146107d157806395d89b41146107fe578063a9059cbb1461088e578063ae7d00f3146108f3578063b02710231461091e578063b414d4b61461099f578063bb0bef19146109fa578063bf120ae514610abd578063c0ee0b8a14610b24578063d22e7b6914610bcf578063d73dd62314610c7c578063dd62ed3e14610ce1578063deaa59df14610d58578063fc399c7914610d9b578063fe8312c114610df6575b600080fd5b3480156101c857600080fd5b506101d1610ea3565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102115780820151818401526020810190506101f6565b50505050905090810190601f16801561023e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025857600080fd5b50610297600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610edc565b604051808215151515815260200191505060405180910390f35b3480156102bd57600080fd5b506102fc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110e8565b005b34801561030a57600080fd5b5061033f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111fc565b005b34801561034d57600080fd5b50610356611303565b6040518082815260200191505060405180910390f35b34801561037857600080fd5b506103a16004803603810190808035906020019092919080359060200190929190505050611309565b604051808215151515815260200191505060405180910390f35b3480156103c757600080fd5b50610426600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115ea565b604051808215151515815260200191505060405180910390f35b34801561044c57600080fd5b50610481600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d42565b6040518082815260200191505060405180910390f35b3480156104a357600080fd5b506104ac611d5a565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104d457600080fd5b50610509600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d5f565b604051808215151515815260200191505060405180910390f35b34801561052f57600080fd5b50610538611d7f565b6040518082815260200191505060405180910390f35b34801561055a57600080fd5b50610563611d87565b005b34801561057157600080fd5b5061059060048036038101908080359060200190929190505050611eae565b604051808215151515815260200191505060405180910390f35b3480156105b657600080fd5b506105bf6121be565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561060d57600080fd5b50610662600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506121e4565b6040518082815260200191505060405180910390f35b34801561068457600080fd5b5061068d612209565b604051808215151515815260200191505060405180910390f35b3480156106b357600080fd5b506106f2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061221c565b604051808215151515815260200191505060405180910390f35b34801561071857600080fd5b5061074d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612433565b6040518082815260200191505060405180910390f35b34801561076f57600080fd5b5061077861247c565b005b34801561078657600080fd5b5061078f6125a5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107dd57600080fd5b506107fc600480360381019080803590602001909291905050506125ca565b005b34801561080a57600080fd5b50610813612698565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610853578082015181840152602081019050610838565b50505050905090810190601f1680156108805780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561089a57600080fd5b506108d9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506126d1565b604051808215151515815260200191505060405180910390f35b3480156108ff57600080fd5b50610908612cc9565b6040518082815260200191505060405180910390f35b34801561092a57600080fd5b50610985600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050612ccf565b604051808215151515815260200191505060405180910390f35b3480156109ab57600080fd5b506109e0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612f53565b604051808215151515815260200191505060405180910390f35b348015610a0657600080fd5b50610aa3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803515159060200190929190803515159060200190929190505050612f73565b604051808215151515815260200191505060405180910390f35b348015610ac957600080fd5b50610b0a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050613953565b604051808215151515815260200191505060405180910390f35b348015610b3057600080fd5b50610bb5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050613ae9565b604051808215151515815260200191505060405180910390f35b348015610bdb57600080fd5b50610c62600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050613dd6565b604051808215151515815260200191505060405180910390f35b348015610c8857600080fd5b50610cc7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613fb3565b604051808215151515815260200191505060405180910390f35b348015610ced57600080fd5b50610d42600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506141ca565b6040518082815260200191505060405180910390f35b348015610d6457600080fd5b50610d99600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614251565b005b348015610da757600080fd5b50610ddc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614359565b604051808215151515815260200191505060405180910390f35b348015610e0257600080fd5b50610e89600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050614379565b604051808215151515815260200191505060405180910390f35b6040805190810160405280600981526020017f53657276616c204954000000000000000000000000000000000000000000000081525081565b60008060149054906101000a900460ff16151515610ef957600080fd5b6000821480610f8457506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b1515610ff8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f41312d20526573657420616c6c6f77616e636520746f2030206669727374000081525060200191505060405180910390fd5b81600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4f312d204f776e6572206f6e6c792066756e6374696f6e00000000000000000081525060200191505060405180910390fd5b6111f86000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff166145569092919063ffffffff16565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4f312d204f776e6572206f6e6c792066756e6374696f6e00000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60015481565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4f312d204f776e6572206f6e6c792066756e6374696f6e00000000000000000081525060200191505060405180910390fd5b600060088054905014156113e757600091506115e3565b6001600880549050038411151515611467576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4c312d20506c656173652073656c65637420612076616c69642073746172740081525060200191505060405180910390fd5b600083111561150057838311801561148757506001600880549050038311155b15156114fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4c322d20506c656173652073656c65637420612076616c69642073746f70000081525060200191505060405180910390fd5b61150c565b60016008805490500392505b8390505b82811115156115de578060088281548110151561152957fe5b9060005260206000200160405180838152602001806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156115c25780601f10611597576101008083540402835291602001916115c2565b820191906000526020600020905b8154815290600101906020018083116115a557829003601f168201915b5050935050505060405180910390a08080600101915050611510565b600191505b5092915050565b60008060149054906101000a900460ff1615151561160757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156116d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f5446312d20506c6561736520636865636b2074686520726563697069656e742081526020017f616464726573730000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156117af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f5446322d205468652062616c616e6365206f662073656e64657220697320746f81526020017f6f206c6f7700000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156118c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f5446332d2054686520616c6c6f77616e6365206f662073656e6465722069732081526020017f746f6f206c6f770000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156119b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5446342d205468652077616c6c6574206f662073656e6465722069732066726f81526020017f7a656e000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611a99576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f5446352d205468652077616c6c6574206f6620726563697069656e742069732081526020017f66726f7a656e000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b611aeb82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461464490919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b8082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461466c90919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c5282600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461464490919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60026020528060005260406000206000915090505481565b601281565b60056020528060005260406000206000915054906101000a900460ff1681565b6314dc938081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e4b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4f312d204f776e6572206f6e6c792066756e6374696f6e00000000000000000081525060200191505060405180910390fd5b600060149054906101000a900460ff161515611e6657600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f74576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4f312d204f776e6572206f6e6c792066756e6374696f6e00000000000000000081525060200191505060405180910390fd5b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515612051576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f42312d205468652062616c616e6365206f66206275726e657220697320746f6f81526020017f206c6f770000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6120a382600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461464490919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120fb8260015461464490919063ffffffff16565b6001819055503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6003602052816000526040600020602052806000526040600020600091509150505481565b600060149054906101000a900460ff1681565b60008060149054906101000a900460ff1615151561223957600080fd5b6122c882600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461464490919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612540576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4f312d204f776e6572206f6e6c792066756e6374696f6e00000000000000000081525060200191505060405180910390fd5b600060149054906101000a900460ff1615151561255c57600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561268e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4f312d204f776e6572206f6e6c792066756e6374696f6e00000000000000000081525060200191505060405180910390fd5b8060098190555050565b6040805190810160405280600481526020017f534552560000000000000000000000000000000000000000000000000000000081525081565b60008060149054906101000a900460ff161515156126ee57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156127b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f54312d20526563697069656e742063616e206e6f74206265207468652073616d81526020017f652061732073656e64657200000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515612883576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f54322d20506c6561736520636865636b2074686520726563697069656e74206181526020017f646472657373000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515612960576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f54332d205468652062616c616e6365206f662073656e64657220697320746f6f81526020017f206c6f770000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515612a48576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f54342d205468652077616c6c6574206f662073656e6465722069732066726f7a81526020017f656e00000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515612b30576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f54352d205468652077616c6c6574206f6620726563697069656e74206973206681526020017f726f7a656e00000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b612b8282600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461464490919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c1782600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461466c90919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60095481565b60006060806000806008805490501415612cec5760009350612f4b565b60086007866040518082805190602001908083835b602083101515612d265780518252602082019150602081019050602083039250612d01565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060000154815481101515612d6957fe5b906000526020600020018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612e075780601f10612ddc57610100808354040283529160200191612e07565b820191906000526020600020905b815481529060010190602001808311612dea57829003601f168201915b5050505050925084915081518351141515612e255760009350612f4b565b600090505b8251811015612f46578181815181101515612e4157fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168382815181101515612ebc57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141515612f395760009350612f4b565b8080600101915050612e2a565b600193505b505050919050565b60046020528060005260406000206000915054906101000a900460ff1681565b6000806060600060149054906101000a900460ff16151515612f9457600080fd5b6009548710151515613034576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f56312d20496e73756666696369656e74207061796d656e742070726f7669646581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156130f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f56322d20556e7665726966696564207075626c6973686572206164647265737381525060200191505060405180910390fd5b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156131dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f56332d205468652077616c6c6574206f66207075626c6973686572206973206681526020017f726f7a656e00000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60408651141515613256576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f56342d20496e76616c696420686173682070726f76696465640000000000000081525060200191505060405180910390fd5b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615806132f85750600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561332357600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1697505b600091508590508415613570576000600880549050111561344b5760006007826040518082805190602001908083835b6020831015156133785780518252602082019150602081019050602083039250613353565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206000015414151561344a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f56352d20546869732068617368207761732070726576696f75736c792076616c81526020017f696461746564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5b6001600882908060018154018082558091505090600182039060005260206000200160009091929091909150908051906020019061348a929190614694565b50036007826040518082805190602001908083835b6020831015156134c4578051825260208201915060208101905060208303925061349f565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600001819055506007816040518082805190602001908083835b6020831015156135365780518252602082019150602081019050602083039250613511565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206000015491505b86600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015156137095761368487600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461464490919063ffffffff16565b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613834565b61375b87600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461464490919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506137f087600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461466c90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef896040518082815260200191505060405180910390a38315613944577f9c0869bc3817f1ac640137074dc06b0f25f80f238c719419b6cff93dfab4dd4182826040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156139085780820151818401526020810190506138ed565b50505050905090810190601f1680156139355780820380516001836020036101000a031916815260200191505b50935050505060405180910390a15b60019250505095945050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613a19576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4f312d204f776e6572206f6e6c792066756e6374696f6e00000000000000000081525060200191505060405180910390fd5b81600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507ff022c1fbc00daf4d2e6cdc62e0338b967bd3be38ccc3d7f8e0168bd668c7bcfe8383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a16001905092915050565b6000613af3614714565b600085826000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050848260200181815250508382604001819052506018846000815181101515613b5157fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027f0100000000000000000000000000000000000000000000000000000000000000900463ffffffff169060020a026010856001815181101515613bdb57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027f0100000000000000000000000000000000000000000000000000000000000000900463ffffffff169060020a026008866002815181101515613c6557fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027f0100000000000000000000000000000000000000000000000000000000000000900463ffffffff169060020a02866003815181101515613ced57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027f010000000000000000000000000000000000000000000000000000000000000090040101019050807c01000000000000000000000000000000000000000000000000000000000282606001907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815250506001925050509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613e9c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4f312d204f776e6572206f6e6c792066756e6374696f6e00000000000000000081525060200191505060405180910390fd5b82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550816040518082805190602001908083835b602083101515613f295780518252602082019150602081019050602083039250613f04565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390208473ffffffffffffffffffffffffffffffffffffffff167f292123b68099c6aa2b5d37989544acbb7000794b52d1f629067b3f3ee1ce79fa85604051808215151515815260200191505060405180910390a3600190509392505050565b60008060149054906101000a900460ff16151515613fd057600080fd5b61405f82600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461466c90919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515614315576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4f312d204f776e6572206f6e6c792066756e6374696f6e00000000000000000081525060200191505060405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60066020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561443f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4f312d204f776e6572206f6e6c792066756e6374696f6e00000000000000000081525060200191505060405180910390fd5b82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550816040518082805190602001908083835b6020831015156144cc57805182526020820191506020810190506020830392506144a7565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390208473ffffffffffffffffffffffffffffffffffffffff167f3d08b6e3d62b04396eca9fe996bd52ef13d33affdfb79e470ed9fdbe4910452385604051808215151515815260200191505060405180910390a3600190509392505050565b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156145f957600080fd5b505af115801561460d573d6000803e3d6000fd5b505050506040513d602081101561462357600080fd5b8101908080519060200190929190505050151561463f57600080fd5b505050565b6000818303905082821115801561465b5750828111155b151561466357fe5b80905092915050565b600081830190508281101580156146835750818110155b151561468b57fe5b80905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106146d557805160ff1916838001178555614703565b82800160010185558215614703579182015b828111156147025782518255916020019190600101906146e7565b5b5090506147109190614772565b5090565b608060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016060815260200160007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681525090565b61479491905b80821115614790576000816000905550600101614778565b5090565b905600a165627a7a72305820f79ff0fbd87f646d394a0bbafe2dc7a5ac2bbc80e9775a888fc317511dea821a0029

Deployed Bytecode Sourcemap

1930:7862:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2995:8;;;2426:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2426:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;2426:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4519:313;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4519:313:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5973:134;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5973:134:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1433:79;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1433:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;166:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;166:26:0;;;;;;;;;;;;;;;;;;;;;;;8881:501;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8881:501:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3667:736;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3667:736:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2040:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2040:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2471:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2471:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2206:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2206:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2552:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2552:49:0;;;;;;;;;;;;;;;;;;;;;;;1833:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1833:90:0;;;;;;6112:360;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6112:360:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2668:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2668:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2088:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2088:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1588:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1588:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;5122:290;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5122:290:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4408:106;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4408:106:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1740:88;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1740:88:0;;;;;;1259:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1259:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;8689:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8689:89:0;;;;;;;;;;;;;;;;;;;;;;;;;;2510:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2510:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;2510:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3013:649;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3013:649:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2607:57;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2607:57:0;;;;;;;;;;;;;;;;;;;;;;;8280:404;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8280:404:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2156:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7092:1183;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7092:1183:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6477:175;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6477:175:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5631:337;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5631:337:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6657:220;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6657:220:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4837:280;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4837:280:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5417:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5417:135:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8783:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8783:93:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;2258:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2258:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6882:205;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6882:205:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2426:41;;;;;;;;;;;;;;;;;;;;:::o;4519:313::-;4600:12;1659:6;;;;;;;;;;;1658:7;1650:16;;;;;;;;4638:1;4628:6;:11;4627:53;;;;4678:1;4645:7;:19;4653:10;4645:19;;;;;;;;;;;;;;;:29;4665:8;4645:29;;;;;;;;;;;;;;;;:34;4627:53;4619:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4753:6;4721:7;:19;4729:10;4721:19;;;;;;;;;;;;;;;:29;4741:8;4721:29;;;;;;;;;;;;;;;:38;;;;4792:8;4771:38;;4780:10;4771:38;;;4802:6;4771:38;;;;;;;;;;;;;;;;;;4823:4;4816:11;;4519:313;;;;:::o;5973:134::-;1385:5;;;;;;;;;;;1371:19;;:10;:19;;;1363:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6056:46;6089:5;;;;;;;;;;;6095:6;6062:12;6056:32;;;;:46;;;;;:::i;:::-;5973:134;;:::o;1433:79::-;1385:5;;;;;;;;;;;1371:19;;:10;:19;;;1363:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1499:8;1491:5;;:16;;;;;;;;;;;;;;;;;;1433:79;:::o;166:26::-;;;;:::o;8881:501::-;8959:4;9280:9;1385:5;;;;;;;;;;;1371:19;;:10;:19;;;1363:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8994:1;8974:9;:16;;;;:21;8970:51;;;9010:5;9003:12;;;;8970:51;9063:1;9046:9;:16;;;;:18;9035:7;:29;;9027:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9119:1;9110:6;:10;9106:163;;;9145:7;9136:6;:16;:48;;;;;9183:1;9166:9;:16;;;;:18;9156:6;:28;;9136:48;9128:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9106:163;;;9262:1;9245:9;:16;;;;:18;9236:27;;9106:163;9292:7;9280:19;;9275:85;9306:6;9301:1;:11;;9275:85;;;9339:1;9341:9;9351:1;9341:12;;;;;;;;;;;;;;;;;9330:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9314:3;;;;;;;9275:85;;;9373:4;9366:11;;1422:1;8881:501;;;;;:::o;3667:736::-;3763:12;1659:6;;;;;;;;;;;1658:7;1650:16;;;;;;;;3805:1;3790:17;;:3;:17;;;;3782:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3882:6;3863:8;:15;3872:5;3863:15;;;;;;;;;;;;;;;;:25;;3855:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3972:6;3942:7;:14;3950:5;3942:14;;;;;;;;;;;;;;;:26;3957:10;3942:26;;;;;;;;;;;;;;;;:36;;3934:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4035:13;:20;4049:5;4035:20;;;;;;;;;;;;;;;;;;;;;;;;;4034:21;4026:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4108:13;:18;4122:3;4108:18;;;;;;;;;;;;;;;;;;;;;;;;;4107:19;4099:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4193:27;4213:6;4193:8;:15;4202:5;4193:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;4175:8;:15;4184:5;4175:15;;;;;;;;;;;;;;;:45;;;;4241:25;4259:6;4241:8;:13;4250:3;4241:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;4225:8;:13;4234:3;4225:13;;;;;;;;;;;;;;;:41;;;;4302:38;4333:6;4302:7;:14;4310:5;4302:14;;;;;;;;;;;;;;;:26;4317:10;4302:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;4273:7;:14;4281:5;4273:14;;;;;;;;;;;;;;;:26;4288:10;4273:26;;;;;;;;;;;;;;;:67;;;;4368:3;4352:28;;4361:5;4352:28;;;4373:6;4352:28;;;;;;;;;;;;;;;;;;4394:4;4387:11;;3667:736;;;;;:::o;2040:44::-;;;;;;;;;;;;;;;;;:::o;2471:35::-;2504:2;2471:35;:::o;2206:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;2552:49::-;2592:9;2552:49;:::o;1833:90::-;1385:5;;;;;;;;;;;1371:19;;:10;:19;;;1363:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1717:6;;;;;;;;;;;1709:15;;;;;;;;1894:5;1885:6;;:14;;;;;;;;;;;;;;;;;;1909:9;;;;;;;;;;1833:90::o;6112:360::-;6168:4;1385:5;;;;;;;;;;;1371:19;;:10;:19;;;1363:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6197:8;:20;6206:10;6197:20;;;;;;;;;;;;;;;;6187:6;:30;;6179:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6287:32;6312:6;6287:8;:20;6296:10;6287:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;6264:8;:20;6273:10;6264:20;;;;;;;;;;;;;;;:55;;;;6338:23;6354:6;6338:11;;:15;;:23;;;;:::i;:::-;6324:11;:37;;;;6378:10;6373:24;;;6390:6;6373:24;;;;;;;;;;;;;;;;;;6438:1;6409:40;;6418:10;6409:40;;;6442:6;6409:40;;;;;;;;;;;;;;;;;;6463:4;6456:11;;6112:360;;;:::o;2668:44::-;;;;;;;;;;;;;:::o;2088:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1588:26::-;;;;;;;;;;;;;:::o;5122:290::-;5222:4;1659:6;;;;;;;;;;;1658:7;1650:16;;;;;;;;5265:51;5299:16;5265:7;:19;5273:10;5265:19;;;;;;;;;;;;;;;:29;5285:8;5265:29;;;;;;;;;;;;;;;;:33;;:51;;;;:::i;:::-;5233:7;:19;5241:10;5233:19;;;;;;;;;;;;;;;:29;5253:8;5233:29;;;;;;;;;;;;;;;:83;;;;5349:8;5328:61;;5337:10;5328:61;;;5359:7;:19;5367:10;5359:19;;;;;;;;;;;;;;;:29;5379:8;5359:29;;;;;;;;;;;;;;;;5328:61;;;;;;;;;;;;;;;;;;5403:4;5396:11;;5122:290;;;;:::o;4408:106::-;4464:15;4493:8;:16;4502:6;4493:16;;;;;;;;;;;;;;;;4486:23;;4408:106;;;:::o;1740:88::-;1385:5;;;;;;;;;;;1371:19;;:10;:19;;;1363:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1659:6;;;;;;;;;;;1658:7;1650:16;;;;;;;;1802:4;1793:6;;:13;;;;;;;;;;;;;;;;;;1816:7;;;;;;;;;;1740:88::o;1259:20::-;;;;;;;;;;;;;:::o;8689:89::-;1385:5;;;;;;;;;;;1371:19;;:10;:19;;;1363:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8765:8;8747:15;:26;;;;8689:89;:::o;2510:38::-;;;;;;;;;;;;;;;;;;;;:::o;3013:649::-;3090:12;1659:6;;;;;;;;;;;1658:7;1650:16;;;;;;;;3124:10;3117:17;;:3;:17;;;;3109:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3209:1;3194:17;;:3;:17;;;;3186:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3290:6;3266:8;:20;3275:10;3266:20;;;;;;;;;;;;;;;;:30;;3258:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3350:13;:25;3364:10;3350:25;;;;;;;;;;;;;;;;;;;;;;;;;3349:26;3341:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3427:13;:18;3441:3;3427:18;;;;;;;;;;;;;;;;;;;;;;;;;3426:19;3418:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3516:32;3541:6;3516:8;:20;3525:10;3516:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;3493:8;:20;3502:10;3493:20;;;;;;;;;;;;;;;:55;;;;3569:25;3587:6;3569:8;:13;3578:3;3569:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;3553:8;:13;3562:3;3553:13;;;;;;;;;;;;;;;:41;;;;3627:3;3606:33;;3615:10;3606:33;;;3632:6;3606:33;;;;;;;;;;;;;;;;;;3653:4;3646:11;;3013:649;;;;:::o;2607:57::-;;;;:::o;8280:404::-;8338:4;8406:14;8472;8572:9;8373:1;8353:9;:16;;;;:21;8349:51;;;8389:5;8382:12;;;;8349:51;8429:9;8439:10;8450:8;8439:20;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;8439:20:0;;;;;;;;;;;;;;;;;;;;;:26;;;8429:37;;;;;;;;;;;;;;;;;8406:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8495:8;8472:32;;8527:1;:8;8515:1;:8;:20;;8511:50;;;8550:5;8543:12;;;;8511:50;8584:1;8572:13;;8567:95;8591:1;:8;8587:1;:12;8567:95;;;8625:1;8627;8625:4;;;;;;;;;;;;;;;;;;;;8617:12;;;:1;8619;8617:4;;;;;;;;;;;;;;;;;;;;:12;;;;;8613:44;;;8645:5;8638:12;;;;8613:44;8601:4;;;;;;;8567:95;;;8675:4;8668:11;;8280:404;;;;;;;:::o;2156:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;7092:1183::-;7209:4;7594:13;7616:22;1659:6;;;;;;;;;;;1658:7;1650:16;;;;;;;;7237:15;;7228:7;:24;;7220:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7302:15;:27;7318:10;7302:27;;;;;;;;;;;;;;;;;;;;;;;;;7294:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7379:13;:25;7393:10;7379:25;;;;;;;;;;;;;;;;;;;;;;;;;7378:26;7370:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7473:2;7458:4;:11;:17;7450:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7516:12;:16;7529:2;7516:16;;;;;;;;;;;;;;;;;;;;;;;;;7515:17;:38;;;;7536:13;:17;7550:2;7536:17;;;;;;;;;;;;;;;;;;;;;;;;;7515:38;7511:77;;;7566:16;;;;;;;;;;;7561:21;;7511:77;7610:1;7594:17;;7648:4;7616:37;;7664:6;7660:247;;;7701:1;7682:9;:16;;;;:20;7678:121;;;7749:1;7719:10;7730:8;7719:20;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;7719:20:0;;;;;;;;;;;;;;;;;;;;;:26;;;:31;7711:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7678:121;7860:1;7835:9;7850:8;7835:24;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;7835:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:26;7806:10;7817:8;7806:20;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;7806:20:0;;;;;;;;;;;;;;;;;;;;;:26;;:55;;;;7875:10;7886:8;7875:20;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;7875:20:0;;;;;;;;;;;;;;;;;;;;;:26;;;7867:34;;7660:247;7944:7;7917;:11;7925:2;7917:11;;;;;;;;;;;;;;;:23;7929:10;7917:23;;;;;;;;;;;;;;;;:34;;7913:234;;;7985:36;8013:7;7985;:11;7993:2;7985:11;;;;;;;;;;;;;;;:23;7997:10;7985:23;;;;;;;;;;;;;;;;:27;;:36;;;;:::i;:::-;7959:7;:11;7967:2;7959:11;;;;;;;;;;;;;;;:23;7971:10;7959:23;;;;;;;;;;;;;;;:62;;;;7913:234;;;8062:33;8087:7;8062:8;:20;8071:10;8062:20;;;;;;;;;;;;;;;;:24;;:33;;;;:::i;:::-;8039:8;:20;8048:10;8039:20;;;;;;;;;;;;;;;:56;;;;8116:25;8133:7;8116:8;:12;8125:2;8116:12;;;;;;;;;;;;;;;;:16;;:25;;;;:::i;:::-;8101:8;:12;8110:2;8101:12;;;;;;;;;;;;;;;:40;;;;7913:234;8179:2;8158:33;;8167:10;8158:33;;;8183:7;8158:33;;;;;;;;;;;;;;;;;;8202:4;8198:55;;;8219:28;8232:5;8238:8;8219:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;8219:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8198:55;8266:4;8259:11;;7092:1183;;;;;;;;;:::o;6477:175::-;6550:4;1385:5;;;;;;;;;;;1371:19;;:10;:19;;;1363:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6587:6;6561:13;:23;6575:8;6561:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;6605:24;6612:8;6622:6;6605:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6643:4;6636:11;;6477:175;;;;:::o;5631:337::-;5719:4;5730:14;;:::i;:::-;5816:8;5762:5;5749:3;:10;;:18;;;;;;;;;;;5784:6;5772:3;:9;;:18;;;;;5806:5;5795:3;:8;;:16;;;;5920:2;5907:5;5913:1;5907:8;;;;;;;;;;;;;;;;;;;;5900:16;;;:22;;;;;;5893:2;5880:5;5886:1;5880:8;;;;;;;;;;;;;;;;;;;;5873:16;;;:22;;;;;;5867:1;5854:5;5860:1;5854:8;;;;;;;;;;;;;;;;;;;;5847:16;;;:21;;;;;;5834:5;5840:1;5834:8;;;;;;;;;;;;;;;;;;;;5827:16;;;:42;:69;:96;5816:107;;5945:1;5938:9;;5928:3;:7;;:19;;;;;;;;;;;;;5959:4;5952:11;;5631:337;;;;;;;:::o;6657:220::-;6757:4;1385:5;;;;;;;;;;;1371:19;;:10;:19;;;1363:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6795:5;6768:15;:24;6784:7;6768:24;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;6844:9;6812:42;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;6812:42:0;;;;;;;;;;;;;;;;6830:7;6812:42;;;6838:5;6812:42;;;;;;;;;;;;;;;;;;;;;;6868:4;6861:11;;6657:220;;;;;:::o;4837:280::-;4932:4;1659:6;;;;;;;;;;;1658:7;1650:16;;;;;;;;4975:46;5009:11;4975:7;:19;4983:10;4975:19;;;;;;;;;;;;;;;:29;4995:8;4975:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;4943:7;:19;4951:10;4943:19;;;;;;;;;;;;;;;:29;4963:8;4943:29;;;;;;;;;;;;;;;:78;;;;5054:8;5033:61;;5042:10;5033:61;;;5064:7;:19;5072:10;5064:19;;;;;;;;;;;;;;;:29;5084:8;5064:29;;;;;;;;;;;;;;;;5033:61;;;;;;;;;;;;;;;;;;5108:4;5101:11;;4837:280;;;;:::o;5417:135::-;5491:17;5522:7;:15;5530:6;5522:15;;;;;;;;;;;;;;;:25;5538:8;5522:25;;;;;;;;;;;;;;;;5515:32;;5417:135;;;;:::o;8783:93::-;1385:5;;;;;;;;;;;1371:19;;:10;:19;;;1363:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8862:9;8843:16;;:28;;;;;;;;;;;;;;;;;;8783:93;:::o;2258:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;6882:205::-;6976:4;1385:5;;;;;;;;;;;1371:19;;:10;:19;;;1363:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7011:5;6987:12;:21;7000:7;6987:21;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;7057:6;7028:36;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;7028:36:0;;;;;;;;;;;;;;;;7043:7;7028:36;;;7051:5;7028:36;;;;;;;;;;;;;;;;;;;;;;7078:4;7071:11;;6882:205;;;;;:::o;1112:121::-;1199:6;:15;;;1215:3;1220:6;1199:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1199:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1199:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1199:28:0;;;;;;;;;;;;;;;;1191:37;;;;;;;;1112:121;;;:::o;820:130::-;878:9;902:1;898;:5;894:9;;920:1;915;:6;;:16;;;;;930:1;925;:6;;915:16;908:24;;;;;;944:1;937:8;;820:130;;;;:::o;955:128::-;1013:9;1037:1;1033;:5;1029:9;;1055:1;1050;:6;;:14;;;;;1063:1;1060;:4;;1050:14;1043:22;;;;;;1077:1;1070:8;;955:128;;;;:::o;1930:7862::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://f79ff0fbd87f646d394a0bbafe2dc7a5ac2bbc80e9775a888fc317511dea821a
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.