Feature Tip: Add private address tag to any address under My Name Tag !
Overview
Max Total Supply
569.795540250600000091 YEX
Holders
29 (0.00%)
Market
Price
$18.36 @ 0.005390 ETH
Onchain Market Cap
$10,461.14
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.21131578947368418 YEXValue
$3.88 ( ~0.00113900928230828 Eth) [0.0371%]Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
TokenStakingReward
Compiler Version
v0.6.6+commit.6c089d02
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-09-23 */ // SPDX-License-Identifier: MIT pragma solidity >=0.4.21 <0.7.0; pragma experimental ABIEncoderV2; library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256 c) { if (a == 0) { return 0; } c = a * b; assert(c / a == b); return c; } /** * @dev Integer division of two numbers, truncating the quotient. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 // uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return a / b; } /** * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256 c) { c = a + b; assert(c >= a); return c; } } //................................................................................... abstract contract ERC20Basic { function totalSupply() public virtual view returns (uint256); function balanceOf(address who) public virtual view returns (uint256); function transfer(address to, uint256 value) public virtual returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); } //.............................................................................................. abstract contract ERC20 is ERC20Basic { function allowance(address owner, address spender) public virtual view returns (uint256); function transferFrom(address from, address to, uint256 value) public virtual returns (bool); function approve(address spender, uint256 value) public virtual returns (bool); event Approval(address indexed owner, address indexed spender, uint256 value); } //.................................................................................................. contract BasicToken is ERC20Basic { using SafeMath for uint256; mapping(address => uint256) balances; uint256 totalSupply_; /** * @dev total number of tokens in existence */ function totalSupply() public override view returns (uint256) { return totalSupply_; } /** * @dev transfer token for a specified address * @param _to The address to transfer to. * @param _value The amount to be transferred. */ function transfer(address _to, uint256 _value) public override returns (bool) { require(_to != address(0)); require(_value <= balances[msg.sender]); balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); emit Transfer(msg.sender, _to, _value); return true; } /** * @dev Gets the balance of the specified address. * @param _owner The address to query the the balance of. * @return An uint256 representing the amount owned by the passed address. */ function balanceOf(address _owner) public override view returns (uint256) { return balances[_owner]; } } //........................................................................................ contract StandardToken is ERC20, BasicToken { mapping (address => mapping (address => uint256)) internal allowed; /** * @dev Transfer tokens from one address to another * @param _from address The address which you want to send tokens from * @param _to address The address which you want to transfer to * @param _value uint256 the amount of tokens to be transferred */ function transferFrom(address _from, address _to, uint256 _value) public override returns (bool) { require(_to != address(0)); require(_value <= balances[_from]); require(_value <= allowed[_from][msg.sender]); balances[_from] = balances[_from].sub(_value); balances[_to] = balances[_to].add(_value); allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value); emit Transfer(_from, _to, _value); return true; } /** * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. * * Beware that changing an allowance with this method brings the risk that someone may use both the old * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * @param _spender The address which will spend the funds. * @param _value The amount of tokens to be spent. */ function approve(address _spender, uint256 _value) public override returns (bool) { allowed[msg.sender][_spender] = _value; emit Approval(msg.sender, _spender, _value); return true; } /** * @dev Function to check the amount of tokens that an owner allowed to a spender. * @param _owner address The address which owns the funds. * @param _spender address The address which will spend the funds. * @return A uint256 specifying the amount of tokens still available for the spender. */ function allowance(address _owner, address _spender) public override view returns (uint256) { return allowed[_owner][_spender]; } /** * @dev Increase the amount of tokens that an owner allowed to a spender. * * approve should be called when allowed[_spender] == 0. To increment * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * @param _spender The address which will spend the funds. * @param _addedValue The amount of tokens to increase the allowance by. */ function increaseApproval(address _spender, uint _addedValue) public returns (bool) { allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue); emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } /** * @dev Decrease the amount of tokens that an owner allowed to a spender. * * approve should be called when allowed[_spender] == 0. To decrement * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * @param _spender The address which will spend the funds. * @param _subtractedValue The amount of tokens to decrease the allowance by. */ function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) { uint oldValue = allowed[msg.sender][_spender]; if (_subtractedValue > oldValue) { allowed[msg.sender][_spender] = 0; } else { allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue); } emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } } //.................................................................................... contract YexToken is StandardToken { address public administrator; string public constant name = "Yolex.io"; string public constant symbol = "YEX"; uint public constant decimals = 18; uint256 public constant INITIAL_SUPPLY = 100 * (10 ** decimals); modifier onlyAdminstrator(){ require(administrator == msg.sender, "requires admin priviledge"); _; } } contract TokenStakingReward is YexToken { address public yolexController; mapping(string => RewardPackage) public rewardPackages; MintedTokensRecord[] public tokenMintsRecord; mapping(address => Staker) public stackers; RewardPackage[] public listOfPackages; uint public salePrice = 5 ether; uint public presaleCount = 0; string prePackage = "PRESALE"; constructor() public { totalSupply_ = INITIAL_SUPPLY; administrator = msg.sender; balances[administrator] = INITIAL_SUPPLY; } modifier onlyController(){ require( administrator == msg.sender || yolexController == msg.sender, "requires controller or admin priviledge"); _; } event AdminChange ( string indexed message, address indexed newAdminAddress ); struct MintedTokensRecord { uint amount; uint timeStamp; } struct RewardPackage { uint id; string symbol; string packageName; string rebasePercent; string rewardPercent; uint256 durationInDays; uint256 rewardCapPercent; bool isActive; } struct Staker { uint id; address stakerAddress; uint256 amountStaked; bool isActive; bool isMatured; uint256 startDate; uint256 endDate; string stakingPackage; uint256 rewards; uint256 rewardCap; string rewardPercent; uint256 rewardCapPercent; } struct Rewards { address stakerAddress; uint256 reward; bool isMatured; } address newAdminAddress; address newControllerAddress; function changeRate(uint _newRate) external onlyAdminstrator returns(bool){ salePrice = _newRate; return true; } function assignNewAdministrator(address _newAdminAddress) external onlyAdminstrator { newAdminAddress = _newAdminAddress; emit AdminChange("confirming new Adminstrator address", newAdminAddress); } function acceptAdminRights() external { require(msg.sender == newAdminAddress, "new admistrator address mismatch"); uint256 _value = balances[administrator]; balances[administrator] = balances[administrator].sub(_value); balances[newAdminAddress] = balances[newAdminAddress].add(_value); administrator = newAdminAddress; emit AdminChange("New Adminstrator address", administrator); } function assignNewController(address _newControllerAddress) external onlyAdminstrator { newControllerAddress = _newControllerAddress; emit AdminChange("confirming new controller address", newControllerAddress); } function acceptControllerRights() external { require(msg.sender == newControllerAddress, "new controller address mismatch"); yolexController = newControllerAddress; emit AdminChange("New controller address", yolexController); } function presale() external payable { require(msg.value >= salePrice, "sent eth too small"); require(presaleCount < 45, "presale closed."); uint _amount = msg.value.div(salePrice); uint _amountToken = _amount.mul(10 ** decimals); balances[administrator] = balances[administrator].sub(_amountToken); balances[msg.sender] = balances[msg.sender].add(_amountToken); presaleCount = presaleCount.add(_amount); createStaking(_amountToken, prePackage); } uint stakingID; uint packageID; function createStaking(uint256 _amount, string memory _packageSymbol ) public returns(Staker memory) { RewardPackage memory _package = rewardPackages[_packageSymbol]; require(_amount <= balances[msg.sender], "insuffient funds"); require(!stackers[msg.sender].isActive, "You already have an active stake"); require(_package.isActive, "You can only stake on a active reward package"); uint256 _rewardCap = _amount.mul(_package.rewardCapPercent).div(100); uint256 _endDate = numberDaysToTimestamp(_package.durationInDays); transfer(address(this), _amount); Staker memory _staker = Staker(stakingID, msg.sender, _amount, true, false, now, _endDate, _packageSymbol, 0, _rewardCap, _package.rewardPercent, _package.rewardCapPercent); stakingID++; stackers[msg.sender] = _staker; return _staker; } function unstake() external returns(bool success){ Staker memory _staker = stackers[msg.sender]; require(_staker.endDate <= now, "cannot unstake yet"); require(_staker.isMatured, "reward is not matured for withdrawal"); require(_staker.isActive, "staking should still be active"); uint256 _amount = _staker.amountStaked; balances[address(this)] = balances[address(this)].sub(_amount); uint256 totalRewards = _amount.add(_staker.rewards); balances[msg.sender] = balances[msg.sender].add(totalRewards); stackers[msg.sender].isActive = false; mintTokens(_staker.rewards); emit Transfer(address(this), msg.sender, totalRewards); return true; } function distributeStakingRewards(Rewards[] calldata _rewards) external onlyController returns(bool){ for (uint index = 0; index < _rewards.length; index++) { uint totalRewards = stackers[_rewards[index].stakerAddress].rewards.add(_rewards[index].reward); if (stackers[_rewards[index].stakerAddress].isActive == true && totalRewards <= stackers[_rewards[index].stakerAddress].rewardCap) { stackers[_rewards[index].stakerAddress].rewards = totalRewards; if(_rewards[index].isMatured){ indicateMaturity(_rewards[index].stakerAddress, _rewards[index].isMatured); } } } return true; } function indicateMaturity(address _accountAddress, bool status) internal returns(bool success) { require(_accountAddress != address(0), "the stacker address is needed"); stackers[_accountAddress].isMatured = status; return true; } function createPackage( string memory _packageName, string memory _symbol, string memory _rebasePercent, string memory _rewardPercent, uint256 _rewardCapPercent, uint256 _durationInDays ) public onlyController returns(RewardPackage memory) { numberDaysToTimestamp(_durationInDays); RewardPackage memory _package = RewardPackage( packageID, _symbol, _packageName, _rebasePercent, _rewardPercent, _durationInDays, _rewardCapPercent, true ); if (rewardPackages[_symbol].isActive) { revert("package symbol should be unique"); } else { packageID++; rewardPackages[_symbol] = _package; listOfPackages.push(_package); return _package; } } function numberDaysToTimestamp (uint _numberOfDays) private view returns(uint256 time){ if (_numberOfDays == 3) { return now + 4 days; } else if(_numberOfDays == 7){ return now.add(8 days); }else if(_numberOfDays == 30){ return now.add(31 days); }else if(_numberOfDays == 60){ return now.add(61 days); }else if(_numberOfDays == 90){ return now.add(91 days); }else if(_numberOfDays == 180){ return now.add(181 days); } else { revert("The number of days should be either 3, 7, 30, 60 90, or 180 days"); } } function increaseStakingAmount(uint _amount) external returns(bool success){ require(stackers[msg.sender].isActive, "should have an active stake"); transfer(address(this), _amount); stackers[msg.sender].amountStaked = stackers[msg.sender].amountStaked.add(_amount); uint256 _amountStaked = stackers[msg.sender].amountStaked; uint256 _rewardCap = _amountStaked.mul(stackers[msg.sender].rewardCapPercent).div(100); stackers[msg.sender].rewardCap = _rewardCap; return true; } function deactivatePackage(string calldata _symbol) external onlyController returns(RewardPackage memory){ bytes memory strToByte = bytes(_symbol); require(strToByte.length > 1, "The package symbol should be specified"); rewardPackages[_symbol].isActive = false; listOfPackages[rewardPackages[_symbol].id].isActive = false; return rewardPackages[_symbol]; } function mintTokens(uint256 _amount) private returns(bool, uint) { totalSupply_ = totalSupply_.add(_amount); tokenMintsRecord.push(MintedTokensRecord(_amount, now)); return(true, totalSupply_); } function updatePrePackage(string calldata _packageSymbol) external onlyAdminstrator { prePackage = _packageSymbol; } function transferToWallet(uint _amount, address payable _receipient) external onlyAdminstrator returns(bool){ _receipient.transfer(_amount); return true; } receive() payable external {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"message","type":"string"},{"indexed":true,"internalType":"address","name":"newAdminAddress","type":"address"}],"name":"AdminChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"INITIAL_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptAdminRights","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptControllerRights","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"administrator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newAdminAddress","type":"address"}],"name":"assignNewAdministrator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newControllerAddress","type":"address"}],"name":"assignNewController","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newRate","type":"uint256"}],"name":"changeRate","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_packageName","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"string","name":"_rebasePercent","type":"string"},{"internalType":"string","name":"_rewardPercent","type":"string"},{"internalType":"uint256","name":"_rewardCapPercent","type":"uint256"},{"internalType":"uint256","name":"_durationInDays","type":"uint256"}],"name":"createPackage","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"packageName","type":"string"},{"internalType":"string","name":"rebasePercent","type":"string"},{"internalType":"string","name":"rewardPercent","type":"string"},{"internalType":"uint256","name":"durationInDays","type":"uint256"},{"internalType":"uint256","name":"rewardCapPercent","type":"uint256"},{"internalType":"bool","name":"isActive","type":"bool"}],"internalType":"struct TokenStakingReward.RewardPackage","name":"","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"string","name":"_packageSymbol","type":"string"}],"name":"createStaking","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"stakerAddress","type":"address"},{"internalType":"uint256","name":"amountStaked","type":"uint256"},{"internalType":"bool","name":"isActive","type":"bool"},{"internalType":"bool","name":"isMatured","type":"bool"},{"internalType":"uint256","name":"startDate","type":"uint256"},{"internalType":"uint256","name":"endDate","type":"uint256"},{"internalType":"string","name":"stakingPackage","type":"string"},{"internalType":"uint256","name":"rewards","type":"uint256"},{"internalType":"uint256","name":"rewardCap","type":"uint256"},{"internalType":"string","name":"rewardPercent","type":"string"},{"internalType":"uint256","name":"rewardCapPercent","type":"uint256"}],"internalType":"struct TokenStakingReward.Staker","name":"","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_symbol","type":"string"}],"name":"deactivatePackage","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"packageName","type":"string"},{"internalType":"string","name":"rebasePercent","type":"string"},{"internalType":"string","name":"rewardPercent","type":"string"},{"internalType":"uint256","name":"durationInDays","type":"uint256"},{"internalType":"uint256","name":"rewardCapPercent","type":"uint256"},{"internalType":"bool","name":"isActive","type":"bool"}],"internalType":"struct TokenStakingReward.RewardPackage","name":"","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"stakerAddress","type":"address"},{"internalType":"uint256","name":"reward","type":"uint256"},{"internalType":"bool","name":"isMatured","type":"bool"}],"internalType":"struct TokenStakingReward.Rewards[]","name":"_rewards","type":"tuple[]"}],"name":"distributeStakingRewards","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"increaseStakingAmount","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"listOfPackages","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"packageName","type":"string"},{"internalType":"string","name":"rebasePercent","type":"string"},{"internalType":"string","name":"rewardPercent","type":"string"},{"internalType":"uint256","name":"durationInDays","type":"uint256"},{"internalType":"uint256","name":"rewardCapPercent","type":"uint256"},{"internalType":"bool","name":"isActive","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"presale","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"presaleCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"rewardPackages","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"packageName","type":"string"},{"internalType":"string","name":"rebasePercent","type":"string"},{"internalType":"string","name":"rewardPercent","type":"string"},{"internalType":"uint256","name":"durationInDays","type":"uint256"},{"internalType":"uint256","name":"rewardCapPercent","type":"uint256"},{"internalType":"bool","name":"isActive","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"salePrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"stackers","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"stakerAddress","type":"address"},{"internalType":"uint256","name":"amountStaked","type":"uint256"},{"internalType":"bool","name":"isActive","type":"bool"},{"internalType":"bool","name":"isMatured","type":"bool"},{"internalType":"uint256","name":"startDate","type":"uint256"},{"internalType":"uint256","name":"endDate","type":"uint256"},{"internalType":"string","name":"stakingPackage","type":"string"},{"internalType":"uint256","name":"rewards","type":"uint256"},{"internalType":"uint256","name":"rewardCap","type":"uint256"},{"internalType":"string","name":"rewardPercent","type":"string"},{"internalType":"uint256","name":"rewardCapPercent","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokenMintsRecord","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"timeStamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address payable","name":"_receipient","type":"address"}],"name":"transferToWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unstake","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_packageSymbol","type":"string"}],"name":"updatePrePackage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"yolexController","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052674563918244f400006009556000600a556040518060400160405280600781526020017f50524553414c4500000000000000000000000000000000000000000000000000815250600b90805190602001906200006292919062000132565b503480156200007057600080fd5b506012600a0a60640260018190555033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a0a606402600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620001e1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200017557805160ff1916838001178555620001a6565b82800160010185558215620001a6579182015b82811115620001a557825182559160200191906001019062000188565b5b509050620001b59190620001b9565b5090565b620001de91905b80821115620001da576000816000905550600101620001c0565b5090565b90565b615dab80620001f16000396000f3fe6080604052600436106101fd5760003560e01c806374e7493b1161010d578063b224904a116100a0578063dd62ed3e1161006f578063dd62ed3e1461081a578063e64a831514610857578063f51f96dd1461086e578063f53d0a8e14610899578063fdea8e0b146108c457610204565b8063b224904a1461074c578063cde27a3514610775578063d73dd623146107a0578063dc803b94146107dd57610204565b8063955b4347116100dc578063955b43471461067757806395d89b41146106bb578063a1488fca146106e6578063a9059cbb1461070f57610204565b806374e7493b1461058e578063775c3e29146105cb578063863ebb2d1461060f578063926ca64f1461064c57610204565b80632def66201161019057806352abd4131161015f57806352abd413146104525780635ba47b731461048f57806366188463146104d75780636645f4151461051457806370a082311461055157610204565b80632def6620146103935780632ff2e9dc146103be578063313ce567146103e9578063347b35801461041457610204565b806319b3ea59116101cc57806319b3ea59146102b35780631f57d294146102dc57806323b872dd1461031957806329735b081461035657610204565b806306fdde0314610209578063095ea7b3146102345780630be2caa61461027157806318160ddd1461028857610204565b3661020457005b600080fd5b34801561021557600080fd5b5061021e6108ce565b60405161022b91906157af565b60405180910390f35b34801561024057600080fd5b5061025b60048036038101906102569190614ae7565b610907565b6040516102689190615794565b60405180910390f35b34801561027d57600080fd5b506102866109f9565b005b34801561029457600080fd5b5061029d610b67565b6040516102aa9190615a35565b60405180910390f35b3480156102bf57600080fd5b506102da60048036038101906102d59190614a33565b610b71565b005b3480156102e857600080fd5b5061030360048036038101906102fe9190614c17565b610cbe565b60405161031091906159f1565b60405180910390f35b34801561032557600080fd5b50610340600480360381019061033b9190614a98565b611044565b60405161034d9190615794565b60405180910390f35b34801561036257600080fd5b5061037d60048036038101906103789190614d65565b6113f8565b60405161038a9190615a13565b60405180910390f35b34801561039f57600080fd5b506103a8611a84565b6040516103b59190615794565b60405180910390f35b3480156103ca57600080fd5b506103d3611fe5565b6040516103e09190615a35565b60405180910390f35b3480156103f557600080fd5b506103fe611ff0565b60405161040b9190615a35565b60405180910390f35b34801561042057600080fd5b5061043b60048036038101906104369190614d00565b611ff5565b604051610449929190615bb2565b60405180910390f35b34801561045e57600080fd5b5061047960048036038101906104749190614d00565b612026565b6040516104869190615794565b60405180910390f35b34801561049b57600080fd5b506104b660048036038101906104b19190614a33565b612262565b6040516104ce9c9b9a99989796959493929190615a50565b60405180910390f35b3480156104e357600080fd5b506104fe60048036038101906104f99190614ae7565b61242c565b60405161050b9190615794565b60405180910390f35b34801561052057600080fd5b5061053b60048036038101906105369190614b23565b6126bd565b6040516105489190615794565b60405180910390f35b34801561055d57600080fd5b5061057860048036038101906105739190614a33565b612a38565b6040516105859190615a35565b60405180910390f35b34801561059a57600080fd5b506105b560048036038101906105b09190614d00565b612a80565b6040516105c29190615794565b60405180910390f35b3480156105d757600080fd5b506105f260048036038101906105ed9190614bd6565b612b22565b604051610606989796959493929190615b18565b60405180910390f35b34801561061b57600080fd5b5061063660048036038101906106319190614b91565b612ded565b60405161064391906159f1565b60405180910390f35b34801561065857600080fd5b506106616132f6565b60405161066e9190615779565b60405180910390f35b34801561068357600080fd5b5061069e60048036038101906106999190614d00565b61331c565b6040516106b2989796959493929190615b18565b60405180910390f35b3480156106c757600080fd5b506106d06135de565b6040516106dd91906157af565b60405180910390f35b3480156106f257600080fd5b5061070d60048036038101906107089190614a33565b613617565b005b34801561071b57600080fd5b5061073660048036038101906107319190614ae7565b613764565b6040516107439190615794565b60405180910390f35b34801561075857600080fd5b50610773600480360381019061076e9190614b91565b61397f565b005b34801561078157600080fd5b5061078a613a25565b6040516107979190615a35565b60405180910390f35b3480156107ac57600080fd5b506107c760048036038101906107c29190614ae7565b613a2b565b6040516107d49190615794565b60405180910390f35b3480156107e957600080fd5b5061080460048036038101906107ff9190614d29565b613c27565b6040516108119190615794565b60405180910390f35b34801561082657600080fd5b50610841600480360381019061083c9190614a5c565b613d0a565b60405161084e9190615a35565b60405180910390f35b34801561086357600080fd5b5061086c613d91565b005b34801561087a57600080fd5b50610883614113565b6040516108909190615a35565b60405180910390f35b3480156108a557600080fd5b506108ae614119565b6040516108bb9190615779565b60405180910390f35b6108cc61413f565b005b6040518060400160405280600881526020017f596f6c65782e696f00000000000000000000000000000000000000000000000081525081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109e79190615a35565b60405180910390a36001905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8090615931565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16604051610b3190615725565b60405180910390207f7b153ace0d4d4c7d4f2e3436edb57dff13d9ac515fa402c09c39e958578f753960405160405180910390a3565b6000600154905090565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf8906159b1565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16604051610c879061574f565b60405180910390207f7b153ace0d4d4c7d4f2e3436edb57dff13d9ac515fa402c09c39e958578f753960405160405180910390a350565b610cc6614710565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610d6f57503373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610dae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da590615951565b60405180910390fd5b610db78261442b565b50610dc0614710565b604051806101000160405280600f548152602001888152602001898152602001878152602001868152602001848152602001858152602001600115158152509050600587604051610e11919061570e565b908152602001604051809103902060070160009054906101000a900460ff1615610e70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6790615811565b60405180910390fd5b600f6000815480929190600101919050555080600588604051610e93919061570e565b9081526020016040518091039020600082015181600001556020820151816001019080519060200190610ec7929190614757565b506040820151816002019080519060200190610ee4929190614757565b506060820151816003019080519060200190610f01929190614757565b506080820151816004019080519060200190610f1e929190614757565b5060a0820151816005015560c0820151816006015560e08201518160070160006101000a81548160ff0219169083151502179055509050506008819080600181540180825580915050600190039060005260206000209060080201600090919091909150600082015181600001556020820151816001019080519060200190610fa8929190614757565b506040820151816002019080519060200190610fc5929190614757565b506060820151816003019080519060200190610fe2929190614757565b506080820151816004019080519060200190610fff929190614757565b5060a0820151816005015560c0820151816006015560e08201518160070160006101000a81548160ff0219169083151502179055505050809150509695505050505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561107f57600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156110ca57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111561115357600080fd5b6111a4826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461454190919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611237826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461455890919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061130882600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461454190919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113e59190615a35565b60405180910390a3600190509392505050565b6114006147d7565b611408614710565b600583604051611418919061570e565b90815260200160405180910390206040518061010001604052908160008201548152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114d55780601f106114aa576101008083540402835291602001916114d5565b820191906000526020600020905b8154815290600101906020018083116114b857829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115775780601f1061154c57610100808354040283529160200191611577565b820191906000526020600020905b81548152906001019060200180831161155a57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116195780601f106115ee57610100808354040283529160200191611619565b820191906000526020600020905b8154815290600101906020018083116115fc57829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116bb5780601f10611690576101008083540402835291602001916116bb565b820191906000526020600020905b81548152906001019060200180831161169e57829003601f168201915b5050505050815260200160058201548152602001600682015481526020016007820160009054906101000a900460ff16151515158152505090506000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054841115611776576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176d906157f1565b60405180910390fd5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900460ff1615611806576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fd90615991565b60405180910390fd5b8060e0015161184a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184190615851565b60405180910390fd5b600061187660646118688460c001518861457290919063ffffffff16565b6145a690919063ffffffff16565b905060006118878360a0015161442b565b90506118933087613764565b5061189c6147d7565b604051806101800160405280600e5481526020013373ffffffffffffffffffffffffffffffffffffffff16815260200188815260200160011515815260200160001515815260200142815260200183815260200187815260200160008152602001848152602001856080015181526020018560c001518152509050600e6000815480929190600101919050555080600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002015560608201518160030160006101000a81548160ff02191690831515021790555060808201518160030160016101000a81548160ff02191690831515021790555060a0820151816004015560c0820151816005015560e0820151816006019080519060200190611a34929190614757565b5061010082015181600701556101208201518160080155610140820151816009019080519060200190611a68929190614757565b5061016082015181600a01559050508094505050505092915050565b6000611a8e6147d7565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060405180610180016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015481526020016003820160009054906101000a900460ff161515151581526020016003820160019054906101000a900460ff161515151581526020016004820154815260200160058201548152602001600682018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c265780601f10611bfb57610100808354040283529160200191611c26565b820191906000526020600020905b815481529060010190602001808311611c0957829003601f168201915b505050505081526020016007820154815260200160088201548152602001600982018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611cdc5780601f10611cb157610100808354040283529160200191611cdc565b820191906000526020600020905b815481529060010190602001808311611cbf57829003601f168201915b50505050508152602001600a820154815250509050428160c001511115611d38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2f90615831565b60405180910390fd5b8060800151611d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d73906157d1565b60405180910390fd5b8060600151611dc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db7906158d1565b60405180910390fd5b600081604001519050611e1a816000803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461454190919063ffffffff16565b6000803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611e768361010001518361455890919063ffffffff16565b9050611ec9816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461455890919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160006101000a81548160ff021916908315150217905550611f748361010001516145ba565b50503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611fd39190615a35565b60405180910390a36001935050505090565b6012600a0a60640281565b601281565b6006818154811061200257fe5b90600052602060002090600202016000915090508060000154908060010154905082565b6000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900460ff166120b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ae906159d1565b60405180910390fd5b6120c13083613764565b5061211782600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015461455890919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055506000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050600061220e6064612200600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600a01548561457290919063ffffffff16565b6145a690919063ffffffff16565b905080600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080181905550600192505050919050565b60076020528060005260406000206000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030160009054906101000a900460ff16908060030160019054906101000a900460ff1690806004015490806005015490806006018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123725780601f1061234757610100808354040283529160200191612372565b820191906000526020600020905b81548152906001019060200180831161235557829003601f168201915b505050505090806007015490806008015490806009018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561241c5780601f106123f15761010080835404028352916020019161241c565b820191906000526020600020905b8154815290600101906020018083116123ff57829003601f168201915b50505050509080600a015490508c565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508083111561253d576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125d1565b612550838261454190919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516126aa9190615a35565b60405180910390a3600191505092915050565b60003373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061276857503373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b6127a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279e90615951565b60405180910390fd5b60008090505b83839050811015612a2d5760006128478585848181106127c957fe5b90506060020160200135600760008888878181106127e357fe5b90506060020160000160208101906127fb9190614a33565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206007015461455890919063ffffffff16565b9050600115156007600087878681811061285d57fe5b90506060020160000160208101906128759190614a33565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900460ff1615151480156129345750600760008686858181106128da57fe5b90506060020160000160208101906128f29190614a33565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600801548111155b15612a1f57806007600087878681811061294a57fe5b90506060020160000160208101906129629190614a33565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600701819055508484838181106129af57fe5b90506060020160400160208101906129c79190614b68565b15612a1e57612a1c8585848181106129db57fe5b90506060020160000160208101906129f39190614a33565b8686858181106129ff57fe5b9050606002016040016020810190612a179190614b68565b61463b565b505b5b5080806001019150506127ad565b506001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60003373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612b12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b09906159b1565b60405180910390fd5b8160098190555060019050919050565b600581805160208101820180518482526020830160208501208183528095505050505050600091509050806000015490806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612bea5780601f10612bbf57610100808354040283529160200191612bea565b820191906000526020600020905b815481529060010190602001808311612bcd57829003601f168201915b505050505090806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612c885780601f10612c5d57610100808354040283529160200191612c88565b820191906000526020600020905b815481529060010190602001808311612c6b57829003601f168201915b505050505090806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612d265780601f10612cfb57610100808354040283529160200191612d26565b820191906000526020600020905b815481529060010190602001808311612d0957829003601f168201915b505050505090806004018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612dc45780601f10612d9957610100808354040283529160200191612dc4565b820191906000526020600020905b815481529060010190602001808311612da757829003601f168201915b5050505050908060050154908060060154908060070160009054906101000a900460ff16905088565b612df5614710565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480612e9e57503373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b612edd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ed490615951565b60405180910390fd5b606083838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505090506001815111612f6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f6190615871565b60405180910390fd5b600060058585604051612f7e9291906156f5565b908152602001604051809103902060070160006101000a81548160ff0219169083151502179055506000600860058686604051612fbc9291906156f5565b90815260200160405180910390206000015481548110612fd857fe5b906000526020600020906008020160070160006101000a81548160ff021916908315150217905550600584846040516130129291906156f5565b90815260200160405180910390206040518061010001604052908160008201548152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156130cf5780601f106130a4576101008083540402835291602001916130cf565b820191906000526020600020905b8154815290600101906020018083116130b257829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131715780601f1061314657610100808354040283529160200191613171565b820191906000526020600020905b81548152906001019060200180831161315457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132135780601f106131e857610100808354040283529160200191613213565b820191906000526020600020905b8154815290600101906020018083116131f657829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132b55780601f1061328a576101008083540402835291602001916132b5565b820191906000526020600020905b81548152906001019060200180831161329857829003601f168201915b5050505050815260200160058201548152602001600682015481526020016007820160009054906101000a900460ff16151515158152505091505092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6008818154811061332957fe5b9060005260206000209060080201600091509050806000015490806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133db5780601f106133b0576101008083540402835291602001916133db565b820191906000526020600020905b8154815290600101906020018083116133be57829003601f168201915b505050505090806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156134795780601f1061344e57610100808354040283529160200191613479565b820191906000526020600020905b81548152906001019060200180831161345c57829003601f168201915b505050505090806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156135175780601f106134ec57610100808354040283529160200191613517565b820191906000526020600020905b8154815290600101906020018083116134fa57829003601f168201915b505050505090806004018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156135b55780601f1061358a576101008083540402835291602001916135b5565b820191906000526020600020905b81548152906001019060200180831161359857829003601f168201915b5050505050908060050154908060060154908060070160009054906101000a900460ff16905088565b6040518060400160405280600381526020017f594558000000000000000000000000000000000000000000000000000000000081525081565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146136a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161369e906159b1565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660405161372d90615764565b60405180910390207f7b153ace0d4d4c7d4f2e3436edb57dff13d9ac515fa402c09c39e958578f753960405160405180910390a350565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561379f57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156137ea57600080fd5b61383b826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461454190919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506138ce826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461455890919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161396d9190615a35565b60405180910390a36001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613a0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613a06906159b1565b60405180910390fd5b8181600b9190613a20929190614852565b505050565b600a5481565b6000613abc82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461455890919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051613c159190615a35565b60405180910390a36001905092915050565b60003373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613cb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613cb0906159b1565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015613cff573d6000803e3d6000fd5b506001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e1890615911565b60405180910390fd5b6000806000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050613ef981600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461454190919063ffffffff16565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613fd081600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461455890919063ffffffff16565b600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166040516140dc9061573a565b60405180910390207f7b153ace0d4d4c7d4f2e3436edb57dff13d9ac515fa402c09c39e958578f753960405160405180910390a350565b60095481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600954341015614184576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161417b906158f1565b60405180910390fd5b602d600a54106141c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016141c0906158b1565b60405180910390fd5b60006141e0600954346145a690919063ffffffff16565b905060006141fb6012600a0a8361457290919063ffffffff16565b905061427081600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461454190919063ffffffff16565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614325816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461455890919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061437c82600a5461455890919063ffffffff16565b600a8190555061442681600b8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561441c5780601f106143f15761010080835404028352916020019161441c565b820191906000526020600020905b8154815290600101906020018083116143ff57829003601f168201915b50505050506113f8565b505050565b6000600382141561444357620546004201905061453c565b600782141561446957614462620a8c004261455890919063ffffffff16565b905061453c565b601e82141561448f576144886228de804261455890919063ffffffff16565b905061453c565b603c8214156144b5576144ae62506b804261455890919063ffffffff16565b905061453c565b605a8214156144db576144d46277f8804261455890919063ffffffff16565b905061453c565b60b4821415614501576144fa62ee9f804261455890919063ffffffff16565b905061453c565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161453390615971565b60405180910390fd5b919050565b60008282111561454d57fe5b818303905092915050565b600081830190508281101561456957fe5b80905092915050565b60008083141561458557600090506145a0565b81830290508183828161459457fe5b041461459c57fe5b8090505b92915050565b60008183816145b157fe5b04905092915050565b6000806145d28360015461455890919063ffffffff16565b60018190555060066040518060400160405280858152602001428152509080600181540180825580915050600190039060005260206000209060020201600090919091909150600082015181600001556020820151816001015550506001805491509150915091565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156146ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016146a390615891565b60405180910390fd5b81600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160016101000a81548160ff0219169083151502179055506001905092915050565b604051806101000160405280600081526020016060815260200160608152602001606081526020016060815260200160008152602001600081526020016000151581525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061479857805160ff19168380011785556147c6565b828001600101855582156147c6579182015b828111156147c55782518255916020019190600101906147aa565b5b5090506147d391906148d2565b5090565b60405180610180016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600015158152602001600015158152602001600081526020016000815260200160608152602001600081526020016000815260200160608152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061489357803560ff19168380011785556148c1565b828001600101855582156148c1579182015b828111156148c05782358255916020019190600101906148a5565b5b5090506148ce91906148d2565b5090565b6148f491905b808211156148f05760008160009055506001016148d8565b5090565b90565b60008135905061490681615d19565b92915050565b60008135905061491b81615d30565b92915050565b60008083601f84011261493357600080fd5b8235905067ffffffffffffffff81111561494c57600080fd5b60208301915083606082028301111561496457600080fd5b9250929050565b60008135905061497a81615d47565b92915050565b60008083601f84011261499257600080fd5b8235905067ffffffffffffffff8111156149ab57600080fd5b6020830191508360018202830111156149c357600080fd5b9250929050565b600082601f8301126149db57600080fd5b81356149ee6149e982615c08565b615bdb565b91508082526020830160208301858383011115614a0a57600080fd5b614a15838284615cc6565b50505092915050565b600081359050614a2d81615d5e565b92915050565b600060208284031215614a4557600080fd5b6000614a53848285016148f7565b91505092915050565b60008060408385031215614a6f57600080fd5b6000614a7d858286016148f7565b9250506020614a8e858286016148f7565b9150509250929050565b600080600060608486031215614aad57600080fd5b6000614abb868287016148f7565b9350506020614acc868287016148f7565b9250506040614add86828701614a1e565b9150509250925092565b60008060408385031215614afa57600080fd5b6000614b08858286016148f7565b9250506020614b1985828601614a1e565b9150509250929050565b60008060208385031215614b3657600080fd5b600083013567ffffffffffffffff811115614b5057600080fd5b614b5c85828601614921565b92509250509250929050565b600060208284031215614b7a57600080fd5b6000614b888482850161496b565b91505092915050565b60008060208385031215614ba457600080fd5b600083013567ffffffffffffffff811115614bbe57600080fd5b614bca85828601614980565b92509250509250929050565b600060208284031215614be857600080fd5b600082013567ffffffffffffffff811115614c0257600080fd5b614c0e848285016149ca565b91505092915050565b60008060008060008060c08789031215614c3057600080fd5b600087013567ffffffffffffffff811115614c4a57600080fd5b614c5689828a016149ca565b965050602087013567ffffffffffffffff811115614c7357600080fd5b614c7f89828a016149ca565b955050604087013567ffffffffffffffff811115614c9c57600080fd5b614ca889828a016149ca565b945050606087013567ffffffffffffffff811115614cc557600080fd5b614cd189828a016149ca565b9350506080614ce289828a01614a1e565b92505060a0614cf389828a01614a1e565b9150509295509295509295565b600060208284031215614d1257600080fd5b6000614d2084828501614a1e565b91505092915050565b60008060408385031215614d3c57600080fd5b6000614d4a85828601614a1e565b9250506020614d5b8582860161490c565b9150509250929050565b60008060408385031215614d7857600080fd5b6000614d8685828601614a1e565b925050602083013567ffffffffffffffff811115614da357600080fd5b614daf858286016149ca565b9150509250929050565b614dc281615c6c565b82525050565b614dd181615c6c565b82525050565b614de081615c90565b82525050565b614def81615c90565b82525050565b6000614e018385615c61565b9350614e0e838584615cc6565b82840190509392505050565b6000614e2582615c34565b614e2f8185615c3f565b9350614e3f818560208601615cd5565b614e4881615d08565b840191505092915050565b6000614e5e82615c34565b614e688185615c50565b9350614e78818560208601615cd5565b614e8181615d08565b840191505092915050565b6000614e9782615c34565b614ea18185615c61565b9350614eb1818560208601615cd5565b80840191505092915050565b6000614eca602483615c50565b91507f726577617264206973206e6f74206d61747572656420666f722077697468647260008301527f6177616c000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000614f30601083615c50565b91507f696e7375666669656e742066756e6473000000000000000000000000000000006000830152602082019050919050565b6000614f70601f83615c50565b91507f7061636b6167652073796d626f6c2073686f756c6420626520756e69717565006000830152602082019050919050565b6000614fb0601683615c61565b91507f4e657720636f6e74726f6c6c65722061646472657373000000000000000000006000830152601682019050919050565b6000614ff0601283615c50565b91507f63616e6e6f7420756e7374616b652079657400000000000000000000000000006000830152602082019050919050565b6000615030602d83615c50565b91507f596f752063616e206f6e6c79207374616b65206f6e206120616374697665207260008301527f6577617264207061636b616765000000000000000000000000000000000000006020830152604082019050919050565b6000615096601883615c61565b91507f4e65772041646d696e73747261746f72206164647265737300000000000000006000830152601882019050919050565b60006150d6602683615c50565b91507f546865207061636b6167652073796d626f6c2073686f756c642062652073706560008301527f63696669656400000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061513c601d83615c50565b91507f74686520737461636b65722061646472657373206973206e65656465640000006000830152602082019050919050565b600061517c600f83615c50565b91507f70726573616c6520636c6f7365642e00000000000000000000000000000000006000830152602082019050919050565b60006151bc601e83615c50565b91507f7374616b696e672073686f756c64207374696c6c2062652061637469766500006000830152602082019050919050565b60006151fc601283615c50565b91507f73656e742065746820746f6f20736d616c6c00000000000000000000000000006000830152602082019050919050565b600061523c602083615c50565b91507f6e65772061646d6973747261746f722061646472657373206d69736d617463686000830152602082019050919050565b600061527c602383615c61565b91507f636f6e6669726d696e67206e65772041646d696e73747261746f72206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152602382019050919050565b60006152e2602183615c61565b91507f636f6e6669726d696e67206e657720636f6e74726f6c6c65722061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152602182019050919050565b6000615348601f83615c50565b91507f6e657720636f6e74726f6c6c65722061646472657373206d69736d61746368006000830152602082019050919050565b6000615388602783615c50565b91507f726571756972657320636f6e74726f6c6c6572206f722061646d696e2070726960008301527f76696c65646765000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006153ee604083615c50565b91507f546865206e756d626572206f6620646179732073686f756c642062652065697460008301527f68657220332c20372c2033302c2036302039302c206f722031383020646179736020830152604082019050919050565b6000615454602083615c50565b91507f596f7520616c7265616479206861766520616e20616374697665207374616b656000830152602082019050919050565b6000615494601983615c50565b91507f72657175697265732061646d696e2070726976696c65646765000000000000006000830152602082019050919050565b60006154d4601b83615c50565b91507f73686f756c64206861766520616e20616374697665207374616b6500000000006000830152602082019050919050565b60006101008301600083015161552060008601826156d7565b50602083015184820360208601526155388282614e1a565b915050604083015184820360408601526155528282614e1a565b9150506060830151848203606086015261556c8282614e1a565b915050608083015184820360808601526155868282614e1a565b91505060a083015161559b60a08601826156d7565b5060c08301516155ae60c08601826156d7565b5060e08301516155c160e0860182614dd7565b508091505092915050565b6000610180830160008301516155e560008601826156d7565b5060208301516155f86020860182614db9565b50604083015161560b60408601826156d7565b50606083015161561e6060860182614dd7565b5060808301516156316080860182614dd7565b5060a083015161564460a08601826156d7565b5060c083015161565760c08601826156d7565b5060e083015184820360e086015261566f8282614e1a565b9150506101008301516156866101008601826156d7565b5061012083015161569b6101208601826156d7565b506101408301518482036101408601526156b58282614e1a565b9150506101608301516156cc6101608601826156d7565b508091505092915050565b6156e081615cbc565b82525050565b6156ef81615cbc565b82525050565b6000615702828486614df5565b91508190509392505050565b600061571a8284614e8c565b915081905092915050565b600061573082614fa3565b9150819050919050565b600061574582615089565b9150819050919050565b600061575a8261526f565b9150819050919050565b600061576f826152d5565b9150819050919050565b600060208201905061578e6000830184614dc8565b92915050565b60006020820190506157a96000830184614de6565b92915050565b600060208201905081810360008301526157c98184614e53565b905092915050565b600060208201905081810360008301526157ea81614ebd565b9050919050565b6000602082019050818103600083015261580a81614f23565b9050919050565b6000602082019050818103600083015261582a81614f63565b9050919050565b6000602082019050818103600083015261584a81614fe3565b9050919050565b6000602082019050818103600083015261586a81615023565b9050919050565b6000602082019050818103600083015261588a816150c9565b9050919050565b600060208201905081810360008301526158aa8161512f565b9050919050565b600060208201905081810360008301526158ca8161516f565b9050919050565b600060208201905081810360008301526158ea816151af565b9050919050565b6000602082019050818103600083015261590a816151ef565b9050919050565b6000602082019050818103600083015261592a8161522f565b9050919050565b6000602082019050818103600083015261594a8161533b565b9050919050565b6000602082019050818103600083015261596a8161537b565b9050919050565b6000602082019050818103600083015261598a816153e1565b9050919050565b600060208201905081810360008301526159aa81615447565b9050919050565b600060208201905081810360008301526159ca81615487565b9050919050565b600060208201905081810360008301526159ea816154c7565b9050919050565b60006020820190508181036000830152615a0b8184615507565b905092915050565b60006020820190508181036000830152615a2d81846155cc565b905092915050565b6000602082019050615a4a60008301846156e6565b92915050565b600061018082019050615a66600083018f6156e6565b615a73602083018e614dc8565b615a80604083018d6156e6565b615a8d606083018c614de6565b615a9a608083018b614de6565b615aa760a083018a6156e6565b615ab460c08301896156e6565b81810360e0830152615ac68188614e53565b9050615ad66101008301876156e6565b615ae46101208301866156e6565b818103610140830152615af78185614e53565b9050615b076101608301846156e6565b9d9c50505050505050505050505050565b600061010082019050615b2e600083018b6156e6565b8181036020830152615b40818a614e53565b90508181036040830152615b548189614e53565b90508181036060830152615b688188614e53565b90508181036080830152615b7c8187614e53565b9050615b8b60a08301866156e6565b615b9860c08301856156e6565b615ba560e0830184614de6565b9998505050505050505050565b6000604082019050615bc760008301856156e6565b615bd460208301846156e6565b9392505050565b6000604051905081810181811067ffffffffffffffff82111715615bfe57600080fd5b8060405250919050565b600067ffffffffffffffff821115615c1f57600080fd5b601f19601f8301169050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000615c7782615c9c565b9050919050565b6000615c8982615c9c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015615cf3578082015181840152602081019050615cd8565b83811115615d02576000848401525b50505050565b6000601f19601f8301169050919050565b615d2281615c6c565b8114615d2d57600080fd5b50565b615d3981615c7e565b8114615d4457600080fd5b50565b615d5081615c90565b8114615d5b57600080fd5b50565b615d6781615cbc565b8114615d7257600080fd5b5056fea2646970667358221220754c9d3c2c19d072e0614f98d6b1217045d5e252c458a25dd3cb27bac0aa760064736f6c63430006060033
Deployed Bytecode
0x6080604052600436106101fd5760003560e01c806374e7493b1161010d578063b224904a116100a0578063dd62ed3e1161006f578063dd62ed3e1461081a578063e64a831514610857578063f51f96dd1461086e578063f53d0a8e14610899578063fdea8e0b146108c457610204565b8063b224904a1461074c578063cde27a3514610775578063d73dd623146107a0578063dc803b94146107dd57610204565b8063955b4347116100dc578063955b43471461067757806395d89b41146106bb578063a1488fca146106e6578063a9059cbb1461070f57610204565b806374e7493b1461058e578063775c3e29146105cb578063863ebb2d1461060f578063926ca64f1461064c57610204565b80632def66201161019057806352abd4131161015f57806352abd413146104525780635ba47b731461048f57806366188463146104d75780636645f4151461051457806370a082311461055157610204565b80632def6620146103935780632ff2e9dc146103be578063313ce567146103e9578063347b35801461041457610204565b806319b3ea59116101cc57806319b3ea59146102b35780631f57d294146102dc57806323b872dd1461031957806329735b081461035657610204565b806306fdde0314610209578063095ea7b3146102345780630be2caa61461027157806318160ddd1461028857610204565b3661020457005b600080fd5b34801561021557600080fd5b5061021e6108ce565b60405161022b91906157af565b60405180910390f35b34801561024057600080fd5b5061025b60048036038101906102569190614ae7565b610907565b6040516102689190615794565b60405180910390f35b34801561027d57600080fd5b506102866109f9565b005b34801561029457600080fd5b5061029d610b67565b6040516102aa9190615a35565b60405180910390f35b3480156102bf57600080fd5b506102da60048036038101906102d59190614a33565b610b71565b005b3480156102e857600080fd5b5061030360048036038101906102fe9190614c17565b610cbe565b60405161031091906159f1565b60405180910390f35b34801561032557600080fd5b50610340600480360381019061033b9190614a98565b611044565b60405161034d9190615794565b60405180910390f35b34801561036257600080fd5b5061037d60048036038101906103789190614d65565b6113f8565b60405161038a9190615a13565b60405180910390f35b34801561039f57600080fd5b506103a8611a84565b6040516103b59190615794565b60405180910390f35b3480156103ca57600080fd5b506103d3611fe5565b6040516103e09190615a35565b60405180910390f35b3480156103f557600080fd5b506103fe611ff0565b60405161040b9190615a35565b60405180910390f35b34801561042057600080fd5b5061043b60048036038101906104369190614d00565b611ff5565b604051610449929190615bb2565b60405180910390f35b34801561045e57600080fd5b5061047960048036038101906104749190614d00565b612026565b6040516104869190615794565b60405180910390f35b34801561049b57600080fd5b506104b660048036038101906104b19190614a33565b612262565b6040516104ce9c9b9a99989796959493929190615a50565b60405180910390f35b3480156104e357600080fd5b506104fe60048036038101906104f99190614ae7565b61242c565b60405161050b9190615794565b60405180910390f35b34801561052057600080fd5b5061053b60048036038101906105369190614b23565b6126bd565b6040516105489190615794565b60405180910390f35b34801561055d57600080fd5b5061057860048036038101906105739190614a33565b612a38565b6040516105859190615a35565b60405180910390f35b34801561059a57600080fd5b506105b560048036038101906105b09190614d00565b612a80565b6040516105c29190615794565b60405180910390f35b3480156105d757600080fd5b506105f260048036038101906105ed9190614bd6565b612b22565b604051610606989796959493929190615b18565b60405180910390f35b34801561061b57600080fd5b5061063660048036038101906106319190614b91565b612ded565b60405161064391906159f1565b60405180910390f35b34801561065857600080fd5b506106616132f6565b60405161066e9190615779565b60405180910390f35b34801561068357600080fd5b5061069e60048036038101906106999190614d00565b61331c565b6040516106b2989796959493929190615b18565b60405180910390f35b3480156106c757600080fd5b506106d06135de565b6040516106dd91906157af565b60405180910390f35b3480156106f257600080fd5b5061070d60048036038101906107089190614a33565b613617565b005b34801561071b57600080fd5b5061073660048036038101906107319190614ae7565b613764565b6040516107439190615794565b60405180910390f35b34801561075857600080fd5b50610773600480360381019061076e9190614b91565b61397f565b005b34801561078157600080fd5b5061078a613a25565b6040516107979190615a35565b60405180910390f35b3480156107ac57600080fd5b506107c760048036038101906107c29190614ae7565b613a2b565b6040516107d49190615794565b60405180910390f35b3480156107e957600080fd5b5061080460048036038101906107ff9190614d29565b613c27565b6040516108119190615794565b60405180910390f35b34801561082657600080fd5b50610841600480360381019061083c9190614a5c565b613d0a565b60405161084e9190615a35565b60405180910390f35b34801561086357600080fd5b5061086c613d91565b005b34801561087a57600080fd5b50610883614113565b6040516108909190615a35565b60405180910390f35b3480156108a557600080fd5b506108ae614119565b6040516108bb9190615779565b60405180910390f35b6108cc61413f565b005b6040518060400160405280600881526020017f596f6c65782e696f00000000000000000000000000000000000000000000000081525081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109e79190615a35565b60405180910390a36001905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8090615931565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16604051610b3190615725565b60405180910390207f7b153ace0d4d4c7d4f2e3436edb57dff13d9ac515fa402c09c39e958578f753960405160405180910390a3565b6000600154905090565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf8906159b1565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16604051610c879061574f565b60405180910390207f7b153ace0d4d4c7d4f2e3436edb57dff13d9ac515fa402c09c39e958578f753960405160405180910390a350565b610cc6614710565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610d6f57503373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610dae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da590615951565b60405180910390fd5b610db78261442b565b50610dc0614710565b604051806101000160405280600f548152602001888152602001898152602001878152602001868152602001848152602001858152602001600115158152509050600587604051610e11919061570e565b908152602001604051809103902060070160009054906101000a900460ff1615610e70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6790615811565b60405180910390fd5b600f6000815480929190600101919050555080600588604051610e93919061570e565b9081526020016040518091039020600082015181600001556020820151816001019080519060200190610ec7929190614757565b506040820151816002019080519060200190610ee4929190614757565b506060820151816003019080519060200190610f01929190614757565b506080820151816004019080519060200190610f1e929190614757565b5060a0820151816005015560c0820151816006015560e08201518160070160006101000a81548160ff0219169083151502179055509050506008819080600181540180825580915050600190039060005260206000209060080201600090919091909150600082015181600001556020820151816001019080519060200190610fa8929190614757565b506040820151816002019080519060200190610fc5929190614757565b506060820151816003019080519060200190610fe2929190614757565b506080820151816004019080519060200190610fff929190614757565b5060a0820151816005015560c0820151816006015560e08201518160070160006101000a81548160ff0219169083151502179055505050809150509695505050505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561107f57600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156110ca57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111561115357600080fd5b6111a4826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461454190919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611237826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461455890919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061130882600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461454190919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113e59190615a35565b60405180910390a3600190509392505050565b6114006147d7565b611408614710565b600583604051611418919061570e565b90815260200160405180910390206040518061010001604052908160008201548152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114d55780601f106114aa576101008083540402835291602001916114d5565b820191906000526020600020905b8154815290600101906020018083116114b857829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115775780601f1061154c57610100808354040283529160200191611577565b820191906000526020600020905b81548152906001019060200180831161155a57829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116195780601f106115ee57610100808354040283529160200191611619565b820191906000526020600020905b8154815290600101906020018083116115fc57829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116bb5780601f10611690576101008083540402835291602001916116bb565b820191906000526020600020905b81548152906001019060200180831161169e57829003601f168201915b5050505050815260200160058201548152602001600682015481526020016007820160009054906101000a900460ff16151515158152505090506000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054841115611776576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176d906157f1565b60405180910390fd5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900460ff1615611806576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fd90615991565b60405180910390fd5b8060e0015161184a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184190615851565b60405180910390fd5b600061187660646118688460c001518861457290919063ffffffff16565b6145a690919063ffffffff16565b905060006118878360a0015161442b565b90506118933087613764565b5061189c6147d7565b604051806101800160405280600e5481526020013373ffffffffffffffffffffffffffffffffffffffff16815260200188815260200160011515815260200160001515815260200142815260200183815260200187815260200160008152602001848152602001856080015181526020018560c001518152509050600e6000815480929190600101919050555080600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002015560608201518160030160006101000a81548160ff02191690831515021790555060808201518160030160016101000a81548160ff02191690831515021790555060a0820151816004015560c0820151816005015560e0820151816006019080519060200190611a34929190614757565b5061010082015181600701556101208201518160080155610140820151816009019080519060200190611a68929190614757565b5061016082015181600a01559050508094505050505092915050565b6000611a8e6147d7565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060405180610180016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015481526020016003820160009054906101000a900460ff161515151581526020016003820160019054906101000a900460ff161515151581526020016004820154815260200160058201548152602001600682018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c265780601f10611bfb57610100808354040283529160200191611c26565b820191906000526020600020905b815481529060010190602001808311611c0957829003601f168201915b505050505081526020016007820154815260200160088201548152602001600982018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611cdc5780601f10611cb157610100808354040283529160200191611cdc565b820191906000526020600020905b815481529060010190602001808311611cbf57829003601f168201915b50505050508152602001600a820154815250509050428160c001511115611d38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2f90615831565b60405180910390fd5b8060800151611d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d73906157d1565b60405180910390fd5b8060600151611dc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db7906158d1565b60405180910390fd5b600081604001519050611e1a816000803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461454190919063ffffffff16565b6000803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611e768361010001518361455890919063ffffffff16565b9050611ec9816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461455890919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160006101000a81548160ff021916908315150217905550611f748361010001516145ba565b50503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611fd39190615a35565b60405180910390a36001935050505090565b6012600a0a60640281565b601281565b6006818154811061200257fe5b90600052602060002090600202016000915090508060000154908060010154905082565b6000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900460ff166120b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ae906159d1565b60405180910390fd5b6120c13083613764565b5061211782600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015461455890919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055506000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050600061220e6064612200600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600a01548561457290919063ffffffff16565b6145a690919063ffffffff16565b905080600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080181905550600192505050919050565b60076020528060005260406000206000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030160009054906101000a900460ff16908060030160019054906101000a900460ff1690806004015490806005015490806006018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123725780601f1061234757610100808354040283529160200191612372565b820191906000526020600020905b81548152906001019060200180831161235557829003601f168201915b505050505090806007015490806008015490806009018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561241c5780601f106123f15761010080835404028352916020019161241c565b820191906000526020600020905b8154815290600101906020018083116123ff57829003601f168201915b50505050509080600a015490508c565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508083111561253d576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125d1565b612550838261454190919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516126aa9190615a35565b60405180910390a3600191505092915050565b60003373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061276857503373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b6127a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279e90615951565b60405180910390fd5b60008090505b83839050811015612a2d5760006128478585848181106127c957fe5b90506060020160200135600760008888878181106127e357fe5b90506060020160000160208101906127fb9190614a33565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206007015461455890919063ffffffff16565b9050600115156007600087878681811061285d57fe5b90506060020160000160208101906128759190614a33565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900460ff1615151480156129345750600760008686858181106128da57fe5b90506060020160000160208101906128f29190614a33565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600801548111155b15612a1f57806007600087878681811061294a57fe5b90506060020160000160208101906129629190614a33565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600701819055508484838181106129af57fe5b90506060020160400160208101906129c79190614b68565b15612a1e57612a1c8585848181106129db57fe5b90506060020160000160208101906129f39190614a33565b8686858181106129ff57fe5b9050606002016040016020810190612a179190614b68565b61463b565b505b5b5080806001019150506127ad565b506001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60003373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612b12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b09906159b1565b60405180910390fd5b8160098190555060019050919050565b600581805160208101820180518482526020830160208501208183528095505050505050600091509050806000015490806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612bea5780601f10612bbf57610100808354040283529160200191612bea565b820191906000526020600020905b815481529060010190602001808311612bcd57829003601f168201915b505050505090806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612c885780601f10612c5d57610100808354040283529160200191612c88565b820191906000526020600020905b815481529060010190602001808311612c6b57829003601f168201915b505050505090806003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612d265780601f10612cfb57610100808354040283529160200191612d26565b820191906000526020600020905b815481529060010190602001808311612d0957829003601f168201915b505050505090806004018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612dc45780601f10612d9957610100808354040283529160200191612dc4565b820191906000526020600020905b815481529060010190602001808311612da757829003601f168201915b5050505050908060050154908060060154908060070160009054906101000a900460ff16905088565b612df5614710565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480612e9e57503373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b612edd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ed490615951565b60405180910390fd5b606083838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505090506001815111612f6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f6190615871565b60405180910390fd5b600060058585604051612f7e9291906156f5565b908152602001604051809103902060070160006101000a81548160ff0219169083151502179055506000600860058686604051612fbc9291906156f5565b90815260200160405180910390206000015481548110612fd857fe5b906000526020600020906008020160070160006101000a81548160ff021916908315150217905550600584846040516130129291906156f5565b90815260200160405180910390206040518061010001604052908160008201548152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156130cf5780601f106130a4576101008083540402835291602001916130cf565b820191906000526020600020905b8154815290600101906020018083116130b257829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131715780601f1061314657610100808354040283529160200191613171565b820191906000526020600020905b81548152906001019060200180831161315457829003601f168201915b50505050508152602001600382018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132135780601f106131e857610100808354040283529160200191613213565b820191906000526020600020905b8154815290600101906020018083116131f657829003601f168201915b50505050508152602001600482018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132b55780601f1061328a576101008083540402835291602001916132b5565b820191906000526020600020905b81548152906001019060200180831161329857829003601f168201915b5050505050815260200160058201548152602001600682015481526020016007820160009054906101000a900460ff16151515158152505091505092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6008818154811061332957fe5b9060005260206000209060080201600091509050806000015490806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156133db5780601f106133b0576101008083540402835291602001916133db565b820191906000526020600020905b8154815290600101906020018083116133be57829003601f168201915b505050505090806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156134795780601f1061344e57610100808354040283529160200191613479565b820191906000526020600020905b81548152906001019060200180831161345c57829003601f168201915b505050505090806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156135175780601f106134ec57610100808354040283529160200191613517565b820191906000526020600020905b8154815290600101906020018083116134fa57829003601f168201915b505050505090806004018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156135b55780601f1061358a576101008083540402835291602001916135b5565b820191906000526020600020905b81548152906001019060200180831161359857829003601f168201915b5050505050908060050154908060060154908060070160009054906101000a900460ff16905088565b6040518060400160405280600381526020017f594558000000000000000000000000000000000000000000000000000000000081525081565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146136a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161369e906159b1565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660405161372d90615764565b60405180910390207f7b153ace0d4d4c7d4f2e3436edb57dff13d9ac515fa402c09c39e958578f753960405160405180910390a350565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561379f57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156137ea57600080fd5b61383b826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461454190919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506138ce826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461455890919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161396d9190615a35565b60405180910390a36001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613a0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613a06906159b1565b60405180910390fd5b8181600b9190613a20929190614852565b505050565b600a5481565b6000613abc82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461455890919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051613c159190615a35565b60405180910390a36001905092915050565b60003373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613cb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613cb0906159b1565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015613cff573d6000803e3d6000fd5b506001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e1890615911565b60405180910390fd5b6000806000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050613ef981600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461454190919063ffffffff16565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613fd081600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461455890919063ffffffff16565b600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166040516140dc9061573a565b60405180910390207f7b153ace0d4d4c7d4f2e3436edb57dff13d9ac515fa402c09c39e958578f753960405160405180910390a350565b60095481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600954341015614184576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161417b906158f1565b60405180910390fd5b602d600a54106141c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016141c0906158b1565b60405180910390fd5b60006141e0600954346145a690919063ffffffff16565b905060006141fb6012600a0a8361457290919063ffffffff16565b905061427081600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461454190919063ffffffff16565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614325816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461455890919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061437c82600a5461455890919063ffffffff16565b600a8190555061442681600b8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561441c5780601f106143f15761010080835404028352916020019161441c565b820191906000526020600020905b8154815290600101906020018083116143ff57829003601f168201915b50505050506113f8565b505050565b6000600382141561444357620546004201905061453c565b600782141561446957614462620a8c004261455890919063ffffffff16565b905061453c565b601e82141561448f576144886228de804261455890919063ffffffff16565b905061453c565b603c8214156144b5576144ae62506b804261455890919063ffffffff16565b905061453c565b605a8214156144db576144d46277f8804261455890919063ffffffff16565b905061453c565b60b4821415614501576144fa62ee9f804261455890919063ffffffff16565b905061453c565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161453390615971565b60405180910390fd5b919050565b60008282111561454d57fe5b818303905092915050565b600081830190508281101561456957fe5b80905092915050565b60008083141561458557600090506145a0565b81830290508183828161459457fe5b041461459c57fe5b8090505b92915050565b60008183816145b157fe5b04905092915050565b6000806145d28360015461455890919063ffffffff16565b60018190555060066040518060400160405280858152602001428152509080600181540180825580915050600190039060005260206000209060020201600090919091909150600082015181600001556020820151816001015550506001805491509150915091565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156146ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016146a390615891565b60405180910390fd5b81600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160016101000a81548160ff0219169083151502179055506001905092915050565b604051806101000160405280600081526020016060815260200160608152602001606081526020016060815260200160008152602001600081526020016000151581525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061479857805160ff19168380011785556147c6565b828001600101855582156147c6579182015b828111156147c55782518255916020019190600101906147aa565b5b5090506147d391906148d2565b5090565b60405180610180016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600015158152602001600015158152602001600081526020016000815260200160608152602001600081526020016000815260200160608152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061489357803560ff19168380011785556148c1565b828001600101855582156148c1579182015b828111156148c05782358255916020019190600101906148a5565b5b5090506148ce91906148d2565b5090565b6148f491905b808211156148f05760008160009055506001016148d8565b5090565b90565b60008135905061490681615d19565b92915050565b60008135905061491b81615d30565b92915050565b60008083601f84011261493357600080fd5b8235905067ffffffffffffffff81111561494c57600080fd5b60208301915083606082028301111561496457600080fd5b9250929050565b60008135905061497a81615d47565b92915050565b60008083601f84011261499257600080fd5b8235905067ffffffffffffffff8111156149ab57600080fd5b6020830191508360018202830111156149c357600080fd5b9250929050565b600082601f8301126149db57600080fd5b81356149ee6149e982615c08565b615bdb565b91508082526020830160208301858383011115614a0a57600080fd5b614a15838284615cc6565b50505092915050565b600081359050614a2d81615d5e565b92915050565b600060208284031215614a4557600080fd5b6000614a53848285016148f7565b91505092915050565b60008060408385031215614a6f57600080fd5b6000614a7d858286016148f7565b9250506020614a8e858286016148f7565b9150509250929050565b600080600060608486031215614aad57600080fd5b6000614abb868287016148f7565b9350506020614acc868287016148f7565b9250506040614add86828701614a1e565b9150509250925092565b60008060408385031215614afa57600080fd5b6000614b08858286016148f7565b9250506020614b1985828601614a1e565b9150509250929050565b60008060208385031215614b3657600080fd5b600083013567ffffffffffffffff811115614b5057600080fd5b614b5c85828601614921565b92509250509250929050565b600060208284031215614b7a57600080fd5b6000614b888482850161496b565b91505092915050565b60008060208385031215614ba457600080fd5b600083013567ffffffffffffffff811115614bbe57600080fd5b614bca85828601614980565b92509250509250929050565b600060208284031215614be857600080fd5b600082013567ffffffffffffffff811115614c0257600080fd5b614c0e848285016149ca565b91505092915050565b60008060008060008060c08789031215614c3057600080fd5b600087013567ffffffffffffffff811115614c4a57600080fd5b614c5689828a016149ca565b965050602087013567ffffffffffffffff811115614c7357600080fd5b614c7f89828a016149ca565b955050604087013567ffffffffffffffff811115614c9c57600080fd5b614ca889828a016149ca565b945050606087013567ffffffffffffffff811115614cc557600080fd5b614cd189828a016149ca565b9350506080614ce289828a01614a1e565b92505060a0614cf389828a01614a1e565b9150509295509295509295565b600060208284031215614d1257600080fd5b6000614d2084828501614a1e565b91505092915050565b60008060408385031215614d3c57600080fd5b6000614d4a85828601614a1e565b9250506020614d5b8582860161490c565b9150509250929050565b60008060408385031215614d7857600080fd5b6000614d8685828601614a1e565b925050602083013567ffffffffffffffff811115614da357600080fd5b614daf858286016149ca565b9150509250929050565b614dc281615c6c565b82525050565b614dd181615c6c565b82525050565b614de081615c90565b82525050565b614def81615c90565b82525050565b6000614e018385615c61565b9350614e0e838584615cc6565b82840190509392505050565b6000614e2582615c34565b614e2f8185615c3f565b9350614e3f818560208601615cd5565b614e4881615d08565b840191505092915050565b6000614e5e82615c34565b614e688185615c50565b9350614e78818560208601615cd5565b614e8181615d08565b840191505092915050565b6000614e9782615c34565b614ea18185615c61565b9350614eb1818560208601615cd5565b80840191505092915050565b6000614eca602483615c50565b91507f726577617264206973206e6f74206d61747572656420666f722077697468647260008301527f6177616c000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000614f30601083615c50565b91507f696e7375666669656e742066756e6473000000000000000000000000000000006000830152602082019050919050565b6000614f70601f83615c50565b91507f7061636b6167652073796d626f6c2073686f756c6420626520756e69717565006000830152602082019050919050565b6000614fb0601683615c61565b91507f4e657720636f6e74726f6c6c65722061646472657373000000000000000000006000830152601682019050919050565b6000614ff0601283615c50565b91507f63616e6e6f7420756e7374616b652079657400000000000000000000000000006000830152602082019050919050565b6000615030602d83615c50565b91507f596f752063616e206f6e6c79207374616b65206f6e206120616374697665207260008301527f6577617264207061636b616765000000000000000000000000000000000000006020830152604082019050919050565b6000615096601883615c61565b91507f4e65772041646d696e73747261746f72206164647265737300000000000000006000830152601882019050919050565b60006150d6602683615c50565b91507f546865207061636b6167652073796d626f6c2073686f756c642062652073706560008301527f63696669656400000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061513c601d83615c50565b91507f74686520737461636b65722061646472657373206973206e65656465640000006000830152602082019050919050565b600061517c600f83615c50565b91507f70726573616c6520636c6f7365642e00000000000000000000000000000000006000830152602082019050919050565b60006151bc601e83615c50565b91507f7374616b696e672073686f756c64207374696c6c2062652061637469766500006000830152602082019050919050565b60006151fc601283615c50565b91507f73656e742065746820746f6f20736d616c6c00000000000000000000000000006000830152602082019050919050565b600061523c602083615c50565b91507f6e65772061646d6973747261746f722061646472657373206d69736d617463686000830152602082019050919050565b600061527c602383615c61565b91507f636f6e6669726d696e67206e65772041646d696e73747261746f72206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152602382019050919050565b60006152e2602183615c61565b91507f636f6e6669726d696e67206e657720636f6e74726f6c6c65722061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152602182019050919050565b6000615348601f83615c50565b91507f6e657720636f6e74726f6c6c65722061646472657373206d69736d61746368006000830152602082019050919050565b6000615388602783615c50565b91507f726571756972657320636f6e74726f6c6c6572206f722061646d696e2070726960008301527f76696c65646765000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006153ee604083615c50565b91507f546865206e756d626572206f6620646179732073686f756c642062652065697460008301527f68657220332c20372c2033302c2036302039302c206f722031383020646179736020830152604082019050919050565b6000615454602083615c50565b91507f596f7520616c7265616479206861766520616e20616374697665207374616b656000830152602082019050919050565b6000615494601983615c50565b91507f72657175697265732061646d696e2070726976696c65646765000000000000006000830152602082019050919050565b60006154d4601b83615c50565b91507f73686f756c64206861766520616e20616374697665207374616b6500000000006000830152602082019050919050565b60006101008301600083015161552060008601826156d7565b50602083015184820360208601526155388282614e1a565b915050604083015184820360408601526155528282614e1a565b9150506060830151848203606086015261556c8282614e1a565b915050608083015184820360808601526155868282614e1a565b91505060a083015161559b60a08601826156d7565b5060c08301516155ae60c08601826156d7565b5060e08301516155c160e0860182614dd7565b508091505092915050565b6000610180830160008301516155e560008601826156d7565b5060208301516155f86020860182614db9565b50604083015161560b60408601826156d7565b50606083015161561e6060860182614dd7565b5060808301516156316080860182614dd7565b5060a083015161564460a08601826156d7565b5060c083015161565760c08601826156d7565b5060e083015184820360e086015261566f8282614e1a565b9150506101008301516156866101008601826156d7565b5061012083015161569b6101208601826156d7565b506101408301518482036101408601526156b58282614e1a565b9150506101608301516156cc6101608601826156d7565b508091505092915050565b6156e081615cbc565b82525050565b6156ef81615cbc565b82525050565b6000615702828486614df5565b91508190509392505050565b600061571a8284614e8c565b915081905092915050565b600061573082614fa3565b9150819050919050565b600061574582615089565b9150819050919050565b600061575a8261526f565b9150819050919050565b600061576f826152d5565b9150819050919050565b600060208201905061578e6000830184614dc8565b92915050565b60006020820190506157a96000830184614de6565b92915050565b600060208201905081810360008301526157c98184614e53565b905092915050565b600060208201905081810360008301526157ea81614ebd565b9050919050565b6000602082019050818103600083015261580a81614f23565b9050919050565b6000602082019050818103600083015261582a81614f63565b9050919050565b6000602082019050818103600083015261584a81614fe3565b9050919050565b6000602082019050818103600083015261586a81615023565b9050919050565b6000602082019050818103600083015261588a816150c9565b9050919050565b600060208201905081810360008301526158aa8161512f565b9050919050565b600060208201905081810360008301526158ca8161516f565b9050919050565b600060208201905081810360008301526158ea816151af565b9050919050565b6000602082019050818103600083015261590a816151ef565b9050919050565b6000602082019050818103600083015261592a8161522f565b9050919050565b6000602082019050818103600083015261594a8161533b565b9050919050565b6000602082019050818103600083015261596a8161537b565b9050919050565b6000602082019050818103600083015261598a816153e1565b9050919050565b600060208201905081810360008301526159aa81615447565b9050919050565b600060208201905081810360008301526159ca81615487565b9050919050565b600060208201905081810360008301526159ea816154c7565b9050919050565b60006020820190508181036000830152615a0b8184615507565b905092915050565b60006020820190508181036000830152615a2d81846155cc565b905092915050565b6000602082019050615a4a60008301846156e6565b92915050565b600061018082019050615a66600083018f6156e6565b615a73602083018e614dc8565b615a80604083018d6156e6565b615a8d606083018c614de6565b615a9a608083018b614de6565b615aa760a083018a6156e6565b615ab460c08301896156e6565b81810360e0830152615ac68188614e53565b9050615ad66101008301876156e6565b615ae46101208301866156e6565b818103610140830152615af78185614e53565b9050615b076101608301846156e6565b9d9c50505050505050505050505050565b600061010082019050615b2e600083018b6156e6565b8181036020830152615b40818a614e53565b90508181036040830152615b548189614e53565b90508181036060830152615b688188614e53565b90508181036080830152615b7c8187614e53565b9050615b8b60a08301866156e6565b615b9860c08301856156e6565b615ba560e0830184614de6565b9998505050505050505050565b6000604082019050615bc760008301856156e6565b615bd460208301846156e6565b9392505050565b6000604051905081810181811067ffffffffffffffff82111715615bfe57600080fd5b8060405250919050565b600067ffffffffffffffff821115615c1f57600080fd5b601f19601f8301169050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000615c7782615c9c565b9050919050565b6000615c8982615c9c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015615cf3578082015181840152602081019050615cd8565b83811115615d02576000848401525b50505050565b6000601f19601f8301169050919050565b615d2281615c6c565b8114615d2d57600080fd5b50565b615d3981615c7e565b8114615d4457600080fd5b50565b615d5081615c90565b8114615d5b57600080fd5b50565b615d6781615cbc565b8114615d7257600080fd5b5056fea2646970667358221220754c9d3c2c19d072e0614f98d6b1217045d5e252c458a25dd3cb27bac0aa760064736f6c63430006060033
Deployed Bytecode Sourcemap
7690:9369:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;7364:40:0;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7364:40:0;;;:::i;:::-;;;;;;;;;;;;;;;;4908:201;;5:9:-1;2:2;;;27:1;24;17:12;2:2;4908:201:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;10432:249;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10432:249:0;;;:::i;:::-;;2390:94;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2390:94:0;;;:::i;:::-;;;;;;;;;;;;;;;;9541:213;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9541:213:0;;;;;;;;;;;;;;;;:::i;:::-;;13897:895;;5:9:-1;2:2;;;27:1;24;17:12;2:2;13897:895:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;3810:463;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3810:463:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;11249:896;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11249:896:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;12157:715;;5:9:-1;2:2;;;27:1;24;17:12;2:2;12157:715:0;;;:::i;:::-;;;;;;;;;;;;;;;;7490:63;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7490:63:0;;;:::i;:::-;;;;;;;;;;;;;;;;7451:34;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7451:34:0;;;:::i;:::-;;;;;;;;;;;;;;;;7832:44;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7832:44:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;15497:533;;5:9:-1;2:2;;;27:1;24;17:12;2:2;15497:533:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;7882:42;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7882:42:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;6782:412;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6782:412:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;12885:722;;5:9:-1;2:2;;;27:1;24;17:12;2:2;12885:722:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;3195:111;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3195:111:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;9399:132;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9399:132:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;7772:54;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7772:54:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16040:402;;5:9:-1;2:2;;;27:1;24;17:12;2:2;16040:402:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;7736:30;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7736:30:0;;;:::i;:::-;;;;;;;;;;;;;;;;7930:37;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7930:37:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7409;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7409:37:0;;;:::i;:::-;;;;;;;;;;;;;;;;10195:228;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10195:228:0;;;;;;;;;;;;;;;;:::i;:::-;;2648:338;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2648:338:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;16694:130;;5:9:-1;2:2;;;27:1;24;17:12;2:2;16694:130:0;;;;;;;;;;;;;;;;:::i;:::-;;8010:28;;5:9:-1;2:2;;;27:1;24;17:12;2:2;8010:28:0;;;:::i;:::-;;;;;;;;;;;;;;;;6042:266;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6042:266:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;16836:179;;5:9:-1;2:2;;;27:1;24;17:12;2:2;16836:179:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;5436:137;;5:9:-1;2:2;;;27:1;24;17:12;2:2;5436:137:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;9763:423;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9763:423:0;;;:::i;:::-;;7973:31;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7973:31:0;;;:::i;:::-;;;;;;;;;;;;;;;;7331:28;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7331:28:0;;;:::i;:::-;;;;;;;;;;;;;;;;10688:514;;;:::i;:::-;;7364:40;;;;;;;;;;;;;;;;;;;:::o;4908:201::-;4984:4;5029:6;4997:7;:19;5005:10;4997:19;;;;;;;;;;;;;;;:29;5017:8;4997:29;;;;;;;;;;;;;;;:38;;;;5068:8;5047:38;;5056:10;5047:38;;;5078:6;5047:38;;;;;;;;;;;;;;;5099:4;5092:11;;4908:201;;;;:::o;10432:249::-;10505:20;;;;;;;;;;;10491:34;;:10;:34;;;10483:78;;;;;;;;;;;;;;;;;;;;;;10587:20;;;;;;;;;;;10569:15;;:38;;;;;;;;;;;;;;;;;;10658:15;;;;;;;;;;;10620:54;;;;;;;;;;;;;;;;;;;;;;;;;;10432:249::o;2390:94::-;2443:7;2466:12;;2459:19;;2390:94;:::o;9541:213::-;7623:10;7606:27;;:13;;;;;;;;;;;:27;;;7598:65;;;;;;;;;;;;;;;;;;;;;;9651:16:::1;9633:15;;:34;;;;;;;;;;;;;;;;;;9731:15;;;;;;;;;;;9680:67;;;;;;;;;;;;;;;;;;;;;;;;;;9541:213:::0;:::o;13897:895::-;14161:20;;:::i;:::-;8314:10;8297:27;;:13;;;;;;;;;;;:27;;;:67;;;;8354:10;8335:29;;:15;;;;;;;;;;;:29;;;8297:67;8282:132;;;;;;;;;;;;;;;;;;;;;;14193:38:::1;14215:15;14193:21;:38::i;:::-;;14241:29;;:::i;:::-;14273:213;;;;;;;;14298:9;;14273:213;;;;14319:7;14273:213;;;;14338:12;14273:213;;;;14362:14;14273:213;;;;14388:14;14273:213;;;;14414:15;14273:213;;;;14441:17;14273:213;;;;14470:4;14273:213;;;;::::0;14241:245:::1;;14502:14;14517:7;14502:23;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;14498:288;;;14552:41;;;;;;;;;;;;;;;;;;;14498:288;14632:9;;:11;;;;;;;;;;;;;14686:8;14660:14;14675:7;14660:23;;;;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14711:14;14731:8;14711:29;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;14711:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14764:8;14757:15;;;13897:895:::0;;;;;;;;:::o;3810:463::-;3901:4;3937:1;3922:17;;:3;:17;;;;3914:26;;12:1:-1;9;2:12;3914:26:0;3965:8;:15;3974:5;3965:15;;;;;;;;;;;;;;;;3955:6;:25;;3947:34;;12:1:-1;9;2:12;3947:34:0;4006:7;:14;4014:5;4006:14;;;;;;;;;;;;;;;:26;4021:10;4006:26;;;;;;;;;;;;;;;;3996:6;:36;;3988:45;;12:1:-1;9;2:12;3988:45:0;4060:27;4080:6;4060:8;:15;4069:5;4060:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;4042:8;:15;4051:5;4042:15;;;;;;;;;;;;;;;:45;;;;4110:25;4128:6;4110:8;:13;4119:3;4110:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;4094:8;:13;4103:3;4094:13;;;;;;;;;;;;;;;:41;;;;4171:38;4202:6;4171:7;:14;4179:5;4171:14;;;;;;;;;;;;;;;:26;4186:10;4171:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;4142:7;:14;4150:5;4142:14;;;;;;;;;;;;;;;:26;4157:10;4142:26;;;;;;;;;;;;;;;:67;;;;4237:3;4221:28;;4230:5;4221:28;;;4242:6;4221:28;;;;;;;;;;;;;;;4263:4;4256:11;;3810:463;;;;;:::o;11249:896::-;11349:13;;:::i;:::-;11374:29;;:::i;:::-;11406:14;11421;11406:30;;;;;;;;;;;;;;;;;;;;11374:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11465:8;:20;11474:10;11465:20;;;;;;;;;;;;;;;;11454:7;:31;;11446:60;;;;;;;;;;;;;;;;;;;;;;11525:8;:20;11534:10;11525:20;;;;;;;;;;;;;;;:29;;;;;;;;;;;;11524:30;11516:75;;;;;;;;;;;;;;;;;;;;;;11609:8;:17;;;11601:75;;;;;;;;;;;;;;;;;;;;;;11686:18;11707:47;11750:3;11707:38;11719:8;:25;;;11707:7;:11;;:38;;;;:::i;:::-;:42;;:47;;;;:::i;:::-;11686:68;;11764:16;11783:46;11805:8;:23;;;11783:21;:46::i;:::-;11764:65;;11839:32;11856:4;11863:7;11839:8;:32::i;:::-;;11881:21;;:::i;:::-;11905:148;;;;;;;;11912:9;;11905:148;;;;11923:10;11905:148;;;;;;11935:7;11905:148;;;;11944:4;11905:148;;;;;;11950:5;11905:148;;;;;;11957:3;11905:148;;;;11962:8;11905:148;;;;11972:14;11905:148;;;;11988:1;11905:148;;;;11991:10;11905:148;;;;12003:8;:22;;;11905:148;;;;12027:8;:25;;;11905:148;;;11881:172;;12063:9;;:11;;;;;;;;;;;;;12107:7;12084:8;:20;12093:10;12084:20;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;12131:7;12124:14;;;;;;11249:896;;;;:::o;12157:715::-;12193:12;12214:21;;:::i;:::-;12238:8;:20;12247:10;12238:20;;;;;;;;;;;;;;;12214:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12293:3;12274:7;:15;;;:22;;12266:53;;;;;;;;;;;;;;;;;;;;;;12335:7;:17;;;12327:66;;;;;;;;;;;;;;;;;;;;;;12409:7;:16;;;12401:59;;;;;;;;;;;;;;;;;;;;;;12468:15;12486:7;:20;;;12468:38;;12540:36;12568:7;12540:8;:23;12557:4;12540:23;;;;;;;;;;;;;;;;:27;;:36;;;;:::i;:::-;12514:8;:23;12531:4;12514:23;;;;;;;;;;;;;;;:62;;;;12584:20;12607:28;12619:7;:15;;;12607:7;:11;;:28;;;;:::i;:::-;12584:51;;12666:38;12691:12;12666:8;:20;12675:10;12666:20;;;;;;;;;;;;;;;;:24;;:38;;;;:::i;:::-;12643:8;:20;12652:10;12643:20;;;;;;;;;;;;;;;:61;;;;12744:5;12712:8;:20;12721:10;12712:20;;;;;;;;;;;;;;;:29;;;:37;;;;;;;;;;;;;;;;;;12757:27;12768:7;:15;;;12757:10;:27::i;:::-;;;12821:10;12797:49;;12814:4;12797:49;;;12833:12;12797:49;;;;;;;;;;;;;;;12861:4;12854:11;;;;;12157:715;:::o;7490:63::-;7483:2;7538;:14;7531:3;:22;7490:63;:::o;7451:34::-;7483:2;7451:34;:::o;7832:44::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;15497:533::-;15559:12;15590:8;:20;15599:10;15590:20;;;;;;;;;;;;;;;:29;;;;;;;;;;;;15582:69;;;;;;;;;;;;;;;;;;;;;;15661:32;15678:4;15685:7;15661:8;:32::i;:::-;;15739:46;15777:7;15739:8;:20;15748:10;15739:20;;;;;;;;;;;;;;;:33;;;:37;;:46;;;;:::i;:::-;15703:8;:20;15712:10;15703:20;;;;;;;;;;;;;;;:33;;:82;;;;15795:21;15819:8;:20;15828:10;15819:20;;;;;;;;;;;;;;;:33;;;15795:57;;15862:18;15883:65;15944:3;15883:56;15901:8;:20;15910:10;15901:20;;;;;;;;;;;;;;;:37;;;15883:13;:17;;:56;;;;:::i;:::-;:60;;:65;;;;:::i;:::-;15862:86;;15991:10;15958:8;:20;15967:10;15958:20;;;;;;;;;;;;;;;:30;;:43;;;;16018:4;16011:11;;;;15497:533;;;:::o;7882:42::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6782:412::-;6865:4;6878:13;6894:7;:19;6902:10;6894:19;;;;;;;;;;;;;;;:29;6914:8;6894:29;;;;;;;;;;;;;;;;6878:45;;6953:8;6934:16;:27;6930:168;;;7004:1;6972:7;:19;6980:10;6972:19;;;;;;;;;;;;;;;:29;6992:8;6972:29;;;;;;;;;;;;;;;:33;;;;6930:168;;;7060:30;7073:16;7060:8;:12;;:30;;;;:::i;:::-;7028:7;:19;7036:10;7028:19;;;;;;;;;;;;;;;:29;7048:8;7028:29;;;;;;;;;;;;;;;:62;;;;6930:168;7130:8;7109:61;;7118:10;7109:61;;;7140:7;:19;7148:10;7140:19;;;;;;;;;;;;;;;:29;7160:8;7140:29;;;;;;;;;;;;;;;;7109:61;;;;;;;;;;;;;;;7184:4;7177:11;;;6782:412;;;;:::o;12885:722::-;12980:4;8314:10;8297:27;;:13;;;;;;;;;;;:27;;;:67;;;;8354:10;8335:29;;:15;;;;;;;;;;;:29;;;8297:67;8282:132;;;;;;;;;;;;;;;;;;;;;;12999:10:::1;13012:1:::0;12999:14:::1;;12994:587;13023:8;;:15;;13015:5;:23;12994:587;;;13062:17;13082:75;13134:8;;13143:5;13134:15;;;;;;;;;;;;:22;;;13082:8;:39;13091:8;;13100:5;13091:15;;;;;;;;;;;;:29;;;;;;;;;;;;13082:39;;;;;;;;;;;;;;;:47;;;:51;;:75;;;;:::i;:::-;13062:95;;13226:4;13174:56;;:8;:39;13183:8;;13192:5;13183:15;;;;;;;;;;;;:29;;;;;;;;;;;;13174:39;;;;;;;;;;;;;;;:48;;;;;;;;;;;;:56;;;:141;;;;;13266:8;:39;13275:8;;13284:5;13275:15;;;;;;;;;;;;:29;;;;;;;;;;;;13266:39;;;;;;;;;;;;;;;:49;;;13250:12;:65;;13174:141;13170:402;;;13385:12;13335:8;:39;13344:8;;13353:5;13344:15;;;;;;;;;;;;:29;;;;;;;;;;;;13335:39;;;;;;;;;;;;;;;:47;;:62;;;;13418:8;;13427:5;13418:15;;;;;;;;;;;;:25;;;;;;;;;;;;13415:144;;;13466:74;13483:8;;13492:5;13483:15;;;;;;;;;;;;:29;;;;;;;;;;;;13514:8;;13523:5;13514:15;;;;;;;;;;;;:25;;;;;;;;;;;;13466:16;:74::i;:::-;;13415:144;13170:402;12994:587;13040:7;;;;;;;12994:587;;;;13596:4;13589:11;;12885:722:::0;;;;:::o;3195:111::-;3261:7;3284:8;:16;3293:6;3284:16;;;;;;;;;;;;;;;;3277:23;;3195:111;;;:::o;9399:132::-;9468:4;7623:10;7606:27;;:13;;;;;;;;;;;:27;;;7598:65;;;;;;;;;;;;;;;;;;;;;;9495:8:::1;9483:9;:20;;;;9520:4;9513:11;;9399:132:::0;;;:::o;7772:54::-;;;28:7:-1;22:14;169:4;160:7;156:18;147:7;143:32;204:13;198:20;246:8;231:13;224:31;316:4;307:7;303:18;296:4;287:7;283:18;273:49;350:9;335:13;328:32;378:4;366:16;;0:388;;;;7772:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16040:402::-;16124:20;;:::i;:::-;8314:10;8297:27;;:13;;;;;;;;;;;:27;;;:67;;;;8354:10;8335:29;;:15;;;;;;;;;;;:29;;;8297:67;8282:132;;;;;;;;;;;;;;;;;;;;;;16155:22:::1;16186:7;;16155:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;16155:39:0;;;;;;;;16231:1;16212:9;:16;:20;16204:71;;;;;;;;;;;;;;;;;;;;;;16320:5;16285:14;16300:7;;16285:23;;;;;;;;;;;;;;;;;;;;;:32;;;:40;;;;;;;;;;;;;;;;;;16389:5;16335:14;16350;16365:7;;16350:23;;;;;;;;;;;;;;;;;;;;;:26;;;16335:42;;;;;;;;;;;;;;;;;;:51;;;:59;;;;;;;;;;;;;;;;;;16411:14;16426:7;;16411:23;;;;;;;;;;;;;;;;;;;;;16404:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;16040:402:::0;;;;:::o;7736:30::-;;;;;;;;;;;;;:::o;7930:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7409:::-;;;;;;;;;;;;;;;;;;;:::o;10195:228::-;7623:10;7606:27;;:13;;;;;;;;;;;:27;;;7598:65;;;;;;;;;;;;;;;;;;;;;;10312:21:::1;10289:20;;:44;;;;;;;;;;;;;;;;;;10395:20;;;;;;;;;;;10346:70;;;;;;;;;;;;;;;;;;;;;;;;;;10195:228:::0;:::o;2648:338::-;2720:4;2756:1;2741:17;;:3;:17;;;;2733:26;;12:1:-1;9;2:12;2733:26:0;2784:8;:20;2793:10;2784:20;;;;;;;;;;;;;;;;2774:6;:30;;2766:39;;12:1:-1;9;2:12;2766:39:0;2837:32;2862:6;2837:8;:20;2846:10;2837:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;2814:8;:20;2823:10;2814:20;;;;;;;;;;;;;;;:55;;;;2892:25;2910:6;2892:8;:13;2901:3;2892:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;2876:8;:13;2885:3;2876:13;;;;;;;;;;;;;;;:41;;;;2950:3;2929:33;;2938:10;2929:33;;;2955:6;2929:33;;;;;;;;;;;;;;;2976:4;2969:11;;2648:338;;;;:::o;16694:130::-;7623:10;7606:27;;:13;;;;;;;;;;;:27;;;7598:65;;;;;;;;;;;;;;;;;;;;;;16802:14:::1;;16789:10;:27;;;;;;;:::i;:::-;;16694:130:::0;;:::o;8010:28::-;;;;:::o;6042:266::-;6120:4;6165:46;6199:11;6165:7;:19;6173:10;6165:19;;;;;;;;;;;;;;;:29;6185:8;6165:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;6133:7;:19;6141:10;6133:19;;;;;;;;;;;;;;;:29;6153:8;6133:29;;;;;;;;;;;;;;;:78;;;;6244:8;6223:61;;6232:10;6223:61;;;6254:7;:19;6262:10;6254:19;;;;;;;;;;;;;;;:29;6274:8;6254:29;;;;;;;;;;;;;;;;6223:61;;;;;;;;;;;;;;;6298:4;6291:11;;6042:266;;;;:::o;16836:179::-;16939:4;7623:10;7606:27;;:13;;;;;;;;;;;:27;;;7598:65;;;;;;;;;;;;;;;;;;;;;;16955:11:::1;:20;;:29;16976:7;16955:29;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;16955:29:0;17002:4;16995:11;;16836:179:::0;;;;:::o;5436:137::-;5519:7;5542;:15;5550:6;5542:15;;;;;;;;;;;;;;;:25;5558:8;5542:25;;;;;;;;;;;;;;;;5535:32;;5436:137;;;;:::o;9763:423::-;9831:15;;;;;;;;;;;9817:29;;:10;:29;;;9809:74;;;;;;;;;;;;;;;;;;;;;;9891:14;9908:8;:23;9917:13;;;;;;;;;;;9908:23;;;;;;;;;;;;;;;;9891:40;;9965:35;9993:6;9965:8;:23;9974:13;;;;;;;;;;;9965:23;;;;;;;;;;;;;;;;:27;;:35;;;;:::i;:::-;9939:8;:23;9948:13;;;;;;;;;;;9939:23;;;;;;;;;;;;;;;:61;;;;10036:37;10066:6;10036:8;:25;10045:15;;;;;;;;;;;10036:25;;;;;;;;;;;;;;;;:29;;:37;;;;:::i;:::-;10008:8;:25;10017:15;;;;;;;;;;;10008:25;;;;;;;;;;;;;;;:65;;;;10097:15;;;;;;;;;;;10081:13;;:31;;;;;;;;;;;;;;;;;;10165:13;;;;;;;;;;;10125:54;;;;;;;;;;;;;;;;;;;;;;;;;;9763:423;:::o;7973:31::-;;;;:::o;7331:28::-;;;;;;;;;;;;;:::o;10688:514::-;10755:9;;10742;:22;;10734:53;;;;;;;;;;;;;;;;;;;;;;10820:2;10805:12;;:17;10797:45;;;;;;;;;;;;;;;;;;;;;;10852:12;10867:24;10881:9;;10867;:13;;:24;;;;:::i;:::-;10852:39;;10901:17;10921:27;7483:2;10933;:14;10921:7;:11;;:27;;;;:::i;:::-;10901:47;;10984:41;11012:12;10984:8;:23;10993:13;;;;;;;;;;;10984:23;;;;;;;;;;;;;;;;:27;;:41;;;;:::i;:::-;10958:8;:23;10967:13;;;;;;;;;;;10958:23;;;;;;;;;;;;;;;:67;;;;11058:38;11083:12;11058:8;:20;11067:10;11058:20;;;;;;;;;;;;;;;;:24;;:38;;;;:::i;:::-;11035:8;:20;11044:10;11035:20;;;;;;;;;;;;;;;:61;;;;11121:25;11138:7;11121:12;;:16;;:25;;;;:::i;:::-;11106:12;:40;;;;11156:39;11170:12;11184:10;11156:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;:39::i;:::-;;10688:514;;:::o;14804:680::-;14877:12;14922:1;14905:13;:18;14901:576;;;14954:6;14948:3;:12;14941:19;;;;14901:576;14998:1;14981:13;:18;14978:499;;;15022:15;15030:6;15022:3;:7;;:15;;;;:::i;:::-;15015:22;;;;14978:499;15074:2;15057:13;:19;15054:423;;;15099:16;15107:7;15099:3;:7;;:16;;;;:::i;:::-;15092:23;;;;15054:423;15152:2;15135:13;:19;15132:345;;;15177:16;15185:7;15177:3;:7;;:16;;;;:::i;:::-;15170:23;;;;15132:345;15230:2;15213:13;:19;15210:267;;;15255:16;15263:7;15255:3;:7;;:16;;;;:::i;:::-;15248:23;;;;15210:267;15308:3;15291:13;:20;15288:189;;;15334:17;15342:8;15334:3;:7;;:17;;;;:::i;:::-;15327:24;;;;15288:189;15391:74;;;;;;;;;;;;;;;;;;;14804:680;;;;:::o;852:113::-;910:7;938:1;933;:6;;926:14;;;;958:1;954;:5;947:12;;852:113;;;;:::o;1032:127::-;1090:9;1116:1;1112;:5;1108:9;;1136:1;1131;:6;;1124:14;;;;1152:1;1145:8;;1032:127;;;;:::o;197:174::-;255:9;282:1;277;:6;273:37;;;301:1;294:8;;;;273:37;324:1;320;:5;316:9;;348:1;343;339;:5;;;;;;:10;332:18;;;;364:1;357:8;;197:174;;;;;:::o;458:277::-;516:7;728:1;724;:5;;;;;;717:12;;458:277;;;;:::o;16454:228::-;16507:4;16513;16546:25;16563:7;16546:12;;:16;;:25;;;;:::i;:::-;16531:12;:40;;;;16582:16;16604:32;;;;;;;;16623:7;16604:32;;;;16632:3;16604:32;;;16582:55;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;16582:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16655:4;16661:12;;16648:26;;;;16454:228;;;:::o;13622:260::-;13704:12;13763:1;13736:29;;:15;:29;;;;13728:71;;;;;;;;;;;;;;;;;;;;;;13847:6;13809:8;:25;13818:15;13809:25;;;;;;;;;;;;;;;:35;;;:44;;;;;;;;;;;;;;;;;;13870:4;13863:11;;13622:260;;;;:::o;7690:9369::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:130:-1:-;;85:6;72:20;63:29;;97:33;124:5;97:33;;;57:78;;;;;142:146;;230:6;217:20;208:29;;242:41;277:5;242:41;;;202:86;;;;;339:378;;;495:3;488:4;480:6;476:17;472:27;462:2;;513:1;510;503:12;462:2;546:6;533:20;523:30;;573:18;565:6;562:30;559:2;;;605:1;602;595:12;559:2;639:4;631:6;627:17;615:29;;690:3;682:4;674:6;670:17;660:8;656:32;653:41;650:2;;;707:1;704;697:12;650:2;455:262;;;;;;725:124;;802:6;789:20;780:29;;814:30;838:5;814:30;;;774:75;;;;;871:337;;;986:3;979:4;971:6;967:17;963:27;953:2;;1004:1;1001;994:12;953:2;1037:6;1024:20;1014:30;;1064:18;1056:6;1053:30;1050:2;;;1096:1;1093;1086:12;1050:2;1130:4;1122:6;1118:17;1106:29;;1181:3;1173:4;1165:6;1161:17;1151:8;1147:32;1144:41;1141:2;;;1198:1;1195;1188:12;1141:2;946:262;;;;;;1217:442;;1319:3;1312:4;1304:6;1300:17;1296:27;1286:2;;1337:1;1334;1327:12;1286:2;1374:6;1361:20;1396:65;1411:49;1453:6;1411:49;;;1396:65;;;1387:74;;1481:6;1474:5;1467:21;1517:4;1509:6;1505:17;1550:4;1543:5;1539:16;1585:3;1576:6;1571:3;1567:16;1564:25;1561:2;;;1602:1;1599;1592:12;1561:2;1612:41;1646:6;1641:3;1636;1612:41;;;1279:380;;;;;;;;1667:130;;1747:6;1734:20;1725:29;;1759:33;1786:5;1759:33;;;1719:78;;;;;1804:241;;1908:2;1896:9;1887:7;1883:23;1879:32;1876:2;;;1924:1;1921;1914:12;1876:2;1959:1;1976:53;2021:7;2012:6;2001:9;1997:22;1976:53;;;1966:63;;1938:97;1870:175;;;;;2052:366;;;2173:2;2161:9;2152:7;2148:23;2144:32;2141:2;;;2189:1;2186;2179:12;2141:2;2224:1;2241:53;2286:7;2277:6;2266:9;2262:22;2241:53;;;2231:63;;2203:97;2331:2;2349:53;2394:7;2385:6;2374:9;2370:22;2349:53;;;2339:63;;2310:98;2135:283;;;;;;2425:491;;;;2563:2;2551:9;2542:7;2538:23;2534:32;2531:2;;;2579:1;2576;2569:12;2531:2;2614:1;2631:53;2676:7;2667:6;2656:9;2652:22;2631:53;;;2621:63;;2593:97;2721:2;2739:53;2784:7;2775:6;2764:9;2760:22;2739:53;;;2729:63;;2700:98;2829:2;2847:53;2892:7;2883:6;2872:9;2868:22;2847:53;;;2837:63;;2808:98;2525:391;;;;;;2923:366;;;3044:2;3032:9;3023:7;3019:23;3015:32;3012:2;;;3060:1;3057;3050:12;3012:2;3095:1;3112:53;3157:7;3148:6;3137:9;3133:22;3112:53;;;3102:63;;3074:97;3202:2;3220:53;3265:7;3256:6;3245:9;3241:22;3220:53;;;3210:63;;3181:98;3006:283;;;;;;3296:449;;;3461:2;3449:9;3440:7;3436:23;3432:32;3429:2;;;3477:1;3474;3467:12;3429:2;3540:1;3529:9;3525:17;3512:31;3563:18;3555:6;3552:30;3549:2;;;3595:1;3592;3585:12;3549:2;3623:106;3721:7;3712:6;3701:9;3697:22;3623:106;;;3613:116;;;;3491:244;3423:322;;;;;;3752:235;;3853:2;3841:9;3832:7;3828:23;3824:32;3821:2;;;3869:1;3866;3859:12;3821:2;3904:1;3921:50;3963:7;3954:6;3943:9;3939:22;3921:50;;;3911:60;;3883:94;3815:172;;;;;3994:367;;;4118:2;4106:9;4097:7;4093:23;4089:32;4086:2;;;4134:1;4131;4124:12;4086:2;4197:1;4186:9;4182:17;4169:31;4220:18;4212:6;4209:30;4206:2;;;4252:1;4249;4242:12;4206:2;4280:65;4337:7;4328:6;4317:9;4313:22;4280:65;;;4270:75;;;;4148:203;4080:281;;;;;;4368:347;;4482:2;4470:9;4461:7;4457:23;4453:32;4450:2;;;4498:1;4495;4488:12;4450:2;4561:1;4550:9;4546:17;4533:31;4584:18;4576:6;4573:30;4570:2;;;4616:1;4613;4606:12;4570:2;4636:63;4691:7;4682:6;4671:9;4667:22;4636:63;;;4626:73;;4512:193;4444:271;;;;;4722:1293;;;;;;;4951:3;4939:9;4930:7;4926:23;4922:33;4919:2;;;4968:1;4965;4958:12;4919:2;5031:1;5020:9;5016:17;5003:31;5054:18;5046:6;5043:30;5040:2;;;5086:1;5083;5076:12;5040:2;5106:63;5161:7;5152:6;5141:9;5137:22;5106:63;;;5096:73;;4982:193;5234:2;5223:9;5219:18;5206:32;5258:18;5250:6;5247:30;5244:2;;;5290:1;5287;5280:12;5244:2;5310:63;5365:7;5356:6;5345:9;5341:22;5310:63;;;5300:73;;5185:194;5438:2;5427:9;5423:18;5410:32;5462:18;5454:6;5451:30;5448:2;;;5494:1;5491;5484:12;5448:2;5514:63;5569:7;5560:6;5549:9;5545:22;5514:63;;;5504:73;;5389:194;5642:2;5631:9;5627:18;5614:32;5666:18;5658:6;5655:30;5652:2;;;5698:1;5695;5688:12;5652:2;5718:63;5773:7;5764:6;5753:9;5749:22;5718:63;;;5708:73;;5593:194;5818:3;5837:53;5882:7;5873:6;5862:9;5858:22;5837:53;;;5827:63;;5797:99;5927:3;5946:53;5991:7;5982:6;5971:9;5967:22;5946:53;;;5936:63;;5906:99;4913:1102;;;;;;;;;6022:241;;6126:2;6114:9;6105:7;6101:23;6097:32;6094:2;;;6142:1;6139;6132:12;6094:2;6177:1;6194:53;6239:7;6230:6;6219:9;6215:22;6194:53;;;6184:63;;6156:97;6088:175;;;;;6270:382;;;6399:2;6387:9;6378:7;6374:23;6370:32;6367:2;;;6415:1;6412;6405:12;6367:2;6450:1;6467:53;6512:7;6503:6;6492:9;6488:22;6467:53;;;6457:63;;6429:97;6557:2;6575:61;6628:7;6619:6;6608:9;6604:22;6575:61;;;6565:71;;6536:106;6361:291;;;;;;6659:472;;;6790:2;6778:9;6769:7;6765:23;6761:32;6758:2;;;6806:1;6803;6796:12;6758:2;6841:1;6858:53;6903:7;6894:6;6883:9;6879:22;6858:53;;;6848:63;;6820:97;6976:2;6965:9;6961:18;6948:32;7000:18;6992:6;6989:30;6986:2;;;7032:1;7029;7022:12;6986:2;7052:63;7107:7;7098:6;7087:9;7083:22;7052:63;;;7042:73;;6927:194;6752:379;;;;;;7138:103;7211:24;7229:5;7211:24;;;7206:3;7199:37;7193:48;;;7248:113;7331:24;7349:5;7331:24;;;7326:3;7319:37;7313:48;;;7368:94;7435:21;7450:5;7435:21;;;7430:3;7423:34;7417:45;;;7469:104;7546:21;7561:5;7546:21;;;7541:3;7534:34;7528:45;;;7605:313;;7739:89;7821:6;7816:3;7739:89;;;7732:96;;7840:43;7876:6;7871:3;7864:5;7840:43;;;7905:6;7900:3;7896:16;7889:23;;7725:193;;;;;;7926:327;;8028:39;8061:5;8028:39;;;8079:61;8133:6;8128:3;8079:61;;;8072:68;;8145:52;8190:6;8185:3;8178:4;8171:5;8167:16;8145:52;;;8218:29;8240:6;8218:29;;;8213:3;8209:39;8202:46;;8008:245;;;;;;8260:347;;8372:39;8405:5;8372:39;;;8423:71;8487:6;8482:3;8423:71;;;8416:78;;8499:52;8544:6;8539:3;8532:4;8525:5;8521:16;8499:52;;;8572:29;8594:6;8572:29;;;8567:3;8563:39;8556:46;;8352:255;;;;;;8614:360;;8744:39;8777:5;8744:39;;;8795:89;8877:6;8872:3;8795:89;;;8788:96;;8889:52;8934:6;8929:3;8922:4;8915:5;8911:16;8889:52;;;8962:6;8957:3;8953:16;8946:23;;8724:250;;;;;;8982:373;;9142:67;9206:2;9201:3;9142:67;;;9135:74;;9242:34;9238:1;9233:3;9229:11;9222:55;9311:6;9306:2;9301:3;9297:12;9290:28;9346:2;9341:3;9337:12;9330:19;;9128:227;;;;9364:316;;9524:67;9588:2;9583:3;9524:67;;;9517:74;;9624:18;9620:1;9615:3;9611:11;9604:39;9671:2;9666:3;9662:12;9655:19;;9510:170;;;;9689:331;;9849:67;9913:2;9908:3;9849:67;;;9842:74;;9949:33;9945:1;9940:3;9936:11;9929:54;10011:2;10006:3;10002:12;9995:19;;9835:185;;;;10029:358;;10207:85;10289:2;10284:3;10207:85;;;10200:92;;10325:24;10321:1;10316:3;10312:11;10305:45;10378:2;10373:3;10369:12;10362:19;;10193:194;;;;10396:318;;10556:67;10620:2;10615:3;10556:67;;;10549:74;;10656:20;10652:1;10647:3;10643:11;10636:41;10705:2;10700:3;10696:12;10689:19;;10542:172;;;;10723:382;;10883:67;10947:2;10942:3;10883:67;;;10876:74;;10983:34;10979:1;10974:3;10970:11;10963:55;11052:15;11047:2;11042:3;11038:12;11031:37;11096:2;11091:3;11087:12;11080:19;;10869:236;;;;11114:360;;11292:85;11374:2;11369:3;11292:85;;;11285:92;;11410:26;11406:1;11401:3;11397:11;11390:47;11465:2;11460:3;11456:12;11449:19;;11278:196;;;;11483:375;;11643:67;11707:2;11702:3;11643:67;;;11636:74;;11743:34;11739:1;11734:3;11730:11;11723:55;11812:8;11807:2;11802:3;11798:12;11791:30;11849:2;11844:3;11840:12;11833:19;;11629:229;;;;11867:329;;12027:67;12091:2;12086:3;12027:67;;;12020:74;;12127:31;12123:1;12118:3;12114:11;12107:52;12187:2;12182:3;12178:12;12171:19;;12013:183;;;;12205:315;;12365:67;12429:2;12424:3;12365:67;;;12358:74;;12465:17;12461:1;12456:3;12452:11;12445:38;12511:2;12506:3;12502:12;12495:19;;12351:169;;;;12529:330;;12689:67;12753:2;12748:3;12689:67;;;12682:74;;12789:32;12785:1;12780:3;12776:11;12769:53;12850:2;12845:3;12841:12;12834:19;;12675:184;;;;12868:318;;13028:67;13092:2;13087:3;13028:67;;;13021:74;;13128:20;13124:1;13119:3;13115:11;13108:41;13177:2;13172:3;13168:12;13161:19;;13014:172;;;;13195:332;;13355:67;13419:2;13414:3;13355:67;;;13348:74;;13455:34;13451:1;13446:3;13442:11;13435:55;13518:2;13513:3;13509:12;13502:19;;13341:186;;;;13536:408;;13714:85;13796:2;13791:3;13714:85;;;13707:92;;13832:34;13828:1;13823:3;13819:11;13812:55;13901:5;13896:2;13891:3;13887:12;13880:27;13935:2;13930:3;13926:12;13919:19;;13700:244;;;;13953:406;;14131:85;14213:2;14208:3;14131:85;;;14124:92;;14249:34;14245:1;14240:3;14236:11;14229:55;14318:3;14313:2;14308:3;14304:12;14297:25;14350:2;14345:3;14341:12;14334:19;;14117:242;;;;14368:331;;14528:67;14592:2;14587:3;14528:67;;;14521:74;;14628:33;14624:1;14619:3;14615:11;14608:54;14690:2;14685:3;14681:12;14674:19;;14514:185;;;;14708:376;;14868:67;14932:2;14927:3;14868:67;;;14861:74;;14968:34;14964:1;14959:3;14955:11;14948:55;15037:9;15032:2;15027:3;15023:12;15016:31;15075:2;15070:3;15066:12;15059:19;;14854:230;;;;15093:401;;15253:67;15317:2;15312:3;15253:67;;;15246:74;;15353:34;15349:1;15344:3;15340:11;15333:55;15422:34;15417:2;15412:3;15408:12;15401:56;15485:2;15480:3;15476:12;15469:19;;15239:255;;;;15503:332;;15663:67;15727:2;15722:3;15663:67;;;15656:74;;15763:34;15759:1;15754:3;15750:11;15743:55;15826:2;15821:3;15817:12;15810:19;;15649:186;;;;15844:325;;16004:67;16068:2;16063:3;16004:67;;;15997:74;;16104:27;16100:1;16095:3;16091:11;16084:48;16160:2;16155:3;16151:12;16144:19;;15990:179;;;;16178:327;;16338:67;16402:2;16397:3;16338:67;;;16331:74;;16438:29;16434:1;16429:3;16425:11;16418:50;16496:2;16491:3;16487:12;16480:19;;16324:181;;;;16602:1780;;16763:6;16758:3;16754:16;16846:4;16839:5;16835:16;16829:23;16858:63;16915:4;16910:3;16906:14;16892:12;16858:63;;;16785:142;17002:4;16995:5;16991:16;16985:23;17054:3;17048:4;17044:14;17037:4;17032:3;17028:14;17021:38;17074:73;17142:4;17128:12;17074:73;;;17066:81;;16937:222;17239:4;17232:5;17228:16;17222:23;17291:3;17285:4;17281:14;17274:4;17269:3;17265:14;17258:38;17311:73;17379:4;17365:12;17311:73;;;17303:81;;17169:227;17478:4;17471:5;17467:16;17461:23;17530:3;17524:4;17520:14;17513:4;17508:3;17504:14;17497:38;17550:73;17618:4;17604:12;17550:73;;;17542:81;;17406:229;17717:4;17710:5;17706:16;17700:23;17769:3;17763:4;17759:14;17752:4;17747:3;17743:14;17736:38;17789:73;17857:4;17843:12;17789:73;;;17781:81;;17645:229;17957:4;17950:5;17946:16;17940:23;17969:63;18026:4;18021:3;18017:14;18003:12;17969:63;;;17884:154;18123:4;18116:5;18112:16;18106:23;18135:63;18192:4;18187:3;18183:14;18169:12;18135:63;;;18048:156;18281:4;18274:5;18270:16;18264:23;18293:57;18344:4;18339:3;18335:14;18321:12;18293:57;;;18214:142;18373:4;18366:11;;16736:1646;;;;;;18464:2260;;18611:6;18606:3;18602:16;18694:4;18687:5;18683:16;18677:23;18706:63;18763:4;18758:3;18754:14;18740:12;18706:63;;;18633:142;18857:4;18850:5;18846:16;18840:23;18869:63;18926:4;18921:3;18917:14;18903:12;18869:63;;;18785:153;19019:4;19012:5;19008:16;19002:23;19031:63;19088:4;19083:3;19079:14;19065:12;19031:63;;;18948:152;19177:4;19170:5;19166:16;19160:23;19189:57;19240:4;19235:3;19231:14;19217:12;19189:57;;;19110:142;19330:4;19323:5;19319:16;19313:23;19342:57;19393:4;19388:3;19384:14;19370:12;19342:57;;;19262:143;19483:4;19476:5;19472:16;19466:23;19495:63;19552:4;19547:3;19543:14;19529:12;19495:63;;;19415:149;19640:4;19633:5;19629:16;19623:23;19652:63;19709:4;19704:3;19700:14;19686:12;19652:63;;;19574:147;19804:4;19797:5;19793:16;19787:23;19856:3;19850:4;19846:14;19839:4;19834:3;19830:14;19823:38;19876:73;19944:4;19930:12;19876:73;;;19868:81;;19731:230;20037:6;20030:5;20026:18;20020:25;20051:65;20108:6;20103:3;20099:16;20085:12;20051:65;;;19971:151;20200:6;20193:5;20189:18;20183:25;20214:65;20271:6;20266:3;20262:16;20248:12;20214:65;;;20132:153;20367:6;20360:5;20356:18;20350:25;20423:3;20417:4;20413:14;20404:6;20399:3;20395:16;20388:40;20443:73;20511:4;20497:12;20443:73;;;20435:81;;20295:233;20613:6;20606:5;20602:18;20596:25;20627:65;20684:6;20679:3;20675:16;20661:12;20627:65;;;20538:160;20715:4;20708:11;;18584:2140;;;;;;20731:103;20804:24;20822:5;20804:24;;;20799:3;20792:37;20786:48;;;20841:113;20924:24;20942:5;20924:24;;;20919:3;20912:37;20906:48;;;20961:286;;21117:105;21218:3;21209:6;21201;21117:105;;;21110:112;;21239:3;21232:10;;21098:149;;;;;;21254:266;;21400:95;21491:3;21482:6;21400:95;;;21393:102;;21512:3;21505:10;;21381:139;;;;;21527:372;;21726:148;21870:3;21726:148;;;21719:155;;21891:3;21884:10;;21707:192;;;;21906:372;;22105:148;22249:3;22105:148;;;22098:155;;22270:3;22263:10;;22086:192;;;;22285:372;;22484:148;22628:3;22484:148;;;22477:155;;22649:3;22642:10;;22465:192;;;;22664:372;;22863:148;23007:3;22863:148;;;22856:155;;23028:3;23021:10;;22844:192;;;;23043:213;;23161:2;23150:9;23146:18;23138:26;;23175:71;23243:1;23232:9;23228:17;23219:6;23175:71;;;23132:124;;;;;23263:201;;23375:2;23364:9;23360:18;23352:26;;23389:65;23451:1;23440:9;23436:17;23427:6;23389:65;;;23346:118;;;;;23471:301;;23609:2;23598:9;23594:18;23586:26;;23659:9;23653:4;23649:20;23645:1;23634:9;23630:17;23623:47;23684:78;23757:4;23748:6;23684:78;;;23676:86;;23580:192;;;;;23779:407;;23970:2;23959:9;23955:18;23947:26;;24020:9;24014:4;24010:20;24006:1;23995:9;23991:17;23984:47;24045:131;24171:4;24045:131;;;24037:139;;23941:245;;;;24193:407;;24384:2;24373:9;24369:18;24361:26;;24434:9;24428:4;24424:20;24420:1;24409:9;24405:17;24398:47;24459:131;24585:4;24459:131;;;24451:139;;24355:245;;;;24607:407;;24798:2;24787:9;24783:18;24775:26;;24848:9;24842:4;24838:20;24834:1;24823:9;24819:17;24812:47;24873:131;24999:4;24873:131;;;24865:139;;24769:245;;;;25021:407;;25212:2;25201:9;25197:18;25189:26;;25262:9;25256:4;25252:20;25248:1;25237:9;25233:17;25226:47;25287:131;25413:4;25287:131;;;25279:139;;25183:245;;;;25435:407;;25626:2;25615:9;25611:18;25603:26;;25676:9;25670:4;25666:20;25662:1;25651:9;25647:17;25640:47;25701:131;25827:4;25701:131;;;25693:139;;25597:245;;;;25849:407;;26040:2;26029:9;26025:18;26017:26;;26090:9;26084:4;26080:20;26076:1;26065:9;26061:17;26054:47;26115:131;26241:4;26115:131;;;26107:139;;26011:245;;;;26263:407;;26454:2;26443:9;26439:18;26431:26;;26504:9;26498:4;26494:20;26490:1;26479:9;26475:17;26468:47;26529:131;26655:4;26529:131;;;26521:139;;26425:245;;;;26677:407;;26868:2;26857:9;26853:18;26845:26;;26918:9;26912:4;26908:20;26904:1;26893:9;26889:17;26882:47;26943:131;27069:4;26943:131;;;26935:139;;26839:245;;;;27091:407;;27282:2;27271:9;27267:18;27259:26;;27332:9;27326:4;27322:20;27318:1;27307:9;27303:17;27296:47;27357:131;27483:4;27357:131;;;27349:139;;27253:245;;;;27505:407;;27696:2;27685:9;27681:18;27673:26;;27746:9;27740:4;27736:20;27732:1;27721:9;27717:17;27710:47;27771:131;27897:4;27771:131;;;27763:139;;27667:245;;;;27919:407;;28110:2;28099:9;28095:18;28087:26;;28160:9;28154:4;28150:20;28146:1;28135:9;28131:17;28124:47;28185:131;28311:4;28185:131;;;28177:139;;28081:245;;;;28333:407;;28524:2;28513:9;28509:18;28501:26;;28574:9;28568:4;28564:20;28560:1;28549:9;28545:17;28538:47;28599:131;28725:4;28599:131;;;28591:139;;28495:245;;;;28747:407;;28938:2;28927:9;28923:18;28915:26;;28988:9;28982:4;28978:20;28974:1;28963:9;28959:17;28952:47;29013:131;29139:4;29013:131;;;29005:139;;28909:245;;;;29161:407;;29352:2;29341:9;29337:18;29329:26;;29402:9;29396:4;29392:20;29388:1;29377:9;29373:17;29366:47;29427:131;29553:4;29427:131;;;29419:139;;29323:245;;;;29575:407;;29766:2;29755:9;29751:18;29743:26;;29816:9;29810:4;29806:20;29802:1;29791:9;29787:17;29780:47;29841:131;29967:4;29841:131;;;29833:139;;29737:245;;;;29989:407;;30180:2;30169:9;30165:18;30157:26;;30230:9;30224:4;30220:20;30216:1;30205:9;30201:17;30194:47;30255:131;30381:4;30255:131;;;30247:139;;30151:245;;;;30403:407;;30594:2;30583:9;30579:18;30571:26;;30644:9;30638:4;30634:20;30630:1;30619:9;30615:17;30608:47;30669:131;30795:4;30669:131;;;30661:139;;30565:245;;;;30817:381;;30995:2;30984:9;30980:18;30972:26;;31045:9;31039:4;31035:20;31031:1;31020:9;31016:17;31009:47;31070:118;31183:4;31174:6;31070:118;;;31062:126;;30966:232;;;;;31205:353;;31369:2;31358:9;31354:18;31346:26;;31419:9;31413:4;31409:20;31405:1;31394:9;31390:17;31383:47;31444:104;31543:4;31534:6;31444:104;;;31436:112;;31340:218;;;;;31565:213;;31683:2;31672:9;31668:18;31660:26;;31697:71;31765:1;31754:9;31750:17;31741:6;31697:71;;;31654:124;;;;;31785:1599;;32241:3;32230:9;32226:19;32218:27;;32256:71;32324:1;32313:9;32309:17;32300:6;32256:71;;;32338:72;32406:2;32395:9;32391:18;32382:6;32338:72;;;32421;32489:2;32478:9;32474:18;32465:6;32421:72;;;32504:66;32566:2;32555:9;32551:18;32542:6;32504:66;;;32581:67;32643:3;32632:9;32628:19;32619:6;32581:67;;;32659:73;32727:3;32716:9;32712:19;32703:6;32659:73;;;32743;32811:3;32800:9;32796:19;32787:6;32743:73;;;32865:9;32859:4;32855:20;32849:3;32838:9;32834:19;32827:49;32890:78;32963:4;32954:6;32890:78;;;32882:86;;32979:73;33047:3;33036:9;33032:19;33023:6;32979:73;;;33063;33131:3;33120:9;33116:19;33107:6;33063:73;;;33185:9;33179:4;33175:20;33169:3;33158:9;33154:19;33147:49;33210:79;33284:4;33274:7;33210:79;;;33202:87;;33300:74;33369:3;33358:9;33354:19;33344:7;33300:74;;;32212:1172;;;;;;;;;;;;;;;;33391:1335;;33779:3;33768:9;33764:19;33756:27;;33794:71;33862:1;33851:9;33847:17;33838:6;33794:71;;;33913:9;33907:4;33903:20;33898:2;33887:9;33883:18;33876:48;33938:78;34011:4;34002:6;33938:78;;;33930:86;;34064:9;34058:4;34054:20;34049:2;34038:9;34034:18;34027:48;34089:78;34162:4;34153:6;34089:78;;;34081:86;;34215:9;34209:4;34205:20;34200:2;34189:9;34185:18;34178:48;34240:78;34313:4;34304:6;34240:78;;;34232:86;;34367:9;34361:4;34357:20;34351:3;34340:9;34336:19;34329:49;34392:78;34465:4;34456:6;34392:78;;;34384:86;;34481:73;34549:3;34538:9;34534:19;34525:6;34481:73;;;34565;34633:3;34622:9;34618:19;34609:6;34565:73;;;34649:67;34711:3;34700:9;34696:19;34687:6;34649:67;;;33750:976;;;;;;;;;;;;34733:324;;34879:2;34868:9;34864:18;34856:26;;34893:71;34961:1;34950:9;34946:17;34937:6;34893:71;;;34975:72;35043:2;35032:9;35028:18;35019:6;34975:72;;;34850:207;;;;;;35064:256;;35126:2;35120:9;35110:19;;35164:4;35156:6;35152:17;35263:6;35251:10;35248:22;35227:18;35215:10;35212:34;35209:62;35206:2;;;35284:1;35281;35274:12;35206:2;35304:10;35300:2;35293:22;35104:216;;;;;35327:322;;35471:18;35463:6;35460:30;35457:2;;;35503:1;35500;35493:12;35457:2;35570:4;35566:9;35559:4;35551:6;35547:17;35543:33;35535:41;;35634:4;35628;35624:15;35616:23;;35394:255;;;;35656:122;;35750:5;35744:12;35734:22;;35715:63;;;;35786:153;;35891:6;35886:3;35879:19;35928:4;35923:3;35919:14;35904:29;;35872:67;;;;;35948:163;;36063:6;36058:3;36051:19;36100:4;36095:3;36091:14;36076:29;;36044:67;;;;;36120:145;;36256:3;36241:18;;36234:31;;;;;36273:91;;36335:24;36353:5;36335:24;;;36324:35;;36318:46;;;;36371:99;;36441:24;36459:5;36441:24;;;36430:35;;36424:46;;;;36477:85;;36550:5;36543:13;36536:21;36525:32;;36519:43;;;;36569:121;;36642:42;36635:5;36631:54;36620:65;;36614:76;;;;36697:72;;36759:5;36748:16;;36742:27;;;;36777:145;36858:6;36853:3;36848;36835:30;36914:1;36905:6;36900:3;36896:16;36889:27;36828:94;;;;36931:268;36996:1;37003:101;37017:6;37014:1;37011:13;37003:101;;;37093:1;37088:3;37084:11;37078:18;37074:1;37069:3;37065:11;37058:39;37039:2;37036:1;37032:10;37027:15;;37003:101;;;37119:6;37116:1;37113:13;37110:2;;;37184:1;37175:6;37170:3;37166:16;37159:27;37110:2;36980:219;;;;;37207:97;;37295:2;37291:7;37286:2;37279:5;37275:14;37271:28;37261:38;;37255:49;;;;37312:117;37381:24;37399:5;37381:24;;;37374:5;37371:35;37361:2;;37420:1;37417;37410:12;37361:2;37355:74;;37436:133;37513:32;37539:5;37513:32;;;37506:5;37503:43;37493:2;;37560:1;37557;37550:12;37493:2;37487:82;;37576:111;37642:21;37657:5;37642:21;;;37635:5;37632:32;37622:2;;37678:1;37675;37668:12;37622:2;37616:71;;37694:117;37763:24;37781:5;37763:24;;;37756:5;37753:35;37743:2;;37802:1;37799;37792:12;37743:2;37737:74;
Swarm Source
ipfs://754c9d3c2c19d072e0614f98d6b1217045d5e252c458a25dd3cb27bac0aa7600
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.