More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 2,606 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw | 19299102 | 345 days ago | IN | 0 ETH | 0.00163682 | ||||
Withdraw | 12824521 | 1300 days ago | IN | 0 ETH | 0.00259593 | ||||
Withdraw | 12573226 | 1339 days ago | IN | 0 ETH | 0.00066903 | ||||
Transfer | 12139346 | 1406 days ago | IN | 0.04 ETH | 0.002646 | ||||
Transfer | 12139283 | 1407 days ago | IN | 0.04 ETH | 0.002289 | ||||
Withdraw | 12119826 | 1410 days ago | IN | 0 ETH | 0.00458384 | ||||
Transfer | 11942766 | 1437 days ago | IN | 1.82231713 ETH | 0.001491 | ||||
Withdraw | 11833063 | 1454 days ago | IN | 0 ETH | 0.00531129 | ||||
Transfer | 11828599 | 1454 days ago | IN | 0.03976434 ETH | 0.003633 | ||||
Transfer | 11792112 | 1460 days ago | IN | 0.07831001 ETH | 0.006342 | ||||
Withdraw | 11769753 | 1463 days ago | IN | 0 ETH | 0.00608586 | ||||
Transfer | 11751789 | 1466 days ago | IN | 0.00950777 ETH | 0.002247 | ||||
Transfer | 11747078 | 1467 days ago | IN | 0.3122466 ETH | 0.002079 | ||||
Invest | 11746910 | 1467 days ago | IN | 0 ETH | 0.00233578 | ||||
Recieve | 11727228 | 1470 days ago | IN | 1.8 ETH | 0.00579395 | ||||
Recieve | 11727228 | 1470 days ago | IN | 1.9 ETH | 0.00561074 | ||||
Recieve | 11727228 | 1470 days ago | IN | 2 ETH | 0.0213197 | ||||
Withdraw | 11726072 | 1470 days ago | IN | 0 ETH | 0.00281094 | ||||
Invest | 11720687 | 1471 days ago | IN | 0 ETH | 0.00236744 | ||||
Invest | 11720663 | 1471 days ago | IN | 0 ETH | 0.00211172 | ||||
Withdraw | 11720663 | 1471 days ago | IN | 0 ETH | 0.00592318 | ||||
Withdraw | 11720304 | 1471 days ago | IN | 0 ETH | 0.00965785 | ||||
Withdraw | 11719647 | 1471 days ago | IN | 0 ETH | 0.00771592 | ||||
Withdraw | 11717307 | 1471 days ago | IN | 0 ETH | 0.00219581 | ||||
Withdraw | 11716609 | 1472 days ago | IN | 0 ETH | 0.003768 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
11746910 | 1467 days ago | 5.415 ETH | ||||
11727228 | 1470 days ago | 0.09 ETH | ||||
11727228 | 1470 days ago | 0.095 ETH | ||||
11727228 | 1470 days ago | 0.1 ETH | ||||
11720687 | 1471 days ago | 22.30983878 ETH | ||||
11720663 | 1471 days ago | 0.010765 ETH | ||||
11720663 | 1471 days ago | 0.204535 ETH | ||||
11720304 | 1471 days ago | 0.015 ETH | ||||
11720304 | 1471 days ago | 0.285 ETH | ||||
11719647 | 1471 days ago | 0.017 ETH | ||||
11719647 | 1471 days ago | 0.323 ETH | ||||
11717307 | 1471 days ago | 0.08255 ETH | ||||
11717307 | 1471 days ago | 1.56845 ETH | ||||
11716609 | 1472 days ago | 0.0006665 ETH | ||||
11716609 | 1472 days ago | 0.0126635 ETH | ||||
11716502 | 1472 days ago | 0.00717 ETH | ||||
11716502 | 1472 days ago | 0.13623 ETH | ||||
11715180 | 1472 days ago | 0.05 ETH | ||||
11714790 | 1472 days ago | 0.002629 ETH | ||||
11714790 | 1472 days ago | 0.049951 ETH | ||||
11714776 | 1472 days ago | 0.002337 ETH | ||||
11714776 | 1472 days ago | 0.044403 ETH | ||||
11714719 | 1472 days ago | 0.1055 ETH | ||||
11714691 | 1472 days ago | 0.05 ETH | ||||
11714605 | 1472 days ago | 0.035 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
PrestigeClub
Compiler Version
v0.6.8+commit.0bbfe453
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-11-18 */ pragma solidity 0.6.8; // SPDX-License-Identifier: MIT library SafeMath128{ //Custom addition function safemul(uint128 a, uint128 b) internal pure returns (uint128) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint128 c = a * b; if(!(c / a == b)){ c = (2**128)-1; } return c; } } /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath104 { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint112 a, uint112 b) internal pure returns (uint112) { uint112 c = a + b; if(!(c >= a)){ c = (2**112)-1; } require(c >= a, "addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint112 a, uint112 b) internal pure returns (uint112) { if(!(b <= a)){ return 0; } uint112 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint112 a, uint112 b) internal pure returns (uint112) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint112 c = a * b; if(!(c / a == b)){ c = (2**112)-1; } return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint112 a, uint112 b) internal pure returns (uint112) { require(b > 0, "div by zero"); uint112 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ contract Ownable { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () internal { address msgSender = msg.sender; _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owner == msg.sender, "Caller is not the owner"); _; } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public onlyOwner { require(newOwner != address(0), "New owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } //Restrictions: //only 2^32 Users //Maximum of 2^104 / 10^18 Ether investment. Theoretically 20 Trl Ether, practically 100000000000 Ether compiles //Maximum of (2^104 / 10^18 Ether) investment. Theoretically 20 Trl Ether, practically 100000000000 Ether compiles contract PrestigeClub is Ownable() { using SafeMath104 for uint112; using SafeMath128 for uint128; struct User { uint112 deposit; //265 bits together uint112 payout; uint32 position; uint8 qualifiedPools; uint8 downlineBonus; address referer; address[] referrals; uint112 directSum; uint40 lastPayout; uint112[5] downlineVolumes; } event NewDeposit(address indexed addr, uint112 amount); event PoolReached(address indexed addr, uint8 pool); event DownlineBonusStageReached(address indexed adr, uint8 stage); // event Referral(address indexed addr, address indexed referral); event Payout(address indexed addr, uint112 interest, uint112 direct, uint112 pool, uint112 downline, uint40 dayz); event Withdraw(address indexed addr, uint112 amount); mapping (address => User) public users; address[] public userList; uint32 public lastPosition; uint128 public depositSum; Pool[8] public pools; struct Pool { uint112 minOwnInvestment; uint8 minDirects; uint112 minSumDirects; uint8 payoutQuote; //ppm uint32 numUsers; } PoolState[] public states; struct PoolState { uint128 totalDeposits; uint32 totalUsers; uint32[8] numUsers; } DownlineBonusStage[4] downlineBonuses; struct DownlineBonusStage { uint32 minPool; uint64 payoutQuote; //ppm } uint40 public pool_last_draw; constructor() public { uint40 timestamp = uint40(block.timestamp); pool_last_draw = timestamp - (timestamp % payout_interval) - (2 * payout_interval); pools[0] = Pool(3 ether, 1, 3 ether, 130, 0); pools[1] = Pool(15 ether, 3, 5 ether, 130, 0); pools[2] = Pool(15 ether, 4, 44 ether, 130, 0); pools[3] = Pool(30 ether, 10, 105 ether, 130, 0); pools[4] = Pool(45 ether, 15, 280 ether, 130, 0); pools[5] = Pool(60 ether, 20, 530 ether, 130, 0); pools[6] = Pool(150 ether, 20, 1470 ether, 80, 0); pools[7] = Pool(300 ether, 20, 2950 ether, 80, 0); downlineBonuses[0] = DownlineBonusStage(3, 50); downlineBonuses[1] = DownlineBonusStage(4, 100); downlineBonuses[2] = DownlineBonusStage(5, 160); downlineBonuses[3] = DownlineBonusStage(6, 210); userList.push(address(0)); } uint112 internal minDeposit = 1 ether; uint112 internal minWithdraw = 1000 wei; uint40 constant internal payout_interval = 1 days; function recieve() public payable { require((users[msg.sender].deposit * 20 / 19) >= minDeposit || msg.value >= minDeposit, "Mininum deposit value not reached"); address sender = msg.sender; uint112 value = uint112(msg.value).mul(19) / 20; bool userExists = users[sender].position != 0; triggerCalculation(); // Create a position for new accounts if(!userExists){ lastPosition++; users[sender].position = lastPosition; users[sender].lastPayout = (pool_last_draw + 1); userList.push(sender); } address referer = users[sender].referer; //can put outside because referer is always set since setReferral() gets called before recieve() in recieve(address) if(referer != address(0)){ updateUpline(sender, referer, value); } //Update Payouts if(userExists){ updatePayout(sender); } users[sender].deposit = users[sender].deposit.add(value); //Transfer fee payable(owner()).transfer(msg.value - value); emit NewDeposit(sender, value); updateUserPool(sender); updateDownlineBonusStage(sender); if(referer != address(0)){ users[referer].directSum = users[referer].directSum.add(value); updateUserPool(referer); updateDownlineBonusStage(referer); } depositSum = depositSum + value; //Won´t do an overflow since value is uint112 and depositSum 128 } function recieve(address referer) public payable { _setReferral(referer); recieve(); } uint8 public downlineLimit = 31; function updateUpline(address reciever, address adr, uint112 addition) private { address current = adr; uint8 bonusStage = users[reciever].downlineBonus; uint8 downlineLimitCounter = downlineLimit - 1; while(current != address(0) && downlineLimitCounter > 0){ updatePayout(current); users[current].downlineVolumes[bonusStage] = users[current].downlineVolumes[bonusStage].add(addition); uint8 currentBonus = users[current].downlineBonus; if(currentBonus > bonusStage){ bonusStage = currentBonus; } current = users[current].referer; downlineLimitCounter--; } } function updatePayout(address adr) private { uint40 dayz = (uint40(block.timestamp) - users[adr].lastPayout) / (payout_interval); if(dayz >= 1){ uint112 interestPayout = getInterestPayout(adr); uint112 poolpayout = getPoolPayout(adr, dayz); uint112 directsPayout = getDirectsPayout(adr); uint112 downlineBonusAmount = getDownlinePayout(adr); uint112 sum = interestPayout.add(directsPayout).add(downlineBonusAmount); sum = (sum.mul(dayz)).add(poolpayout); users[adr].payout = users[adr].payout.add(sum); users[adr].lastPayout += (payout_interval * dayz); emit Payout(adr, interestPayout, directsPayout, poolpayout, downlineBonusAmount, dayz); } } function getInterestPayout(address adr) public view returns (uint112){ //Calculate Base Payouts uint8 quote; uint112 deposit = users[adr].deposit; if(deposit >= 30 ether){ quote = 15; }else{ quote = 10; } return deposit.mul(quote) / 10000; } function getPoolPayout(address adr, uint40 dayz) public view returns (uint112){ uint40 length = (uint40)(states.length); uint112 poolpayout = 0; if(users[adr].qualifiedPools > 0){ for(uint40 day = length - dayz ; day < length ; day++){ uint32 numUsers = states[day].totalUsers; uint112 streamline = uint112(states[day].totalDeposits.safemul(numUsers - users[adr].position)).div(numUsers); uint112 payout_day = 0; uint32 stateNumUsers = 0; for(uint8 j = 0 ; j < users[adr].qualifiedPools ; j++){ uint112 pool_base = streamline.mul(pools[j].payoutQuote) / 1000000; stateNumUsers = states[day].numUsers[j]; if(stateNumUsers != 0){ payout_day += pool_base.div(stateNumUsers); } } poolpayout = poolpayout.add(payout_day); } } return poolpayout; } function getDownlinePayout(address adr) public view returns (uint112){ //Calculate Downline Bonus uint112 downlinePayout = 0; uint8 downlineBonus = users[adr].downlineBonus; if(downlineBonus > 0){ uint64 ownPercentage = downlineBonuses[downlineBonus - 1].payoutQuote; for(uint8 i = 0 ; i < downlineBonus; i++){ uint64 quote = 0; if(i > 0){ quote = downlineBonuses[i - 1].payoutQuote; }else{ quote = 0; } uint64 percentage = ownPercentage - quote; if(percentage > 0){ //Requiring positivity and saving gas for 0, since that returns 0 downlinePayout = downlinePayout.add(users[adr].downlineVolumes[i].mul(percentage) / 1000000); } } if(downlineBonus == 4){ downlinePayout = downlinePayout.add(users[adr].downlineVolumes[downlineBonus].mul(50) / 1000000); } } return downlinePayout; } function getDirectsPayout(address adr) public view returns (uint112) { //Calculate Directs Payouts uint112 directsDepositSum = users[adr].directSum; uint112 directsPayout = directsDepositSum.mul(5) / 10000; return (directsPayout); } function pushPoolState() private { uint32[8] memory temp; for(uint8 i = 0 ; i < 8 ; i++){ temp[i] = pools[i].numUsers; } states.push(PoolState(depositSum, lastPosition, temp)); pool_last_draw += payout_interval; } function updateUserPool(address adr) private { if(users[adr].qualifiedPools < pools.length){ uint8 poolnum = users[adr].qualifiedPools; uint112 sumDirects = users[adr].directSum; //Check if requirements for next pool are met if(users[adr].deposit >= pools[poolnum].minOwnInvestment && users[adr].referrals.length >= pools[poolnum].minDirects && sumDirects >= pools[poolnum].minSumDirects){ users[adr].qualifiedPools = poolnum + 1; pools[poolnum].numUsers++; emit PoolReached(adr, poolnum + 1); updateUserPool(adr); } } } function updateDownlineBonusStage(address adr) private { uint8 bonusstage = users[adr].downlineBonus; if(bonusstage < downlineBonuses.length){ //Check if requirements for next stage are met if(users[adr].qualifiedPools >= downlineBonuses[bonusstage].minPool){ users[adr].downlineBonus += 1; //Update data in upline uint112 value = users[adr].deposit; //Value without current stage, since that must not be subtracted for(uint8 i = 0 ; i <= bonusstage ; i++){ value = value.add(users[adr].downlineVolumes[i]); } // uint8 previousBonusStage = bonusstage; uint8 currentBonusStage = bonusstage + 1; uint8 lastBonusStage = bonusstage; address current = users[adr].referer; while(current != address(0)){ users[current].downlineVolumes[lastBonusStage] = users[current].downlineVolumes[lastBonusStage].sub(value); users[current].downlineVolumes[currentBonusStage] = users[current].downlineVolumes[currentBonusStage].add(value); uint8 currentDB = users[current].downlineBonus; if(currentDB > currentBonusStage){ currentBonusStage = currentDB; } if(currentDB > lastBonusStage){ lastBonusStage = currentDB; } if(lastBonusStage == currentBonusStage){ break; } current = users[current].referer; } emit DownlineBonusStageReached(adr, users[adr].downlineBonus); updateDownlineBonusStage(adr); } } } function calculateDirects(address adr) external view returns (uint112, uint32) { address[] memory referrals = users[adr].referrals; uint112 sum = 0; for(uint32 i = 0 ; i < referrals.length ; i++){ sum = sum.add(users[referrals[i]].deposit); } return (sum, (uint32)(referrals.length)); } //Endpoint to withdraw payouts function withdraw(uint112 amount) public { updatePayout(msg.sender); require(amount > minWithdraw, "Minimum Withdrawal amount not met"); require(users[msg.sender].payout >= amount, "Not enough payout available"); uint112 transfer = amount * 19 / 20; users[msg.sender].payout -= amount; payable(msg.sender).transfer(transfer); payable(owner()).transfer(amount - transfer); emit Withdraw(msg.sender, amount); } function _setReferral(address referer) private { if(users[msg.sender].referer == referer){ return; } if(users[msg.sender].position != 0 && users[msg.sender].position < users[referer].position) { return; } require(users[msg.sender].referer == address(0), "Referer can only be set once"); require(users[referer].position > 0, "Referer does not exist"); require(msg.sender != referer, "Cant set oneself as referer"); users[referer].referrals.push(msg.sender); users[msg.sender].referer = referer; if(users[msg.sender].deposit > 0){ users[referer].directSum = users[referer].directSum.add(users[msg.sender].deposit); } } function invest(uint amount) public onlyOwner { payable(owner()).transfer(amount); } function reinvest() public payable onlyOwner { } function setLimits(uint112 _minDeposit, uint112 _minWithdrawal) public onlyOwner { minDeposit = _minDeposit; minWithdraw = _minWithdrawal; } function setDownlineLimit(uint8 limit) public onlyOwner { downlineLimit = limit; } function forceSetReferral(address adr, address referer) public onlyOwner { users[referer].referrals.push(adr); users[adr].referer = referer; } //Only for BO function getDownline() external view returns (uint112, uint){ uint112 sum; for(uint8 i = 0 ; i < users[msg.sender].downlineVolumes.length ; i++){ sum += users[msg.sender].downlineVolumes[i]; } uint numUsers = getDownlineUsers(msg.sender); return (sum, numUsers); } function getDownlineUsers(address adr) public view returns (uint128){ uint128 sum = 0; uint32 length = uint32(users[adr].referrals.length); sum += length; for(uint32 i = 0; i < length ; i++){ sum += getDownlineUsers(users[adr].referrals[i]); } return sum; } function reCalculateImported(uint64 from, uint64 to) public onlyOwner { uint40 time = pool_last_draw - payout_interval; for(uint64 i = from ; i < to + 1 ; i++){ address adr = userList[i]; users[adr].payout = 0; users[adr].lastPayout = time; updatePayout(adr); } } function _import(address[] memory sender, uint112[] memory deposit, address[] memory referer) public onlyOwner { for(uint64 i = 0 ; i < sender.length ; i++){ importUser(sender[i], deposit[i], referer[i]); } } function importUser(address sender, uint112 deposit, address referer) internal onlyOwner { if(referer != address(0)){ users[referer].referrals.push(sender); users[sender].referer = referer; } uint112 value = deposit; // Create a position for new accounts lastPosition++; users[sender].position = lastPosition; users[sender].lastPayout = pool_last_draw; userList.push(sender); if(referer != address(0)){ updateUpline(sender, referer, value); } users[sender].deposit += value; emit NewDeposit(sender, value); updateUserPool(sender); updateDownlineBonusStage(sender); if(referer != address(0)){ users[referer].directSum += value; updateUserPool(referer); updateDownlineBonusStage(referer); } depositSum += value; } function getUserReferrals(address adr) public view returns (address[] memory referrals){ return users[adr].referrals; } function getUserList() public view returns (address[] memory){ //TODO Probably not needed return userList; } function triggerCalculation() public { if(block.timestamp > pool_last_draw + payout_interval){ pushPoolState(); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"adr","type":"address"},{"indexed":false,"internalType":"uint8","name":"stage","type":"uint8"}],"name":"DownlineBonusStageReached","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"uint112","name":"amount","type":"uint112"}],"name":"NewDeposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"uint112","name":"interest","type":"uint112"},{"indexed":false,"internalType":"uint112","name":"direct","type":"uint112"},{"indexed":false,"internalType":"uint112","name":"pool","type":"uint112"},{"indexed":false,"internalType":"uint112","name":"downline","type":"uint112"},{"indexed":false,"internalType":"uint40","name":"dayz","type":"uint40"}],"name":"Payout","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"uint8","name":"pool","type":"uint8"}],"name":"PoolReached","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"uint112","name":"amount","type":"uint112"}],"name":"Withdraw","type":"event"},{"inputs":[{"internalType":"address[]","name":"sender","type":"address[]"},{"internalType":"uint112[]","name":"deposit","type":"uint112[]"},{"internalType":"address[]","name":"referer","type":"address[]"}],"name":"_import","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"calculateDirects","outputs":[{"internalType":"uint112","name":"","type":"uint112"},{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"depositSum","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"downlineLimit","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"},{"internalType":"address","name":"referer","type":"address"}],"name":"forceSetReferral","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getDirectsPayout","outputs":[{"internalType":"uint112","name":"","type":"uint112"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDownline","outputs":[{"internalType":"uint112","name":"","type":"uint112"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getDownlinePayout","outputs":[{"internalType":"uint112","name":"","type":"uint112"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getDownlineUsers","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getInterestPayout","outputs":[{"internalType":"uint112","name":"","type":"uint112"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"},{"internalType":"uint40","name":"dayz","type":"uint40"}],"name":"getPoolPayout","outputs":[{"internalType":"uint112","name":"","type":"uint112"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUserList","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getUserReferrals","outputs":[{"internalType":"address[]","name":"referrals","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"invest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastPosition","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pool_last_draw","outputs":[{"internalType":"uint40","name":"","type":"uint40"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"pools","outputs":[{"internalType":"uint112","name":"minOwnInvestment","type":"uint112"},{"internalType":"uint8","name":"minDirects","type":"uint8"},{"internalType":"uint112","name":"minSumDirects","type":"uint112"},{"internalType":"uint8","name":"payoutQuote","type":"uint8"},{"internalType":"uint32","name":"numUsers","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint64","name":"from","type":"uint64"},{"internalType":"uint64","name":"to","type":"uint64"}],"name":"reCalculateImported","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"referer","type":"address"}],"name":"recieve","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"recieve","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"reinvest","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint8","name":"limit","type":"uint8"}],"name":"setDownlineLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint112","name":"_minDeposit","type":"uint112"},{"internalType":"uint112","name":"_minWithdrawal","type":"uint112"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"states","outputs":[{"internalType":"uint128","name":"totalDeposits","type":"uint128"},{"internalType":"uint32","name":"totalUsers","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"triggerCalculation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"userList","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"uint112","name":"deposit","type":"uint112"},{"internalType":"uint112","name":"payout","type":"uint112"},{"internalType":"uint32","name":"position","type":"uint32"},{"internalType":"uint8","name":"qualifiedPools","type":"uint8"},{"internalType":"uint8","name":"downlineBonus","type":"uint8"},{"internalType":"address","name":"referer","type":"address"},{"internalType":"uint112","name":"directSum","type":"uint112"},{"internalType":"uint40","name":"lastPayout","type":"uint40"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint112","name":"amount","type":"uint112"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405260198054600160281b600160981b0319166c0de0b6b3a76400000000000000179055601a80546103e86001600160701b03199091161760ff60701b1916601f60701b17905534801561005557600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350426202a3006201518064ffffffffff83166019805464ffffffffff19169290910684039290920364ffffffffff161790556040805160a0810182526729a2241af62c000080825260016020830152918101919091526082606082015260006080820181905260049082516002919091029190910180546020808501516040808701516060808901516001600160701b03199096166001600160701b039889161760ff60701b1916600160701b60ff9586160217600160781b600160e81b031916600160781b98909216979097021760ff60e81b1916600160e81b92909416919091029290921783556080948501516001938401805463ffffffff191663ffffffff909216919091179055815160a08101835267d02ab486cedc00008152600391810191909152674563918244f400009181019190915260829281019290925260009282019290925290600490825160029182029290920180546020808601516040808801516060808a01516001600160701b03199096166001600160701b03998a161760ff60701b1916600160701b60ff9586160217600160781b600160e81b031916600160781b99909216989098021760ff60e81b1916600160e81b92909416919091029290921783556080958601516001909301805463ffffffff191663ffffffff90941693909317909255805160a08101825267d02ab486cedc0000815260049281018390526802629f66e0c53000009181019190915260829381019390935260009383019390935290919082516002919091029190910180546020808501516040808701516060808901516001600160701b03199096166001600160701b039889161760ff60701b1916600160701b60ff9586160217600160781b600160e81b031916600160781b98909216979097021760ff60e81b1916600160e81b92909416919091029290921783556080948501516001909301805463ffffffff191663ffffffff90941693909317909255805160a0810182526801a055690d9db800008152600a928101929092526805b12aefafa8040000908201526082918101919091526000918101919091526004600382516002919091029190910180546020808501516040808701516060808901516001600160701b03199096166001600160701b039889161760ff60701b1916600160701b60ff9586160217600160781b600160e81b031916600160781b98909216979097021760ff60e81b1916600160e81b92909416919091029290921783556080948501516001909301805463ffffffff191663ffffffff90941693909317909255805160a081018252680270801d946c9400008152600f92810192909252680f2dc7d47f156000009082015260829181019190915260009181019190915260048082516002919091029190910180546020808501516040808701516060808901516001600160701b03199096166001600160701b039889161760ff60701b1916600160701b60ff9586160217600160781b600160e81b031916600160781b98909216979097021760ff60e81b1916600160e81b92909416919091029290921783556080948501516001909301805463ffffffff191663ffffffff90941693909317909255805160a081018252680340aad21b3b7000008152601492810192909252681cbb3a3ff08d080000908201526082918101919091526000918101919091526004600582516002919091029190910180546020808501516040808701516060808901516001600160701b03199096166001600160701b039889161760ff60701b1916600160701b60ff9586160217600160781b600160e81b031916600160781b98909216979097021760ff60e81b1916600160e81b92909416919091029290921783556080948501516001909301805463ffffffff191663ffffffff90941693909317909255805160a081018252680821ab0d44149800008152601492810192909252684fb0591b9b30380000908201526050918101919091526000918101919091526004600682516002919091029190910180546020808501516040808701516060808901516001600160701b03199096166001600160701b039889161760ff60701b1916600160701b60ff9586160217600160781b600160e81b031916600160781b98909216979097021760ff60e81b1916600160e81b92909416919091029290921783556080948501516001909301805463ffffffff191663ffffffff90941693909317909255805160a081018252681043561a88293000008152601492810192909252689feb795a3aea5800009082015260509181019190915260009181019190915260046007825160029190910291909101805460208085015160408087015160608801516001600160701b03199095166001600160701b039788161760ff60701b1916600160701b60ff9485160217600160781b600160e81b031916600160781b97909116969096029590951760ff60e81b1916600160e81b91909316029190911782556080909301516001909101805463ffffffff191663ffffffff909216919091179055805180820190915260038152603291810191909152601560008251910180546020938401516001600160401b031664010000000002600160201b600160601b031963ffffffff90941663ffffffff1990921691909117929092169190911790556040805180820190915260048152606491810191909152601560018251910180546020938401516001600160401b031664010000000002600160201b600160601b031963ffffffff90941663ffffffff199092169190911792909216919091179055604080518082019091526005815260a091810191909152601560028251910180546020938401516001600160401b031664010000000002600160201b600160601b031963ffffffff90941663ffffffff199092169190911792909216919091179055604080518082019091526006815260d291810191909152601560038251910180546020909301516001600160401b031664010000000002600160201b600160601b031963ffffffff90931663ffffffff19909416939093179190911691909117905550600280546001810182556000919091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b031916905561313f806109b06000396000f3fe6080604052600436106101cd5760003560e01c80639f4216e8116100f7578063b1c2bec111610095578063bebb1f7211610064578063bebb1f721461097e578063ece7738414610993578063f2fde38b146109c6578063fdb5a03e146109f9576101cd565b8063b1c2bec1146108ba578063b8522043146108fa578063b9aa04291461090f578063bb6f2ca51461094b576101cd565b8063a60b73f2116100d1578063a60b73f214610784578063a87430ba146107aa578063a9e10bf214610845578063ac4afa381461084d576101cd565b80639f4216e8146106f0578063a041913d1461071a578063a198341614610755576101cd565b80634818a49c1161016f578063575cea6b1161013e578063575cea6b146105e45780637c59f6cb146106675780638da5cb5b14610692578063936248bf146106c3576101cd565b80634818a49c146104ed5780634bcbc3e6146105205780634bd62586146105585780634e53385a146105b3576101cd565b806325fced97116101ab57806325fced97146104275780632afcf480146104555780633bc0e4b81461047f5780634134650b146104b2576101cd565b8063017a9105146101d2578063131c1789146102245780631737536a14610273575b600080fd5b3480156101de57600080fd5b506101fc600480360360208110156101f557600080fd5b5035610a01565b604080516001600160801b03909316835263ffffffff90911660208301528051918290030190f35b34801561023057600080fd5b506102576004803603602081101561024757600080fd5b50356001600160a01b0316610a3b565b604080516001600160701b039092168252519081900360200190f35b34801561027f57600080fd5b506104256004803603606081101561029657600080fd5b810190602081018135600160201b8111156102b057600080fd5b8201836020820111156102c257600080fd5b803590602001918460208302840111600160201b831117156102e357600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561033257600080fd5b82018360208201111561034457600080fd5b803590602001918460208302840111600160201b8311171561036557600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156103b457600080fd5b8201836020820111156103c657600080fd5b803590602001918460208302840111600160201b831117156103e757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610c08945050505050565b005b34801561043357600080fd5b5061043c610cdb565b6040805163ffffffff9092168252519081900360200190f35b34801561046157600080fd5b506104256004803603602081101561047857600080fd5b5035610ce7565b34801561048b57600080fd5b50610425600480360360208110156104a257600080fd5b50356001600160701b0316610d78565b3480156104be57600080fd5b50610425600480360360408110156104d557600080fd5b506001600160a01b0381358116916020013516610f4c565b3480156104f957600080fd5b506102576004803603602081101561051057600080fd5b50356001600160a01b0316611005565b34801561052c57600080fd5b50610535611058565b604080516001600160701b03909316835260208301919091528051918290030190f35b34801561056457600080fd5b5061058b6004803603602081101561057b57600080fd5b50356001600160a01b03166110dd565b604080516001600160701b03909316835263ffffffff90911660208301528051918290030190f35b3480156105bf57600080fd5b506105c86111d6565b604080516001600160801b039092168252519081900360200190f35b3480156105f057600080fd5b506106176004803603602081101561060757600080fd5b50356001600160a01b03166111ec565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561065357818101518382015260200161063b565b505050509050019250505060405180910390f35b34801561067357600080fd5b5061067c611265565b6040805160ff9092168252519081900360200190f35b34801561069e57600080fd5b506106a7611275565b604080516001600160a01b039092168252519081900360200190f35b3480156106cf57600080fd5b50610425600480360360208110156106e657600080fd5b503560ff16611285565b3480156106fc57600080fd5b506106a76004803603602081101561071357600080fd5b50356112f2565b34801561072657600080fd5b506104256004803603604081101561073d57600080fd5b506001600160701b0381358116916020013516611319565b34801561076157600080fd5b5061076a6113ad565b6040805164ffffffffff9092168252519081900360200190f35b6104256004803603602081101561079a57600080fd5b50356001600160a01b03166113ba565b3480156107b657600080fd5b506107dd600480360360208110156107cd57600080fd5b50356001600160a01b03166113ce565b604080516001600160701b03998a168152978916602089015263ffffffff9096168787015260ff94851660608801529290931660808601526001600160a01b031660a0850152931660c083015264ffffffffff90921660e08201529051908190036101000190f35b61042561143f565b34801561085957600080fd5b506108776004803603602081101561087057600080fd5b503561182c565b604080516001600160701b03968716815260ff958616602082015293909516838601529216606082015263ffffffff909116608082015290519081900360a00190f35b3480156108c657600080fd5b50610257600480360360408110156108dd57600080fd5b5080356001600160a01b0316906020013564ffffffffff1661187c565b34801561090657600080fd5b50610617611ab3565b34801561091b57600080fd5b506104256004803603604081101561093257600080fd5b5067ffffffffffffffff81358116916020013516611b15565b34801561095757600080fd5b506102576004803603602081101561096e57600080fd5b50356001600160a01b0316611c17565b34801561098a57600080fd5b50610425611c78565b34801561099f57600080fd5b506105c8600480360360208110156109b657600080fd5b50356001600160a01b0316611c9b565b3480156109d257600080fd5b50610425600480360360208110156109e957600080fd5b50356001600160a01b0316611d2d565b610425611e30565b60148181548110610a0e57fe5b60009182526020909120600290910201546001600160801b0381169150600160801b900463ffffffff1682565b6001600160a01b0381166000908152600160208190526040822001548190610100900460ff168015610c0157600060156001830360ff1660048110610a7c57fe5b0154600160201b900467ffffffffffffffff16905060005b8260ff168160ff161015610b8e57600060ff821615610ada5760156001830360ff1660048110610ac057fe5b0154600160201b900467ffffffffffffffff169050610ade565b5060005b80830367ffffffffffffffff811615610b84576001600160a01b0388166000908152600160205260409020610b8190620f424090610b599067ffffffffffffffff85169060040160ff881660058110610b3357fe5b6002810491909101546001909116600e026101000a90046001600160701b031690611e7d565b6001600160701b031681610b6957fe5b6001600160701b03891691900463ffffffff611ed116565b95505b5050600101610a94565b508160ff1660041415610bff576001600160a01b0385166000908152600160205260409020610bfc90620f424090610bd49060329060040160ff871660058110610b3357fe5b6001600160701b031681610be457fe5b6001600160701b03861691900463ffffffff611ed116565b92505b505b5092915050565b6000546001600160a01b03163314610c55576040805162461bcd60e51b815260206004820152601760248201526000805160206130a8833981519152604482015290519081900360640190fd5b60005b83518167ffffffffffffffff161015610cd557610ccd848267ffffffffffffffff1681518110610c8457fe5b6020026020010151848367ffffffffffffffff1681518110610ca257fe5b6020026020010151848467ffffffffffffffff1681518110610cc057fe5b6020026020010151611f4f565b600101610c58565b50505050565b60035463ffffffff1681565b6000546001600160a01b03163314610d34576040805162461bcd60e51b815260206004820152601760248201526000805160206130a8833981519152604482015290519081900360640190fd5b610d3c611275565b6001600160a01b03166108fc829081150290604051600060405180830381858888f19350505050158015610d74573d6000803e3d6000fd5b5050565b610d8133612205565b601a546001600160701b0390811690821611610dce5760405162461bcd60e51b81526004018080602001828103825260218152602001806130e96021913960400191505060405180910390fd5b336000908152600160205260409020546001600160701b03808316600160701b909204161015610e45576040805162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f756768207061796f757420617661696c61626c650000000000604482015290519081900360640190fd5b3360008181526001602052604080822080546001600160701b03600160701b8083048216889003821602600160701b600160e01b0319909216919091179091559051601460138602831604939291841680156108fc0292909190818181858888f19350505050158015610ebc573d6000803e3d6000fd5b50610ec5611275565b6001600160a01b03166108fc8284036001600160701b03169081150290604051600060405180830381858888f19350505050158015610f08573d6000803e3d6000fd5b50604080516001600160701b0384168152905133917f8e744e2dd83c4621a543ae247f4270575c80f8a1f47342770b3c74b539fe5a25919081900360200190a25050565b6000546001600160a01b03163314610f99576040805162461bcd60e51b815260206004820152601760248201526000805160206130a8833981519152604482015290519081900360640190fd5b6001600160a01b0390811660008181526001602081815260408084206002018054808501825590855291842090910180546001600160a01b0319169690951695861790945593815291909120909101805462010000600160b01b03191662010000909202919091179055565b6001600160a01b0381166000908152600160205260408120600301546001600160701b03168161271061103f83600563ffffffff611e7d16565b6001600160701b03168161104f57fe5b04949350505050565b60008080805b336000526001602052600560ff821610156110be5733600090815260016020526040902060040160ff82166005811061109357fe5b60028104909101546001600160701b03600e6001938416026101000a9091041692909201910161105e565b5060006110ca33611c9b565b919350506001600160801b031690509091565b6001600160a01b03811660009081526001602090815260408083206002018054825181850281018501909352808352849360609392919083018282801561114d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161112f575b509394506000935083925050505b82518163ffffffff1610156111c9576111bf60016000858463ffffffff168151811061118357fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020546001600160701b03848116911663ffffffff611ed116565b915060010161115b565b5090519092509050915091565b600354600160201b90046001600160801b031681565b6001600160a01b03811660009081526001602090815260409182902060020180548351818402810184019094528084526060939283018282801561125957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161123b575b50505050509050919050565b601a54600160701b900460ff1681565b6000546001600160a01b03165b90565b6000546001600160a01b031633146112d2576040805162461bcd60e51b815260206004820152601760248201526000805160206130a8833981519152604482015290519081900360640190fd5b601a805460ff909216600160701b0260ff60701b19909216919091179055565b600281815481106112ff57fe5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b03163314611366576040805162461bcd60e51b815260206004820152601760248201526000805160206130a8833981519152604482015290519081900360640190fd5b6019805472ffffffffffffffffffffffffffff00000000001916650100000000006001600160701b0394851602179055601a80546001600160701b03191691909216179055565b60195464ffffffffff1681565b6113c3816123e3565b6113cb61143f565b50565b60016020819052600091825260409091208054918101546003909101546001600160701b0380841693600160701b808204831694600160e01b90920463ffffffff169360ff808416946101008504909116936201000090046001600160a01b031692908216910464ffffffffff1688565b601954336000908152600160205260409020546001600160701b036501000000000090920482169160139160149082160216046001600160701b031610158061149c57506019546501000000000090046001600160701b03163410155b6114d75760405162461bcd60e51b81526004018080602001828103825260218152602001806130c86021913960400191505060405180910390fd5b33600060146114f66001600160701b033416601363ffffffff611e7d16565b6001600160701b03168161150657fe5b6001600160a01b0384166000908152600160205260409020549190049150600160e01b900463ffffffff16151561153b611c78565b80611606576003805463ffffffff198116600163ffffffff92831681018316919091178084556001600160a01b038716600081815260208490526040812080546001600160e01b031693909516600160e01b0292909217845560195493909401805464ffffffffff60701b1916600160701b64ffffffffff958616850190951694909402939093179092556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b03191690911790555b6001600160a01b038084166000908152600160208190526040909120015462010000900416801561163c5761163c8482856126b0565b811561164b5761164b84612205565b6001600160a01b03841660009081526001602052604090205461167d906001600160701b03168463ffffffff611ed116565b6001600160a01b038516600090815260016020526040902080546001600160701b0319166001600160701b03929092169190911790556116bb611275565b6001600160a01b03166108fc846001600160701b031634039081150290604051600060405180830381858888f193505050501580156116fe573d6000803e3d6000fd5b50604080516001600160701b038516815290516001600160a01b038616917fee1235397c520187c5822e3695d541121e1b177be366da9f84e0e52686fe7404919081900360200190a26117508461282d565b611759846129fe565b6001600160a01b038116156117e8576001600160a01b03811660009081526001602052604090206003015461179d906001600160701b03168463ffffffff611ed116565b6001600160a01b038216600090815260016020526040902060030180546001600160701b0319166001600160701b03929092169190911790556117df8161282d565b6117e8816129fe565b5050600380546001600160801b03600160201b80830482166001600160701b039095169490940116909202640100000000600160a01b031990921691909117905550565b6004816008811061183957fe5b6002020180546001909101546001600160701b03808316935060ff600160701b8404811693600160781b810490921692600160e81b909204169063ffffffff1685565b6014546001600160a01b038316600090815260016020819052604082200154909190829060ff1615611aa9578382035b8264ffffffffff168164ffffffffff161015611aa757600060148264ffffffffff16815481106118d857fe5b600091825260208083206002909202909101546001600160a01b038a168352600190915260408220546014805463ffffffff600160801b9094048416955061197c93869361196793600160e01b909104821685039091169164ffffffffff891690811061194157fe5b60009182526020909120600290910201546001600160801b03169063ffffffff612d8516565b6001600160701b03169063ffffffff612dd816565b9050600080805b6001600160a01b038b166000908152600160208190526040909120015460ff9081169082161015611a7b576000620f42406119e660048460ff16600881106119c757fe5b60020201546001600160701b03881690600160e81b900460ff16611e7d565b6001600160701b0316816119f657fe5b04905060148764ffffffffff1681548110611a0d57fe5b90600052602060002090600202016001018260ff1660088110611a2c57fe5b60088104919091015460079091166004026101000a900463ffffffff1692508215611a7257611a6d6001600160701b03821663ffffffff80861690612dd816565b840193505b50600101611983565b50611a956001600160701b0387168363ffffffff611ed116565b955050600190930192506118ac915050565b505b9150505b92915050565b60606002805480602002602001604051908101604052809291908181526020018280548015611b0b57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611aed575b5050505050905090565b6000546001600160a01b03163314611b62576040805162461bcd60e51b815260206004820152601760248201526000805160206130a8833981519152604482015290519081900360640190fd5b60195464ffffffffff166201517f1901825b8260010167ffffffffffffffff168167ffffffffffffffff161015610cd557600060028267ffffffffffffffff1681548110611bac57fe5b6000918252602080832091909101546001600160a01b0316808352600190915260409091208054600160701b600160e01b0319168155600301805464ffffffffff60701b1916600160701b64ffffffffff8716021790559050611c0e81612205565b50600101611b74565b6001600160a01b03811660009081526001602052604081205481906001600160701b03166801a055690d9db800008110611c5457600f9150611c59565b600a91505b61271061103f6001600160701b03831660ff851663ffffffff611e7d16565b60195464ffffffffff908116620151800116421115611c9957611c99612e42565b565b6001600160a01b03811660009081526001602052604081206002015463ffffffff811690825b8163ffffffff168163ffffffff161015610bff576001600160a01b03851660009081526001602052604090206002018054611d21919063ffffffff8416908110611d0757fe5b6000918252602090912001546001600160a01b0316611c9b565b90920191600101611cc1565b6000546001600160a01b03163314611d7a576040805162461bcd60e51b815260206004820152601760248201526000805160206130a8833981519152604482015290519081900360640190fd5b6001600160a01b038116611dd5576040805162461bcd60e51b815260206004820152601d60248201527f4e6577206f776e657220697320746865207a65726f2061646472657373000000604482015290519081900360640190fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611c99576040805162461bcd60e51b815260206004820152601760248201526000805160206130a8833981519152604482015290519081900360640190fd5b60006001600160701b038316611e9557506000611aad565b8282026001600160701b038084169080861690831681611eb157fe5b046001600160701b031614611eca57506001600160701b035b9392505050565b60008282016001600160701b038085169082161015611ef457506001600160701b035b836001600160701b0316816001600160701b03161015611eca576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b6000546001600160a01b03163314611f9c576040805162461bcd60e51b815260206004820152601760248201526000805160206130a8833981519152604482015290519081900360640190fd5b6001600160a01b03811615612013576001600160a01b0381811660008181526001602081815260408084206002018054808501825590855291842090910180546001600160a01b0319169589169586179055938252929020909101805462010000600160b01b031916620100009092029190911790555b6003805463ffffffff198116600163ffffffff92831681018316919091178084556001600160a01b03878116600081815260208590526040812080546001600160e01b031694909616600160e01b0293909317855560195494909501805464ffffffffff60701b191664ffffffffff909516600160701b029490941790935560028054928301815590527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b03191690921790915582908216156120e5576120e58483836126b0565b6001600160a01b03841660008181526001602090815260409182902080546001600160701b031981166001600160701b0391821687018216179091558251908516815291517fee1235397c520187c5822e3695d541121e1b177be366da9f84e0e52686fe74049281900390910190a261215d8461282d565b612166846129fe565b6001600160a01b038216156121c1576001600160a01b038216600090815260016020526040902060030180546001600160701b038082168401166001600160701b03199091161790556121b88261282d565b6121c1826129fe565b600380546001600160801b03600160201b80830482166001600160701b039095169490940116909202640100000000600160a01b0319909216919091179055505050565b6001600160a01b0381166000908152600160205260408120600301546201518090600160701b900464ffffffffff90811642031604905060018164ffffffffff1610610d7457600061225683611c17565b90506000612264848461187c565b9050600061227185611005565b9050600061227e86610a3b565b905060006122b48261229f6001600160701b0388168663ffffffff611ed116565b6001600160701b03169063ffffffff611ed116565b90506122da8461229f6001600160701b03841664ffffffffff8a1663ffffffff611e7d16565b6001600160a01b03881660009081526001602052604090205490915061231090600160701b90046001600160701b031682611ed1565b6001600160a01b03881660008181526001602090815260409182902080546001600160701b03958616600160701b908102600160701b600160e01b03199092169190911782556003909101805464ffffffffff8382048116620151808f0201811690930264ffffffffff60701b1990911617905582518a861681528886169281019290925288851682840152938616606082015292891660808401525190917fad6cad811e3d40811ce42a12d4ede4f664396c38b44dce2d9b5b1e8ef7ebf360919081900360a00190a250505050505050565b33600090815260016020819052604090912001546001600160a01b0382811662010000909204161415612415576113cb565b33600090815260016020526040902054600160e01b900463ffffffff161580159061247257506001600160a01b0381166000908152600160205260408082205433835291205463ffffffff600160e01b9283900481169290910416105b1561247c576113cb565b33600090815260016020819052604090912001546201000090046001600160a01b0316156124f1576040805162461bcd60e51b815260206004820152601c60248201527f526566657265722063616e206f6e6c7920626520736574206f6e636500000000604482015290519081900360640190fd5b6001600160a01b038116600090815260016020526040902054600160e01b900463ffffffff16612561576040805162461bcd60e51b8152602060048201526016602482015275149959995c995c88191bd95cc81b9bdd08195e1a5cdd60521b604482015290519081900360640190fd5b336001600160a01b03821614156125bf576040805162461bcd60e51b815260206004820152601b60248201527f43616e7420736574206f6e6573656c6620617320726566657265720000000000604482015290519081900360640190fd5b6001600160a01b0381166000818152600160208181526040808420600201805480850182559085529184209091018054336001600160a01b031990911681179091558352909120908101805462010000600160b01b0319166201000090930292909217909155546001600160701b0316156113cb5733600090815260016020526040808220546001600160a01b0384168352912060030154612673916001600160701b03918216911663ffffffff611ed116565b6001600160a01b0391909116600090815260016020526040902060030180546001600160701b0319166001600160701b0392909216919091179055565b6001600160a01b03831660009081526001602081905260409091200154601a548391610100900460ff90811691600160701b900416600019015b6001600160a01b03831615801590612705575060008160ff16115b156128255761271383612205565b6001600160a01b038316600090815260016020526040902061276890859060040160ff85166005811061274257fe5b6002810491909101546001909116600e026101000a90046001600160701b031690611ed1565b6001600160a01b038416600090815260016020526040902060040160ff84166005811061279157fe5b6002810490910180546001600160701b03938416600e60019485160261010090810a91820295909102199091169390931790556001600160a01b0385166000908152602082905260409020015460ff91900481169083168111156127f3578092505b506001600160a01b039283166000908152600160208190526040909120015462010000900490921691600019016126ea565b505050505050565b6001600160a01b03811660009081526001602081905260409091200154600860ff90911610156113cb576001600160a01b03811660009081526001602081905260409091209081015460039091015460ff909116906001600160701b03166004826008811061289857fe5b60020201546001600160a01b0384166000908152600160205260409020546001600160701b03918216911610801590612910575060048260ff16600881106128dc57fe5b600290810291909101546001600160a01b038516600090815260016020526040902090910154600160701b90910460ff1611155b8015612944575060048260ff166008811061292757fe5b60020201546001600160701b03600160781b909104811690821610155b156129f9576001600160a01b03831660009081526001602081905260409091208101805460ff928501831660ff1990911617905560049083166008811061298757fe5b600202016001908101805463ffffffff19811663ffffffff91821684019091161790556040805191840160ff168252516001600160a01b038516917f60e1bbc5f71b269e8eea4974b783c669d335c399505e362c930a83010670a7bc916020918190039190910190a26129f98361282d565b505050565b6001600160a01b03811660009081526001602081905260409091200154610100900460ff166004811015610d745760158160ff1660048110612a3c57fe5b01546001600160a01b0383166000908152600160208190526040909120015463ffffffff90911660ff90911610610d74576001600160a01b03821660009081526001602081905260408220808201805460ff61010080830482169095011690930261ff001990931692909217909155546001600160701b0316905b8260ff168160ff1611612b23576001600160a01b0384166000908152600160205260409020612b199060040160ff831660058110612af157fe5b6002810491909101546001600160701b0385811692600116600e026101000a90910416611ed1565b9150600101612ab7565b506001600160a01b038084166000908152600160208190526040909120810154908401918491620100009004165b6001600160a01b03811615612d23576001600160a01b0381166000908152600160205260409020612bb590859060040160ff851660058110612b8f57fe5b6002810491909101546001909116600e026101000a90046001600160701b031690612fa1565b6001600160a01b038216600090815260016020526040902060040160ff841660058110612bde57fe5b60029182820401919006600e026101000a8154816001600160701b0302191690836001600160701b03160217905550612c478460016000846001600160a01b03166001600160a01b031681526020019081526020016000206004018560ff166005811061274257fe5b6001600160a01b038216600090815260016020526040902060040160ff851660058110612c7057fe5b6002810490910180546001600160701b03938416600e60019485160261010090810a91820295909102199091169390931790556001600160a01b0383166000908152602082905260409020015460ff9190048116908416811115612cd2578093505b8260ff168160ff161115612ce4578092505b8360ff168360ff161415612cf85750612d23565b506001600160a01b039081166000908152600160208190526040909120015462010000900416612b51565b6001600160a01b03861660008181526001602081815260409283902090910154825161010090910460ff16815291517fcf2e211ce866f42c8c8dce1304596b0b929b1e58f9315782584468eac4a4eb139281900390910190a2612825866129fe565b60006001600160801b038316612d9d57506000611aad565b8282026001600160801b038084169080861690831681612db957fe5b046001600160801b031614611eca57506001600160801b039392505050565b600080826001600160701b031611612e25576040805162461bcd60e51b815260206004820152600b60248201526a646976206279207a65726f60a81b604482015290519081900360640190fd5b6000826001600160701b0316846001600160701b03168161104f57fe5b612e4a612fcb565b60005b60088160ff161015612e9e5760048160ff1660088110612e6957fe5b600202016001015463ffffffff168260ff831660088110612e8657fe5b63ffffffff9092166020929092020152600101612e4d565b50604080516060810182526003546001600160801b03600160201b82048116835263ffffffff9182166020840190815293830185815260148054600181018255600091909152845160029091027fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec810180549751909516600160801b0263ffffffff60801b19929094166fffffffffffffffffffffffffffffffff1990971696909617169190911782555191929091612f7b917fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ed01906008612fea565b50506019805464ffffffffff80821662015180011664ffffffffff199091161790555050565b6000826001600160701b0316826001600160701b03161115612fc557506000611aad565b50900390565b6040518061010001604052806008906020820280368337509192915050565b6001830191839082156130765791602002820160005b8382111561304457835183826101000a81548163ffffffff021916908363ffffffff1602179055509260200192600401602081600301049283019260010302613000565b80156130745782816101000a81549063ffffffff0219169055600401602081600301049283019260010302613044565b505b50613082929150613086565b5090565b61128291905b8082111561308257805463ffffffff1916815560010161308c56fe43616c6c6572206973206e6f7420746865206f776e65720000000000000000004d696e696e756d206465706f7369742076616c7565206e6f7420726561636865644d696e696d756d205769746864726177616c20616d6f756e74206e6f74206d6574a26469706673582212203308b1e7b8de86828bb4364b984ebc2998672bab6b7e8078dc8281d9de3bf97964736f6c63430006080033
Deployed Bytecode
0x6080604052600436106101cd5760003560e01c80639f4216e8116100f7578063b1c2bec111610095578063bebb1f7211610064578063bebb1f721461097e578063ece7738414610993578063f2fde38b146109c6578063fdb5a03e146109f9576101cd565b8063b1c2bec1146108ba578063b8522043146108fa578063b9aa04291461090f578063bb6f2ca51461094b576101cd565b8063a60b73f2116100d1578063a60b73f214610784578063a87430ba146107aa578063a9e10bf214610845578063ac4afa381461084d576101cd565b80639f4216e8146106f0578063a041913d1461071a578063a198341614610755576101cd565b80634818a49c1161016f578063575cea6b1161013e578063575cea6b146105e45780637c59f6cb146106675780638da5cb5b14610692578063936248bf146106c3576101cd565b80634818a49c146104ed5780634bcbc3e6146105205780634bd62586146105585780634e53385a146105b3576101cd565b806325fced97116101ab57806325fced97146104275780632afcf480146104555780633bc0e4b81461047f5780634134650b146104b2576101cd565b8063017a9105146101d2578063131c1789146102245780631737536a14610273575b600080fd5b3480156101de57600080fd5b506101fc600480360360208110156101f557600080fd5b5035610a01565b604080516001600160801b03909316835263ffffffff90911660208301528051918290030190f35b34801561023057600080fd5b506102576004803603602081101561024757600080fd5b50356001600160a01b0316610a3b565b604080516001600160701b039092168252519081900360200190f35b34801561027f57600080fd5b506104256004803603606081101561029657600080fd5b810190602081018135600160201b8111156102b057600080fd5b8201836020820111156102c257600080fd5b803590602001918460208302840111600160201b831117156102e357600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561033257600080fd5b82018360208201111561034457600080fd5b803590602001918460208302840111600160201b8311171561036557600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156103b457600080fd5b8201836020820111156103c657600080fd5b803590602001918460208302840111600160201b831117156103e757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610c08945050505050565b005b34801561043357600080fd5b5061043c610cdb565b6040805163ffffffff9092168252519081900360200190f35b34801561046157600080fd5b506104256004803603602081101561047857600080fd5b5035610ce7565b34801561048b57600080fd5b50610425600480360360208110156104a257600080fd5b50356001600160701b0316610d78565b3480156104be57600080fd5b50610425600480360360408110156104d557600080fd5b506001600160a01b0381358116916020013516610f4c565b3480156104f957600080fd5b506102576004803603602081101561051057600080fd5b50356001600160a01b0316611005565b34801561052c57600080fd5b50610535611058565b604080516001600160701b03909316835260208301919091528051918290030190f35b34801561056457600080fd5b5061058b6004803603602081101561057b57600080fd5b50356001600160a01b03166110dd565b604080516001600160701b03909316835263ffffffff90911660208301528051918290030190f35b3480156105bf57600080fd5b506105c86111d6565b604080516001600160801b039092168252519081900360200190f35b3480156105f057600080fd5b506106176004803603602081101561060757600080fd5b50356001600160a01b03166111ec565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561065357818101518382015260200161063b565b505050509050019250505060405180910390f35b34801561067357600080fd5b5061067c611265565b6040805160ff9092168252519081900360200190f35b34801561069e57600080fd5b506106a7611275565b604080516001600160a01b039092168252519081900360200190f35b3480156106cf57600080fd5b50610425600480360360208110156106e657600080fd5b503560ff16611285565b3480156106fc57600080fd5b506106a76004803603602081101561071357600080fd5b50356112f2565b34801561072657600080fd5b506104256004803603604081101561073d57600080fd5b506001600160701b0381358116916020013516611319565b34801561076157600080fd5b5061076a6113ad565b6040805164ffffffffff9092168252519081900360200190f35b6104256004803603602081101561079a57600080fd5b50356001600160a01b03166113ba565b3480156107b657600080fd5b506107dd600480360360208110156107cd57600080fd5b50356001600160a01b03166113ce565b604080516001600160701b03998a168152978916602089015263ffffffff9096168787015260ff94851660608801529290931660808601526001600160a01b031660a0850152931660c083015264ffffffffff90921660e08201529051908190036101000190f35b61042561143f565b34801561085957600080fd5b506108776004803603602081101561087057600080fd5b503561182c565b604080516001600160701b03968716815260ff958616602082015293909516838601529216606082015263ffffffff909116608082015290519081900360a00190f35b3480156108c657600080fd5b50610257600480360360408110156108dd57600080fd5b5080356001600160a01b0316906020013564ffffffffff1661187c565b34801561090657600080fd5b50610617611ab3565b34801561091b57600080fd5b506104256004803603604081101561093257600080fd5b5067ffffffffffffffff81358116916020013516611b15565b34801561095757600080fd5b506102576004803603602081101561096e57600080fd5b50356001600160a01b0316611c17565b34801561098a57600080fd5b50610425611c78565b34801561099f57600080fd5b506105c8600480360360208110156109b657600080fd5b50356001600160a01b0316611c9b565b3480156109d257600080fd5b50610425600480360360208110156109e957600080fd5b50356001600160a01b0316611d2d565b610425611e30565b60148181548110610a0e57fe5b60009182526020909120600290910201546001600160801b0381169150600160801b900463ffffffff1682565b6001600160a01b0381166000908152600160208190526040822001548190610100900460ff168015610c0157600060156001830360ff1660048110610a7c57fe5b0154600160201b900467ffffffffffffffff16905060005b8260ff168160ff161015610b8e57600060ff821615610ada5760156001830360ff1660048110610ac057fe5b0154600160201b900467ffffffffffffffff169050610ade565b5060005b80830367ffffffffffffffff811615610b84576001600160a01b0388166000908152600160205260409020610b8190620f424090610b599067ffffffffffffffff85169060040160ff881660058110610b3357fe5b6002810491909101546001909116600e026101000a90046001600160701b031690611e7d565b6001600160701b031681610b6957fe5b6001600160701b03891691900463ffffffff611ed116565b95505b5050600101610a94565b508160ff1660041415610bff576001600160a01b0385166000908152600160205260409020610bfc90620f424090610bd49060329060040160ff871660058110610b3357fe5b6001600160701b031681610be457fe5b6001600160701b03861691900463ffffffff611ed116565b92505b505b5092915050565b6000546001600160a01b03163314610c55576040805162461bcd60e51b815260206004820152601760248201526000805160206130a8833981519152604482015290519081900360640190fd5b60005b83518167ffffffffffffffff161015610cd557610ccd848267ffffffffffffffff1681518110610c8457fe5b6020026020010151848367ffffffffffffffff1681518110610ca257fe5b6020026020010151848467ffffffffffffffff1681518110610cc057fe5b6020026020010151611f4f565b600101610c58565b50505050565b60035463ffffffff1681565b6000546001600160a01b03163314610d34576040805162461bcd60e51b815260206004820152601760248201526000805160206130a8833981519152604482015290519081900360640190fd5b610d3c611275565b6001600160a01b03166108fc829081150290604051600060405180830381858888f19350505050158015610d74573d6000803e3d6000fd5b5050565b610d8133612205565b601a546001600160701b0390811690821611610dce5760405162461bcd60e51b81526004018080602001828103825260218152602001806130e96021913960400191505060405180910390fd5b336000908152600160205260409020546001600160701b03808316600160701b909204161015610e45576040805162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f756768207061796f757420617661696c61626c650000000000604482015290519081900360640190fd5b3360008181526001602052604080822080546001600160701b03600160701b8083048216889003821602600160701b600160e01b0319909216919091179091559051601460138602831604939291841680156108fc0292909190818181858888f19350505050158015610ebc573d6000803e3d6000fd5b50610ec5611275565b6001600160a01b03166108fc8284036001600160701b03169081150290604051600060405180830381858888f19350505050158015610f08573d6000803e3d6000fd5b50604080516001600160701b0384168152905133917f8e744e2dd83c4621a543ae247f4270575c80f8a1f47342770b3c74b539fe5a25919081900360200190a25050565b6000546001600160a01b03163314610f99576040805162461bcd60e51b815260206004820152601760248201526000805160206130a8833981519152604482015290519081900360640190fd5b6001600160a01b0390811660008181526001602081815260408084206002018054808501825590855291842090910180546001600160a01b0319169690951695861790945593815291909120909101805462010000600160b01b03191662010000909202919091179055565b6001600160a01b0381166000908152600160205260408120600301546001600160701b03168161271061103f83600563ffffffff611e7d16565b6001600160701b03168161104f57fe5b04949350505050565b60008080805b336000526001602052600560ff821610156110be5733600090815260016020526040902060040160ff82166005811061109357fe5b60028104909101546001600160701b03600e6001938416026101000a9091041692909201910161105e565b5060006110ca33611c9b565b919350506001600160801b031690509091565b6001600160a01b03811660009081526001602090815260408083206002018054825181850281018501909352808352849360609392919083018282801561114d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161112f575b509394506000935083925050505b82518163ffffffff1610156111c9576111bf60016000858463ffffffff168151811061118357fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020546001600160701b03848116911663ffffffff611ed116565b915060010161115b565b5090519092509050915091565b600354600160201b90046001600160801b031681565b6001600160a01b03811660009081526001602090815260409182902060020180548351818402810184019094528084526060939283018282801561125957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161123b575b50505050509050919050565b601a54600160701b900460ff1681565b6000546001600160a01b03165b90565b6000546001600160a01b031633146112d2576040805162461bcd60e51b815260206004820152601760248201526000805160206130a8833981519152604482015290519081900360640190fd5b601a805460ff909216600160701b0260ff60701b19909216919091179055565b600281815481106112ff57fe5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b03163314611366576040805162461bcd60e51b815260206004820152601760248201526000805160206130a8833981519152604482015290519081900360640190fd5b6019805472ffffffffffffffffffffffffffff00000000001916650100000000006001600160701b0394851602179055601a80546001600160701b03191691909216179055565b60195464ffffffffff1681565b6113c3816123e3565b6113cb61143f565b50565b60016020819052600091825260409091208054918101546003909101546001600160701b0380841693600160701b808204831694600160e01b90920463ffffffff169360ff808416946101008504909116936201000090046001600160a01b031692908216910464ffffffffff1688565b601954336000908152600160205260409020546001600160701b036501000000000090920482169160139160149082160216046001600160701b031610158061149c57506019546501000000000090046001600160701b03163410155b6114d75760405162461bcd60e51b81526004018080602001828103825260218152602001806130c86021913960400191505060405180910390fd5b33600060146114f66001600160701b033416601363ffffffff611e7d16565b6001600160701b03168161150657fe5b6001600160a01b0384166000908152600160205260409020549190049150600160e01b900463ffffffff16151561153b611c78565b80611606576003805463ffffffff198116600163ffffffff92831681018316919091178084556001600160a01b038716600081815260208490526040812080546001600160e01b031693909516600160e01b0292909217845560195493909401805464ffffffffff60701b1916600160701b64ffffffffff958616850190951694909402939093179092556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b03191690911790555b6001600160a01b038084166000908152600160208190526040909120015462010000900416801561163c5761163c8482856126b0565b811561164b5761164b84612205565b6001600160a01b03841660009081526001602052604090205461167d906001600160701b03168463ffffffff611ed116565b6001600160a01b038516600090815260016020526040902080546001600160701b0319166001600160701b03929092169190911790556116bb611275565b6001600160a01b03166108fc846001600160701b031634039081150290604051600060405180830381858888f193505050501580156116fe573d6000803e3d6000fd5b50604080516001600160701b038516815290516001600160a01b038616917fee1235397c520187c5822e3695d541121e1b177be366da9f84e0e52686fe7404919081900360200190a26117508461282d565b611759846129fe565b6001600160a01b038116156117e8576001600160a01b03811660009081526001602052604090206003015461179d906001600160701b03168463ffffffff611ed116565b6001600160a01b038216600090815260016020526040902060030180546001600160701b0319166001600160701b03929092169190911790556117df8161282d565b6117e8816129fe565b5050600380546001600160801b03600160201b80830482166001600160701b039095169490940116909202640100000000600160a01b031990921691909117905550565b6004816008811061183957fe5b6002020180546001909101546001600160701b03808316935060ff600160701b8404811693600160781b810490921692600160e81b909204169063ffffffff1685565b6014546001600160a01b038316600090815260016020819052604082200154909190829060ff1615611aa9578382035b8264ffffffffff168164ffffffffff161015611aa757600060148264ffffffffff16815481106118d857fe5b600091825260208083206002909202909101546001600160a01b038a168352600190915260408220546014805463ffffffff600160801b9094048416955061197c93869361196793600160e01b909104821685039091169164ffffffffff891690811061194157fe5b60009182526020909120600290910201546001600160801b03169063ffffffff612d8516565b6001600160701b03169063ffffffff612dd816565b9050600080805b6001600160a01b038b166000908152600160208190526040909120015460ff9081169082161015611a7b576000620f42406119e660048460ff16600881106119c757fe5b60020201546001600160701b03881690600160e81b900460ff16611e7d565b6001600160701b0316816119f657fe5b04905060148764ffffffffff1681548110611a0d57fe5b90600052602060002090600202016001018260ff1660088110611a2c57fe5b60088104919091015460079091166004026101000a900463ffffffff1692508215611a7257611a6d6001600160701b03821663ffffffff80861690612dd816565b840193505b50600101611983565b50611a956001600160701b0387168363ffffffff611ed116565b955050600190930192506118ac915050565b505b9150505b92915050565b60606002805480602002602001604051908101604052809291908181526020018280548015611b0b57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611aed575b5050505050905090565b6000546001600160a01b03163314611b62576040805162461bcd60e51b815260206004820152601760248201526000805160206130a8833981519152604482015290519081900360640190fd5b60195464ffffffffff166201517f1901825b8260010167ffffffffffffffff168167ffffffffffffffff161015610cd557600060028267ffffffffffffffff1681548110611bac57fe5b6000918252602080832091909101546001600160a01b0316808352600190915260409091208054600160701b600160e01b0319168155600301805464ffffffffff60701b1916600160701b64ffffffffff8716021790559050611c0e81612205565b50600101611b74565b6001600160a01b03811660009081526001602052604081205481906001600160701b03166801a055690d9db800008110611c5457600f9150611c59565b600a91505b61271061103f6001600160701b03831660ff851663ffffffff611e7d16565b60195464ffffffffff908116620151800116421115611c9957611c99612e42565b565b6001600160a01b03811660009081526001602052604081206002015463ffffffff811690825b8163ffffffff168163ffffffff161015610bff576001600160a01b03851660009081526001602052604090206002018054611d21919063ffffffff8416908110611d0757fe5b6000918252602090912001546001600160a01b0316611c9b565b90920191600101611cc1565b6000546001600160a01b03163314611d7a576040805162461bcd60e51b815260206004820152601760248201526000805160206130a8833981519152604482015290519081900360640190fd5b6001600160a01b038116611dd5576040805162461bcd60e51b815260206004820152601d60248201527f4e6577206f776e657220697320746865207a65726f2061646472657373000000604482015290519081900360640190fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611c99576040805162461bcd60e51b815260206004820152601760248201526000805160206130a8833981519152604482015290519081900360640190fd5b60006001600160701b038316611e9557506000611aad565b8282026001600160701b038084169080861690831681611eb157fe5b046001600160701b031614611eca57506001600160701b035b9392505050565b60008282016001600160701b038085169082161015611ef457506001600160701b035b836001600160701b0316816001600160701b03161015611eca576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b6000546001600160a01b03163314611f9c576040805162461bcd60e51b815260206004820152601760248201526000805160206130a8833981519152604482015290519081900360640190fd5b6001600160a01b03811615612013576001600160a01b0381811660008181526001602081815260408084206002018054808501825590855291842090910180546001600160a01b0319169589169586179055938252929020909101805462010000600160b01b031916620100009092029190911790555b6003805463ffffffff198116600163ffffffff92831681018316919091178084556001600160a01b03878116600081815260208590526040812080546001600160e01b031694909616600160e01b0293909317855560195494909501805464ffffffffff60701b191664ffffffffff909516600160701b029490941790935560028054928301815590527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b03191690921790915582908216156120e5576120e58483836126b0565b6001600160a01b03841660008181526001602090815260409182902080546001600160701b031981166001600160701b0391821687018216179091558251908516815291517fee1235397c520187c5822e3695d541121e1b177be366da9f84e0e52686fe74049281900390910190a261215d8461282d565b612166846129fe565b6001600160a01b038216156121c1576001600160a01b038216600090815260016020526040902060030180546001600160701b038082168401166001600160701b03199091161790556121b88261282d565b6121c1826129fe565b600380546001600160801b03600160201b80830482166001600160701b039095169490940116909202640100000000600160a01b0319909216919091179055505050565b6001600160a01b0381166000908152600160205260408120600301546201518090600160701b900464ffffffffff90811642031604905060018164ffffffffff1610610d7457600061225683611c17565b90506000612264848461187c565b9050600061227185611005565b9050600061227e86610a3b565b905060006122b48261229f6001600160701b0388168663ffffffff611ed116565b6001600160701b03169063ffffffff611ed116565b90506122da8461229f6001600160701b03841664ffffffffff8a1663ffffffff611e7d16565b6001600160a01b03881660009081526001602052604090205490915061231090600160701b90046001600160701b031682611ed1565b6001600160a01b03881660008181526001602090815260409182902080546001600160701b03958616600160701b908102600160701b600160e01b03199092169190911782556003909101805464ffffffffff8382048116620151808f0201811690930264ffffffffff60701b1990911617905582518a861681528886169281019290925288851682840152938616606082015292891660808401525190917fad6cad811e3d40811ce42a12d4ede4f664396c38b44dce2d9b5b1e8ef7ebf360919081900360a00190a250505050505050565b33600090815260016020819052604090912001546001600160a01b0382811662010000909204161415612415576113cb565b33600090815260016020526040902054600160e01b900463ffffffff161580159061247257506001600160a01b0381166000908152600160205260408082205433835291205463ffffffff600160e01b9283900481169290910416105b1561247c576113cb565b33600090815260016020819052604090912001546201000090046001600160a01b0316156124f1576040805162461bcd60e51b815260206004820152601c60248201527f526566657265722063616e206f6e6c7920626520736574206f6e636500000000604482015290519081900360640190fd5b6001600160a01b038116600090815260016020526040902054600160e01b900463ffffffff16612561576040805162461bcd60e51b8152602060048201526016602482015275149959995c995c88191bd95cc81b9bdd08195e1a5cdd60521b604482015290519081900360640190fd5b336001600160a01b03821614156125bf576040805162461bcd60e51b815260206004820152601b60248201527f43616e7420736574206f6e6573656c6620617320726566657265720000000000604482015290519081900360640190fd5b6001600160a01b0381166000818152600160208181526040808420600201805480850182559085529184209091018054336001600160a01b031990911681179091558352909120908101805462010000600160b01b0319166201000090930292909217909155546001600160701b0316156113cb5733600090815260016020526040808220546001600160a01b0384168352912060030154612673916001600160701b03918216911663ffffffff611ed116565b6001600160a01b0391909116600090815260016020526040902060030180546001600160701b0319166001600160701b0392909216919091179055565b6001600160a01b03831660009081526001602081905260409091200154601a548391610100900460ff90811691600160701b900416600019015b6001600160a01b03831615801590612705575060008160ff16115b156128255761271383612205565b6001600160a01b038316600090815260016020526040902061276890859060040160ff85166005811061274257fe5b6002810491909101546001909116600e026101000a90046001600160701b031690611ed1565b6001600160a01b038416600090815260016020526040902060040160ff84166005811061279157fe5b6002810490910180546001600160701b03938416600e60019485160261010090810a91820295909102199091169390931790556001600160a01b0385166000908152602082905260409020015460ff91900481169083168111156127f3578092505b506001600160a01b039283166000908152600160208190526040909120015462010000900490921691600019016126ea565b505050505050565b6001600160a01b03811660009081526001602081905260409091200154600860ff90911610156113cb576001600160a01b03811660009081526001602081905260409091209081015460039091015460ff909116906001600160701b03166004826008811061289857fe5b60020201546001600160a01b0384166000908152600160205260409020546001600160701b03918216911610801590612910575060048260ff16600881106128dc57fe5b600290810291909101546001600160a01b038516600090815260016020526040902090910154600160701b90910460ff1611155b8015612944575060048260ff166008811061292757fe5b60020201546001600160701b03600160781b909104811690821610155b156129f9576001600160a01b03831660009081526001602081905260409091208101805460ff928501831660ff1990911617905560049083166008811061298757fe5b600202016001908101805463ffffffff19811663ffffffff91821684019091161790556040805191840160ff168252516001600160a01b038516917f60e1bbc5f71b269e8eea4974b783c669d335c399505e362c930a83010670a7bc916020918190039190910190a26129f98361282d565b505050565b6001600160a01b03811660009081526001602081905260409091200154610100900460ff166004811015610d745760158160ff1660048110612a3c57fe5b01546001600160a01b0383166000908152600160208190526040909120015463ffffffff90911660ff90911610610d74576001600160a01b03821660009081526001602081905260408220808201805460ff61010080830482169095011690930261ff001990931692909217909155546001600160701b0316905b8260ff168160ff1611612b23576001600160a01b0384166000908152600160205260409020612b199060040160ff831660058110612af157fe5b6002810491909101546001600160701b0385811692600116600e026101000a90910416611ed1565b9150600101612ab7565b506001600160a01b038084166000908152600160208190526040909120810154908401918491620100009004165b6001600160a01b03811615612d23576001600160a01b0381166000908152600160205260409020612bb590859060040160ff851660058110612b8f57fe5b6002810491909101546001909116600e026101000a90046001600160701b031690612fa1565b6001600160a01b038216600090815260016020526040902060040160ff841660058110612bde57fe5b60029182820401919006600e026101000a8154816001600160701b0302191690836001600160701b03160217905550612c478460016000846001600160a01b03166001600160a01b031681526020019081526020016000206004018560ff166005811061274257fe5b6001600160a01b038216600090815260016020526040902060040160ff851660058110612c7057fe5b6002810490910180546001600160701b03938416600e60019485160261010090810a91820295909102199091169390931790556001600160a01b0383166000908152602082905260409020015460ff9190048116908416811115612cd2578093505b8260ff168160ff161115612ce4578092505b8360ff168360ff161415612cf85750612d23565b506001600160a01b039081166000908152600160208190526040909120015462010000900416612b51565b6001600160a01b03861660008181526001602081815260409283902090910154825161010090910460ff16815291517fcf2e211ce866f42c8c8dce1304596b0b929b1e58f9315782584468eac4a4eb139281900390910190a2612825866129fe565b60006001600160801b038316612d9d57506000611aad565b8282026001600160801b038084169080861690831681612db957fe5b046001600160801b031614611eca57506001600160801b039392505050565b600080826001600160701b031611612e25576040805162461bcd60e51b815260206004820152600b60248201526a646976206279207a65726f60a81b604482015290519081900360640190fd5b6000826001600160701b0316846001600160701b03168161104f57fe5b612e4a612fcb565b60005b60088160ff161015612e9e5760048160ff1660088110612e6957fe5b600202016001015463ffffffff168260ff831660088110612e8657fe5b63ffffffff9092166020929092020152600101612e4d565b50604080516060810182526003546001600160801b03600160201b82048116835263ffffffff9182166020840190815293830185815260148054600181018255600091909152845160029091027fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec810180549751909516600160801b0263ffffffff60801b19929094166fffffffffffffffffffffffffffffffff1990971696909617169190911782555191929091612f7b917fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ed01906008612fea565b50506019805464ffffffffff80821662015180011664ffffffffff199091161790555050565b6000826001600160701b0316826001600160701b03161115612fc557506000611aad565b50900390565b6040518061010001604052806008906020820280368337509192915050565b6001830191839082156130765791602002820160005b8382111561304457835183826101000a81548163ffffffff021916908363ffffffff1602179055509260200192600401602081600301049283019260010302613000565b80156130745782816101000a81549063ffffffff0219169055600401602081600301049283019260010302613044565b505b50613082929150613086565b5090565b61128291905b8082111561308257805463ffffffff1916815560010161308c56fe43616c6c6572206973206e6f7420746865206f776e65720000000000000000004d696e696e756d206465706f7369742076616c7565206e6f7420726561636865644d696e696d756d205769746864726177616c20616d6f756e74206e6f74206d6574a26469706673582212203308b1e7b8de86828bb4364b984ebc2998672bab6b7e8078dc8281d9de3bf97964736f6c63430006080033
Deployed Bytecode Sourcemap
5581:17506:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;6874:25:0;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6874:25:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;6874:25:0;;:::i;:::-;;;;-1:-1:-1;;;;;6874:25:0;;;;;;;;;;;;;;;;;;;;;;13287:1169;;5:9:-1;2:2;;;27:1;24;17:12;2:2;13287:1169:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;13287:1169:0;-1:-1:-1;;;;;13287:1169:0;;:::i;:::-;;;;-1:-1:-1;;;;;13287:1169:0;;;;;;;;;;;;;;21368:244;;5:9:-1;2:2;;;27:1;24;17:12;2:2;21368:244:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;21368:244:0;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;21368:244:0;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;21368:244:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;21368:244:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;21368:244:0;;;;;;;;-1:-1:-1;21368:244:0;;-1:-1:-1;;;;;11:28;;8:2;;;52:1;49;42:12;8:2;21368:244:0;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;21368:244:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;21368:244:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;21368:244:0;;;;;;;;-1:-1:-1;21368:244:0;;-1:-1:-1;;;;;11:28;;8:2;;;52:1;49;42:12;8:2;21368:244:0;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;21368:244:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;21368:244:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;21368:244:0;;-1:-1:-1;21368:244:0;;-1:-1:-1;;;;;21368:244:0:i;:::-;;6582:26;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6582:26:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19671:108;;5:9:-1;2:2;;;27:1;24;17:12;2:2;19671:108:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;19671:108:0;;:::i;18277:557::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18277:557:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;18277:557:0;-1:-1:-1;;;;;18277:557:0;;:::i;20135:165::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;20135:165:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;20135:165:0;;;;;;;;;;:::i;14464:297::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;14464:297:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;14464:297:0;-1:-1:-1;;;;;14464:297:0;;:::i;20327:331::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;20327:331:0;;;:::i;:::-;;;;-1:-1:-1;;;;;20327:331:0;;;;;;;;;;;;;;;;;;;;;17840:389;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17840:389:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;17840:389:0;-1:-1:-1;;;;;17840:389:0;;:::i;:::-;;;;-1:-1:-1;;;;;17840:389:0;;;;;;;;;;;;;;;;;;;;;;6621:25;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6621:25:0;;;:::i;:::-;;;;-1:-1:-1;;;;;6621:25:0;;;;;;;;;;;;;;22653:133;;5:9:-1;2:2;;;27:1;24;17:12;2:2;22653:133:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;22653:133:0;-1:-1:-1;;;;;22653:133:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;22653:133:0;;;;;;;;;;;;;;;;;10129:31;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10129:31:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4644:79;;5:9:-1;2:2;;;27:1;24;17:12;2:2;4644:79:0;;;:::i;:::-;;;;-1:-1:-1;;;;;4644:79:0;;;;;;;;;;;;;;20027:96;;5:9:-1;2:2;;;27:1;24;17:12;2:2;20027:96:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;20027:96:0;;;;:::i;6548:25::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6548:25:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;6548:25:0;;:::i;19856:163::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;19856:163:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;19856:163:0;;;;;;;;;;:::i;7190:28::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7190:28:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9992:129;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;9992:129:0;-1:-1:-1;;;;;9992:129:0;;:::i;6503:38::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6503:38:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;6503:38:0;-1:-1:-1;;;;;6503:38:0;;:::i;:::-;;;;-1:-1:-1;;;;;6503:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6503:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8330:1644;;;:::i;6659:20::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6659:20:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;6659:20:0;;:::i;:::-;;;;-1:-1:-1;;;;;6659:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12201:1078;;5:9:-1;2:2;;;27:1;24;17:12;2:2;12201:1078:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;12201:1078:0;;-1:-1:-1;;;;;12201:1078:0;;;;;;;;:::i;22798:123::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;22798:123:0;;;:::i;21009:347::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;21009:347:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;21009:347:0;;;;;;;;;;;:::i;11844:345::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11844:345:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;11844:345:0;-1:-1:-1;;;;;11844:345:0;;:::i;22933:151::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;22933:151:0;;;:::i;20666:331::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;20666:331:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;20666:331:0;-1:-1:-1;;;;;20666:331:0;;:::i;5079:227::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;5079:227:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;5079:227:0;-1:-1:-1;;;;;5079:227:0;;:::i;19791:53::-;;;:::i;6874:25::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6874:25:0;;;-1:-1:-1;;;;6874:25:0;;;;;:::o;13287:1169::-;-1:-1:-1;;;;;13474:10:0;;13348:7;13474:10;;;:5;:10;;;;;;;:24;;13348:7;;13474:24;;;;;13522:17;;13519:886;;13569:20;13592:15;13624:1;13608:13;:17;13592:34;;;;;;;;;;:46;-1:-1:-1;;;13592:46:0;;;;;-1:-1:-1;13592:46:0;13655:568;13677:13;13673:17;;:1;:17;;;13655:568;;;13717:12;13755:5;;;;13752:150;;13792:15;13812:1;13808;:5;13792:22;;;;;;;;;;:34;-1:-1:-1;;;13792:34:0;;;;;-1:-1:-1;13752:150:0;;;-1:-1:-1;13881:1:0;13752:150;13942:21;;;13985:14;;;;13982:224;;-1:-1:-1;;;;;14127:10:0;;;;;;:5;:10;;;;;14108:75;;14175:7;;14127:45;;;;;;:26;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14127:29:0;;:33;:45::i;:::-;-1:-1:-1;;;;;14127:55:0;;;;;;-1:-1:-1;;;;;14108:18:0;;;14127:55;;14108:75;:18;:75;:::i;:::-;14091:92;;13982:224;-1:-1:-1;;13692:3:0;;13655:568;;;;14242:13;:18;;14259:1;14242:18;14239:153;;;-1:-1:-1;;;;;14316:10:0;;;;;;:5;:10;;;;;14297:79;;14368:7;;14316:49;;14362:2;;14316:26;;:41;;;;;;;;;:49;-1:-1:-1;;;;;14316:59:0;;;;;;-1:-1:-1;;;;;14297:18:0;;;14316:59;;14297:79;:18;:79;:::i;:::-;14280:96;;14239:153;13519:886;;-1:-1:-1;14424:14:0;13287:1169;-1:-1:-1;;13287:1169:0:o;21368:244::-;4856:6;;-1:-1:-1;;;;;4856:6:0;4866:10;4856:20;4848:56;;;;;-1:-1:-1;;;4848:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4848:56:0;;;;;;;;;;;;;;;21494:8:::1;21490:115;21513:6;:13;21509:1;:17;;;21490:115;;;21548:45;21559:6;21566:1;21559:9;;;;;;;;;;;;;;;;21570:7;21578:1;21570:10;;;;;;;;;;;;;;;;21582:7;21590:1;21582:10;;;;;;;;;;;;;;;;21548;:45::i;:::-;21529:3;;21490:115;;;;21368:244:::0;;;:::o;6582:26::-;;;;;;:::o;19671:108::-;4856:6;;-1:-1:-1;;;;;4856:6:0;4866:10;4856:20;4848:56;;;;;-1:-1:-1;;;4848:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4848:56:0;;;;;;;;;;;;;;;19746:7:::1;:5;:7::i;:::-;-1:-1:-1::0;;;;;19738:25:0::1;:33;19764:6;19738:33;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;19738:33:0;19671:108:::0;:::o;18277:557::-;18339:24;18352:10;18339:12;:24::i;:::-;18393:11;;-1:-1:-1;;;;;18393:11:0;;;18384:20;;;;18376:66;;;;-1:-1:-1;;;18376:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18467:10;18461:17;;;;:5;:17;;;;;:24;-1:-1:-1;;;;;18461:34:0;;;-1:-1:-1;;;18461:24:0;;;;:34;;18453:74;;;;;-1:-1:-1;;;18453:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;18610:10;18548:16;18604:17;;;:5;:17;;;;;;:34;;-1:-1:-1;;;;;;;;18604:34:0;;;;;;;;;;;-1:-1:-1;;;;;;;;18604:34:0;;;;;;;;;;18659:38;;18581:2;18576;18567:11;;:16;;;;18610:10;18659:38;;;;;;;;;;;;18548:16;18659:38;;18610:10;18659:38;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18659:38:0;18726:7;:5;:7::i;:::-;-1:-1:-1;;;;;18718:25:0;:44;18753:8;18744:6;:17;-1:-1:-1;;;;;18718:44:0;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;18788:28:0;;;-1:-1:-1;;;;;18788:28:0;;;;;;18797:10;;18788:28;;;;;;;;;;18277:557;;:::o;20135:165::-;4856:6;;-1:-1:-1;;;;;4856:6:0;4866:10;4856:20;4848:56;;;;;-1:-1:-1;;;4848:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4848:56:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;20219:14:0;;::::1;;::::0;;;:5:::1;:14;::::0;;;;;;;:24:::1;;27:10:-1::0;;23:18;;::::1;45:23:::0;;20219:34:0;;;;;;;;::::1;::::0;;-1:-1:-1;;;;;;20219:34:0::1;::::0;;;::::1;::::0;;::::1;::::0;;;20264:10;;;;;;;:18;;::::1;:28:::0;;-1:-1:-1;;;;;;20264:28:0::1;::::0;;;::::1;::::0;;;::::1;::::0;;20135:165::o;14464:297::-;-1:-1:-1;;;;;14619:10:0;;14524:7;14619:10;;;:5;:10;;;;;:20;;;-1:-1:-1;;;;;14619:20:0;14524:7;14703:5;14676:24;14619:20;14698:1;14676:24;:21;:24;:::i;:::-;-1:-1:-1;;;;;14676:32:0;;;;;;;;14464:297;-1:-1:-1;;;;14464:297:0:o;20327:331::-;20373:7;;;;20420:139;20448:10;20442:17;;:5;:17;;:40;20438:44;;;;20420:139;;;20517:10;20511:17;;;;:5;:17;;;;;:33;;:36;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20511:36:0;;;;;;;;;;;;20504:43;;;;;20485:3;20420:139;;;;20571:13;20587:28;20604:10;20587:16;:28::i;:::-;20636:3;;-1:-1:-1;;;;;;;20571:44:0;;-1:-1:-1;20327:331:0;;:::o;17840:389::-;-1:-1:-1;;;;;17969:10:0;;17902:7;17969:10;;;:5;:10;;;;;;;;:20;;17940:49;;;;;;;;;;;;;;;;;17902:7;;17940:26;;:49;17969:20;17940:49;;;17969:20;17940:49;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17940:49:0;;;;;;;;;;;;;;;;-1:-1:-1;17940:49:0;;-1:-1:-1;18010:11:0;;-1:-1:-1;18010:11:0;;-1:-1:-1;;;18036:115:0;18059:9;:16;18055:1;:20;;;18036:115;;;18103:36;18111:5;:19;18117:9;18127:1;18117:12;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18111:19:0;;;;;;;;;;;-1:-1:-1;18111:19:0;:27;-1:-1:-1;;;;;18103:7:0;;;;18111:27;18103:36;:7;:36;:::i;:::-;18097:42;-1:-1:-1;18078:3:0;;18036:115;;;-1:-1:-1;18193:16:0;;18179:3;;-1:-1:-1;18193:16:0;-1:-1:-1;17840:389:0;;;:::o;6621:25::-;;;-1:-1:-1;;;6621:25:0;;-1:-1:-1;;;;;6621:25:0;;:::o;22653:133::-;-1:-1:-1;;;;;22758:10:0;;;;;;:5;:10;;;;;;;;;:20;;22751:27;;;;;;;;;;;;;;;;;22713:26;;22751:27;;;22758:20;22751:27;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22751:27:0;;;;;;;;;;;;;;;;;;;;;;;22653:133;;;:::o;10129:31::-;;;-1:-1:-1;;;10129:31:0;;;;;:::o;4644:79::-;4682:7;4709:6;-1:-1:-1;;;;;4709:6:0;4644:79;;:::o;20027:96::-;4856:6;;-1:-1:-1;;;;;4856:6:0;4866:10;4856:20;4848:56;;;;;-1:-1:-1;;;4848:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4848:56:0;;;;;;;;;;;;;;;20094:13:::1;:21:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;;20094:21:0::1;-1:-1:-1::0;;;;20094:21:0;;::::1;::::0;;;::::1;::::0;;20027:96::o;6548:25::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6548:25:0;;-1:-1:-1;6548:25:0;:::o;19856:163::-;4856:6;;-1:-1:-1;;;;;4856:6:0;4866:10;4856:20;4848:56;;;;;-1:-1:-1;;;4848:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4848:56:0;;;;;;;;;;;;;;;19948:10:::1;:24:::0;;-1:-1:-1;;19948:24:0::1;::::0;-1:-1:-1;;;;;19948:24:0;;::::1;;;::::0;;19983:11:::1;:28:::0;;-1:-1:-1;;;;;;19983:28:0::1;::::0;;;::::1;;::::0;;19856:163::o;7190:28::-;;;;;;:::o;9992:129::-;10062:21;10075:7;10062:12;:21::i;:::-;10094:9;:7;:9::i;:::-;9992:129;:::o;6503:38::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6503:38:0;;;;-1:-1:-1;;;6503:38:0;;;;;;-1:-1:-1;;;6503:38:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6503:38:0;;;;;;;;;;:::o;8330:1644::-;8424:10;;8390;8384:17;;;;:5;:17;;;;;:25;-1:-1:-1;;;;;8424:10:0;;;;;;;8417:2;;8412;8384:25;;;:30;:35;;-1:-1:-1;;;;;8383:51:0;;;:78;;;-1:-1:-1;8451:10:0;;;;;-1:-1:-1;;;;;8451:10:0;8438:9;:23;;8383:78;8375:124;;;;-1:-1:-1;;;8375:124:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8537:10;8520:14;8605:2;8576:26;-1:-1:-1;;;;;8584:9:0;8576:22;8599:2;8576:26;:22;:26;:::i;:::-;-1:-1:-1;;;;;8576:31:0;;;;;;-1:-1:-1;;;;;8638:13:0;;8620:15;8638:13;;;:5;:13;;;;;:22;8576:31;;;;-1:-1:-1;;;;8638:22:0;;;;:27;;8686:20;:18;:20::i;:::-;8770:10;8766:206;;8796:12;:14;;-1:-1:-1;;8796:14:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8825:13:0;;-1:-1:-1;8825:13:0;;;;;;;;;;:37;;-1:-1:-1;;;;;8825:37:0;8850:12;;;;-1:-1:-1;;;8825:37:0;;;;;;;8905:14;;8877:24;;;;:47;;-1:-1:-1;;;;8877:47:0;-1:-1:-1;;;8905:14:0;;;;:18;;8877:47;;;;;;;;;;;;;;8939:8;27:10:-1;;23:18;;;45:23;;8939:21:0;;;;;;;-1:-1:-1;;;;;;8939:21:0;;;;;;8766:206;-1:-1:-1;;;;;9002:13:0;;;8984:15;9002:13;;;:5;:13;;;;;;;;:21;;;;;;9156;;9153:88;;9193:36;9206:6;9214:7;9223:5;9193:12;:36::i;:::-;9282:10;9279:61;;;9308:20;9321:6;9308:12;:20::i;:::-;-1:-1:-1;;;;;9376:13:0;;;;;;:5;:13;;;;;:21;:32;;-1:-1:-1;;;;;9376:21:0;9402:5;9376:32;:25;:32;:::i;:::-;-1:-1:-1;;;;;9352:13:0;;;;;;:5;:13;;;;;:56;;-1:-1:-1;;;;;;9352:56:0;-1:-1:-1;;;;;9352:56:0;;;;;;;;;;9461:7;:5;:7::i;:::-;-1:-1:-1;;;;;9453:25:0;:44;9491:5;-1:-1:-1;;;;;9479:17:0;:9;:17;9453:44;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;9523:25:0;;;-1:-1:-1;;;;;9523:25:0;;;;;;-1:-1:-1;;;;;9523:25:0;;;;;;;;;;;;;9569:22;9584:6;9569:14;:22::i;:::-;9602:32;9627:6;9602:24;:32::i;:::-;-1:-1:-1;;;;;9648:21:0;;;9645:202;;-1:-1:-1;;;;;9712:14:0;;;;;;:5;:14;;;;;:24;;;:35;;-1:-1:-1;;;;;9712:24:0;9741:5;9712:35;:28;:35;:::i;:::-;-1:-1:-1;;;;;9685:14:0;;;;;;:5;:14;;;;;:24;;:62;;-1:-1:-1;;;;;;9685:62:0;-1:-1:-1;;;;;9685:62:0;;;;;;;;;;9764:23;9685:14;9764;:23::i;:::-;9802:33;9827:7;9802:24;:33::i;:::-;-1:-1:-1;;9880:10:0;;;-1:-1:-1;;;;;;;;9880:10:0;;;;;-1:-1:-1;;;;;9880:18:0;;;;;;;9867:31;;;;-1:-1:-1;;;;;;9867:31:0;;;;;;;;;-1:-1:-1;8330:1644:0:o;6659:20::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6659:20:0;;;;-1:-1:-1;6659:20:0;-1:-1:-1;;;6659:20:0;;;;;-1:-1:-1;;;6659:20:0;;;;;;-1:-1:-1;;;6659:20:0;;;;;;;;:::o;12201:1078::-;12317:6;:13;-1:-1:-1;;;;;12382:10:0;;12271:7;12382:10;;;:5;:10;;;;;;;:25;;12271:7;;12317:13;12271:7;;12382:25;;:29;12379:855;;12444:13;;;12427:796;12466:6;12460:12;;:3;:12;;;12427:796;;;12504:15;12522:6;12529:3;12522:11;;;;;;;;;;;;;;;;;;;;;;;;;:22;-1:-1:-1;;;;;12637:10:0;;;;:5;:10;;;;;;:19;12592:6;:11;;12522:22;-1:-1:-1;;;12522:22:0;;;;;;-1:-1:-1;12584:88:0;;12522:22;;12592:65;;-1:-1:-1;;;12637:19:0;;;;;12626:30;;12592:65;;;;:11;;;;;;;;;;;;;;;;;;;;;;;:25;-1:-1:-1;;;;;12592:25:0;;:65;:33;:65;:::i;:::-;-1:-1:-1;;;;;12584:78:0;;:88;:78;:88;:::i;:::-;12563:109;-1:-1:-1;12695:18:0;;;12780:366;-1:-1:-1;;;;;12802:10:0;;;;;;:5;:10;;;;;;;;:25;;;;;;12798:29;;;;12780:366;;;12857:17;12916:7;12877:36;12892:5;12898:1;12892:8;;;;;;;;;;;;:20;-1:-1:-1;;;;;12877:14:0;;;-1:-1:-1;;;12892:20:0;;;;12877:14;:36::i;:::-;-1:-1:-1;;;;;12877:46:0;;;;;;;12857:66;;12964:6;12971:3;12964:11;;;;;;;;;;;;;;;;;;;;:20;;12985:1;12964:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13015:18:0;;13012:115;;13075:28;-1:-1:-1;;;;;13075:13:0;;:28;;;;;:13;:28;:::i;:::-;13061:42;;;;13012:115;-1:-1:-1;12830:3:0;;12780:366;;;-1:-1:-1;13179:26:0;-1:-1:-1;;;;;13179:14:0;;13194:10;13179:26;:14;:26;:::i;:::-;13166:39;-1:-1:-1;;12475:5:0;;;;;-1:-1:-1;12427:796:0;;-1:-1:-1;;12427:796:0;;;12379:855;13261:10;-1:-1:-1;;12201:1078:0;;;;;:::o;22798:123::-;22842:16;22905:8;22898:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22898:15:0;;;;;;;;;;;;;;;;;;;;;;;22798:123;:::o;21009:347::-;4856:6;;-1:-1:-1;;;;;4856:6:0;4866:10;4856:20;4848:56;;;;;-1:-1:-1;;;4848:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4848:56:0;;;;;;;;;;;;;;;21104:14:::1;::::0;::::1;;-1:-1:-1::0;;21104:32:0;21162:4;21147:202:::1;21173:2;21178:1;21173:6;21169:10;;:1;:10;;;21147:202;;;21201:11;21215:8;21224:1;21215:11;;;;;;;;;;;::::0;;;::::1;::::0;;;;;;::::1;::::0;-1:-1:-1;;;;;21215:11:0::1;21241:10:::0;;;21215:11;21241:10;;;;;;;:21;;-1:-1:-1;;;;;;;;21241:21:0::1;::::0;;21277::::1;;:28:::0;;-1:-1:-1;;;;21277:28:0::1;-1:-1:-1::0;;;21277:28:0::1;::::0;::::1;;;::::0;;21215:11;-1:-1:-1;21320:17:0::1;21215:11:::0;21320:12:::1;:17::i;:::-;-1:-1:-1::0;21182:3:0::1;;21147:202;;11844:345:::0;-1:-1:-1;;;;;11998:10:0;;11905:7;11998:10;;;:5;:10;;;;;:18;11905:7;;-1:-1:-1;;;;;11998:18:0;12041:8;12030:19;;12027:101;;12073:2;12065:10;;12027:101;;;12114:2;12106:10;;12027:101;12176:5;12155:18;-1:-1:-1;;;;;12155:11:0;;:18;;;;:11;:18;:::i;22933:151::-;23002:14;;;;;;8311:6;23002:32;22984:50;:15;:50;22981:96;;;23050:15;:13;:15::i;:::-;22933:151::o;20666:331::-;-1:-1:-1;;;;;20796:10:0;;20726:7;20796:10;;;:5;:10;;;;;:20;;:27;20835:13;;;;20726:7;20859:110;20881:6;20877:10;;:1;:10;;;20859:110;;;-1:-1:-1;;;;;20933:10:0;;;;;;:5;:10;;;;;:20;;:23;;20916:41;;20933:20;:23;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20933:23:0;20916:16;:41::i;:::-;20909:48;;;;20890:3;;20859:110;;5079:227;4856:6;;-1:-1:-1;;;;;4856:6:0;4866:10;4856:20;4848:56;;;;;-1:-1:-1;;;4848:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4848:56:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;5160:22:0;::::1;5152:64;;;::::0;;-1:-1:-1;;;5152:64:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;5253:6;::::0;;5232:38:::1;::::0;-1:-1:-1;;;;;5232:38:0;;::::1;::::0;5253:6;::::1;::::0;5232:38:::1;::::0;::::1;5281:6;:17:::0;;-1:-1:-1;;;;;;5281:17:0::1;-1:-1:-1::0;;;;;5281:17:0;;;::::1;::::0;;;::::1;::::0;;5079:227::o;19791:53::-;4856:6;;-1:-1:-1;;;;;4856:6:0;4866:10;4856:20;4848:56;;;;;-1:-1:-1;;;4848:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4848:56:0;;;;;;;;;;;;;;2421:472;2479:7;-1:-1:-1;;;;;2724:6:0;;2720:47;;-1:-1:-1;2754:1:0;2747:8;;2720:47;2791:5;;;-1:-1:-1;;;;;2812:10:0;;;;:5;;;;;;;;;;;;-1:-1:-1;;;;;2812:10:0;;2807:58;;-1:-1:-1;;;;;;2807:58:0;2884:1;2421:472;-1:-1:-1;;;2421:472:0:o;1442:235::-;1500:7;1532:5;;;-1:-1:-1;;;;;1553:6:0;;;;;;;;1548:54;;-1:-1:-1;;;;;;1548:54:0;1625:1;-1:-1:-1;;;;;1620:6:0;:1;-1:-1:-1;;;;;1620:6:0;;;1612:36;;;;;-1:-1:-1;;;1612:36:0;;;;;;;;;;;;-1:-1:-1;;;1612:36:0;;;;;;;;;;;;;;21624:1021;4856:6;;-1:-1:-1;;;;;4856:6:0;4866:10;4856:20;4848:56;;;;;-1:-1:-1;;;4848:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4848:56:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;21737:21:0;::::1;::::0;21734:135:::1;;-1:-1:-1::0;;;;;21774:14:0;;::::1;;::::0;;;:5:::1;:14;::::0;;;;;;;:24:::1;;27:10:-1::0;;23:18;;::::1;45:23:::0;;21774:37:0;;;;;;;;::::1;::::0;;-1:-1:-1;;;;;;21774:37:0::1;::::0;;::::1;::::0;;::::1;::::0;;21826:13;;;;;;:21;;::::1;:31:::0;;-1:-1:-1;;;;;;21826:31:0::1;::::0;;;::::1;::::0;;;::::1;::::0;;21734:135:::1;21964:12;:14:::0;;-1:-1:-1;;21964:14:0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;;;;;21989:13:0;;::::1;-1:-1:-1::0;21989:13:0;;;::::1;::::0;;;;;;:37;;-1:-1:-1;;;;;21989:37:0::1;22014:12:::0;;;::::1;-1:-1:-1::0;;;21989:37:0::1;::::0;;;::::1;::::0;;22064:14:::1;::::0;22037:24;;;::::1;:41:::0;;-1:-1:-1;;;;22037:41:0::1;22064:14;::::0;;::::1;-1:-1:-1::0;;;22037:41:0::1;::::0;;;::::1;::::0;;;22089:8:::1;27:10:-1::0;;23:18;;::::1;45:23:::0;;22089:21:0;;;::::1;::::0;;-1:-1:-1;;;;;;22089:21:0::1;::::0;;::::1;::::0;;;21897:7;;22126:21;::::1;::::0;22123:88:::1;;22163:36;22176:6;22184:7;22193:5;22163:12;:36::i;:::-;-1:-1:-1::0;;;;;22223:13:0;::::1;;::::0;;;:5:::1;:13;::::0;;;;;;;;:30;;-1:-1:-1;;;;;;22223:30:0;::::1;-1:-1:-1::0;;;;;22223:30:0;;::::1;::::0;::::1;::::0;::::1;;::::0;;;22279:25;;;;::::1;::::0;;;;::::1;::::0;;;;;;;;::::1;22325:22;22340:6;22325:14;:22::i;:::-;22358:32;22383:6;22358:24;:32::i;:::-;-1:-1:-1::0;;;;;22414:21:0;::::1;::::0;22411:177:::1;;-1:-1:-1::0;;;;;22451:14:0;::::1;;::::0;;;:5:::1;:14;::::0;;;;:24:::1;;:33:::0;;-1:-1:-1;;;;;22451:33:0;;::::1;::::0;::::1;;-1:-1:-1::0;;;;;;22451:33:0;;::::1;;::::0;;22505:23:::1;22457:7:::0;22505:14:::1;:23::i;:::-;22543:33;22568:7;22543:24;:33::i;:::-;22608:10;:19:::0;;-1:-1:-1;;;;;;;;22608:19:0;;::::1;::::0;::::1;-1:-1:-1::0;;;;;22608:19:0;;::::1;::::0;;;::::1;;::::0;;::::1;-1:-1:-1::0;;;;;;22608:19:0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;21624:1021:0:o;10943:889::-;-1:-1:-1;;;;;11048:10:0;;11007:11;11048:10;;;:5;:10;;;;;:21;;;8311:6;;-1:-1:-1;;;11048:21:0;;11021:69;11048:21;;;11029:15;11022:47;11021:69;;11007:83;;11112:1;11104:4;:9;;;11101:724;;11143:22;11168;11186:3;11168:17;:22::i;:::-;11143:47;;11205:18;11226:24;11240:3;11245:4;11226:13;:24::i;:::-;11205:45;;11265:21;11289;11306:3;11289:16;:21::i;:::-;11265:45;;11325:27;11355:22;11373:3;11355:17;:22::i;:::-;11325:52;-1:-1:-1;11420:11:0;11434:58;11325:52;11434:33;-1:-1:-1;;;;;11434:18:0;;11453:13;11434:33;:18;:33;:::i;:::-;-1:-1:-1;;;;;11434:37:0;;:58;:37;:58;:::i;:::-;11420:72;-1:-1:-1;11514:31:0;11534:10;11515:13;-1:-1:-1;;;;;11515:7:0;;:13;;;;:7;:13;:::i;11514:31::-;-1:-1:-1;;;;;11594:10:0;;;;;;:5;:10;;;;;:17;11508:37;;-1:-1:-1;11594:26:0;;-1:-1:-1;;;11594:17:0;;-1:-1:-1;;;;;11594:17:0;11508:37;11594:21;:26::i;:::-;-1:-1:-1;;;;;11574:10:0;;;;;;:5;:10;;;;;;;;;:46;;-1:-1:-1;;;;;11574:46:0;;;-1:-1:-1;;;11574:46:0;;;-1:-1:-1;;;;;;;;11574:46:0;;;;;;;;;11635:21;;;;:49;;;;;;;;8311:6;11661:22;;11635:49;;;;;;-1:-1:-1;;;;11635:49:0;;;;;;11718:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11574:10;;11718:81;;;;;;;;;;11101:724;;;;;10943:889;;:::o;18842:811::-;18919:10;18913:17;;;;:5;:17;;;;;;;;:25;;-1:-1:-1;;;;;18913:36:0;;;:25;;;;;:36;18910:73;;;18965:7;;18910:73;19012:10;19006:17;;;;:5;:17;;;;;:26;-1:-1:-1;;;19006:26:0;;;;:31;;;;:87;;-1:-1:-1;;;;;;19070:14:0;;;;;;:5;:14;;;;;;:23;19047:10;19041:17;;;;:26;19070:23;-1:-1:-1;;;19070:23:0;;;;;;19041:26;;;;;:52;19006:87;19003:125;;;19110:7;;19003:125;19162:10;19193:1;19156:17;;;:5;:17;;;;;;;;:25;;;;;-1:-1:-1;;;;;19156:25:0;:39;19148:80;;;;;-1:-1:-1;;;19148:80:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19247:14:0;;19273:1;19247:14;;;:5;:14;;;;;:23;-1:-1:-1;;;19247:23:0;;;;19239:62;;;;;-1:-1:-1;;;19239:62:0;;;;;;;;;;;;-1:-1:-1;;;19239:62:0;;;;;;;;;;;;;;;19320:10;-1:-1:-1;;;;;19320:21:0;;;;19312:61;;;;;-1:-1:-1;;;19312:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19394:14:0;;;;;;:5;:14;;;;;;;;:24;;27:10:-1;;23:18;;;45:23;;19394:41:0;;;;;;;;;;;19424:10;-1:-1:-1;;;;;;19394:41:0;;;;;;;;19446:17;;;;;:25;;;:35;;-1:-1:-1;;;;;;19446:35:0;;;;;;;;;;;;19497:25;-1:-1:-1;;;;;19497:25:0;:29;19494:142;;19604:10;19598:17;;;;:5;:17;;;;;;:25;-1:-1:-1;;;;;19569:14:0;;;;;;:24;;;:55;;-1:-1:-1;;;;;19569:24:0;;;;19598:25;19569:55;:28;:55;:::i;:::-;-1:-1:-1;;;;;19542:14:0;;;;;;;;:5;:14;;;;;:24;;:82;;-1:-1:-1;;;;;;19542:82:0;-1:-1:-1;;;;;19542:82:0;;;;;;;;;;18842:811::o;10169:762::-;-1:-1:-1;;;;;10320:15:0;;10269;10320;;;:5;:15;;;;;;;;:29;;10399:13;;10287:3;;10320:29;;;;;;;;-1:-1:-1;;;10399:13:0;;;-1:-1:-1;;10399:17:0;10437:477;-1:-1:-1;;;;;10443:21:0;;;;;;:49;;;10491:1;10468:20;:24;;;10443:49;10437:477;;;10510:21;10523:7;10510:12;:21::i;:::-;-1:-1:-1;;;;;10593:14:0;;;;;;:5;:14;;;;;:56;;10640:8;;10593:30;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10593:42:0;;:46;:56::i;:::-;-1:-1:-1;;;;;10548:14:0;;;;;;:5;:14;;;;;:30;;:42;;;;;;;;;;;;;;;;:101;;-1:-1:-1;;;;;10548:101:0;;;:42;;;;;;:101;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10685:14:0;;-1:-1:-1;10685:14:0;;;;;;;;;;:28;;;;;;;;;10731:25;;;;10728:89;;;10789:12;10776:25;;10728:89;-1:-1:-1;;;;;;10843:14:0;;;;;;;:5;:14;;;;;;;;:22;;;;;;;;;-1:-1:-1;;10880:22:0;10437:477;;;10169:762;;;;;;:::o;15057:788::-;-1:-1:-1;;;;;15126:10:0;;;;;;:5;:10;;;;;;;;:25;;15154:12;15126:25;;;;:40;15123:705;;;-1:-1:-1;;;;;15212:10:0;;15196:13;15212:10;;;:5;:10;;;;;;;;:25;;;;15287:20;;;;;15212:25;;;;;-1:-1:-1;;;;;15287:20:0;15420:5;15212:25;15420:14;;;;;;;;;;:31;-1:-1:-1;;;;;15398:10:0;;15420:31;15398:10;;;15420:31;15398:10;;;;;:18;-1:-1:-1;;;;;15420:31:0;;;15398:18;;:53;;;;:113;;;15486:5;15492:7;15486:14;;;;;;;;;;;;;;;;;:25;-1:-1:-1;;;;;15455:10:0;;15486:25;15455:10;;;:5;:10;;;;;:20;;;:27;-1:-1:-1;;;15486:25:0;;;;;-1:-1:-1;15455:56:0;15398:113;:159;;;;;15529:5;15535:7;15529:14;;;;;;;;;;;;:28;-1:-1:-1;;;;;;;;15529:28:0;;;;;15515:42;;;;;15398:159;15395:408;;;-1:-1:-1;;;;;15577:10:0;;;;;;15615:1;15577:10;;;;;;;;:25;;:39;;;15605:11;;;15577:39;;-1:-1:-1;;15577:39:0;;;;;;15635:5;;:14;;;;;;;;;;;;:23;;;;:25;;-1:-1:-1;;15635:25:0;;;;;;;;;;;;;;15702:29;;;15719:11;;;15702:29;;;;;-1:-1:-1;;;;;15702:29:0;;;;;;;;;;;;;;;;15768:19;15783:3;15768:14;:19::i;:::-;15123:705;;15057:788;:::o;15857:1971::-;-1:-1:-1;;;;;15944:10:0;;15925:16;15944:10;;;:5;:10;;;;;;;;:24;;;;;;;15997:22;15984:35;;15981:1830;;;16129:15;16145:10;16129:27;;;;;;;;;;:35;-1:-1:-1;;;;;16100:10:0;;16129:35;16100:10;;;16129:35;16100:10;;;;;;;;:25;;16129:35;;;;16100:25;;;;:64;16097:1703;;-1:-1:-1;;;;;16184:10:0;;;;;;16212:1;16184:10;;;;;;;:24;;;:29;;;;;;;;;;;;;;;;-1:-1:-1;;16184:29:0;;;;;;;;;;16307:18;-1:-1:-1;;;;;16307:18:0;;16412:131;16435:10;16430:15;;:1;:15;;;16412:131;;-1:-1:-1;;;;;16493:10:0;;;;;;:5;:10;;;;;16483:40;;16493:26;;:29;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16483:9:0;;;;16493:29;;;;;;;;;;16483:9;:40::i;:::-;16475:48;-1:-1:-1;16448:3:0;;16412:131;;;-1:-1:-1;;;;;;16753:10:0;;;16622:23;16753:10;;;16661:1;16753:10;;;;;;;;:18;;;16648:14;;;;:10;;16753:18;;;;16790:847;-1:-1:-1;;;;;16796:21:0;;;16790:847;;-1:-1:-1;;;;;16914:14:0;;;;;;:5;:14;;;;;:57;;16965:5;;16914:30;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16914:46:0;;:50;:57::i;:::-;-1:-1:-1;;;;;16865:14:0;;;;;;:5;:14;;;;;:30;;:46;;;;;;;;;;;;;;;;;;;;;:106;;;;;-1:-1:-1;;;;;16865:106:0;;;;;-1:-1:-1;;;;;16865:106:0;;;;;;17046:60;17100:5;17046;:14;17052:7;-1:-1:-1;;;;;17046:14:0;-1:-1:-1;;;;;17046:14:0;;;;;;;;;;;;:30;;17077:17;17046:49;;;;;;;;:60;-1:-1:-1;;;;;16994:14:0;;;;;;:5;:14;;;;;:30;;:49;;;;;;;;;;;;;;;;:112;;-1:-1:-1;;;;;16994:112:0;;;:49;;;;;;:112;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17149:14:0;;-1:-1:-1;17149:14:0;;;;;;;;;;:28;;;;;;;;;17203:29;;;;17200:113;;;17280:9;17260:29;;17200:113;17350:14;17338:26;;:9;:26;;;17335:107;;;17409:9;17392:26;;17335:107;17487:17;17469:35;;:14;:35;;;17466:95;;;17532:5;;;17466:95;-1:-1:-1;;;;;;17595:14:0;;;;;;;:5;:14;;;;;;;;:22;;;;;;16790:847;;;-1:-1:-1;;;;;17662:56:0;;17693:10;;;;:5;:10;;;;;;;;;:24;;;;17662:56;;17693:24;;;;;;17662:56;;;;;;;;;;;;;;17755:29;17780:3;17755:24;:29::i;116:476::-;178:7;-1:-1:-1;;;;;423:6:0;;419:47;;-1:-1:-1;453:1:0;446:8;;419:47;490:5;;;-1:-1:-1;;;;;511:10:0;;;;:5;;;;;;;;;;;;-1:-1:-1;;;;;511:10:0;;506:58;;-1:-1:-1;;;;;;542:10:0;116:476;-1:-1:-1;;;116:476:0:o;3391:251::-;3449:7;3481:1;3477;-1:-1:-1;;;;;3477:5:0;;3469:29;;;;;-1:-1:-1;;;3469:29:0;;;;;;;;;;;;-1:-1:-1;;;3469:29:0;;;;;;;;;;;;;;;3509:9;3525:1;-1:-1:-1;;;;;3521:5:0;:1;-1:-1:-1;;;;;3521:5:0;;;;;14769:276;14813:21;;:::i;:::-;14849:7;14845:84;14867:1;14863;:5;;;14845:84;;;14900:5;14906:1;14900:8;;;;;;;;;;;;:17;;;;;14890:4;:7;;;;;;;;;;:27;;;;:7;;;;;;:27;14871:3;;14845:84;;;-1:-1:-1;14951:41:0;;;;;;;;14961:10;;-1:-1:-1;;;;;;;;14961:10:0;;;;14951:41;;14973:12;;;;14951:41;;;;;;;;;;;;14939:6;27:10:-1;;14973:12:0;23:18:-1;;45:23;;-1:-1;14939:54:0;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14939:54:0;-1:-1:-1;;;;14939:54:0;;;;-1:-1:-1;;14939:54:0;;;;;;;;;;;;;;;14951:41;;14939:54;;;;;;;;;:::i;:::-;-1:-1:-1;;15004:14:0;:33;;;;;;8311:6;15004:33;;-1:-1:-1;;15004:33:0;;;;;;-1:-1:-1;;14769:276:0:o;1980:182::-;2038:7;2068:1;-1:-1:-1;;;;;2063:6:0;:1;-1:-1:-1;;;;;2063:6:0;;;2058:48;;-1:-1:-1;2093:1:0;2086:8;;2058:48;-1:-1:-1;2128:5:0;;;1980:182::o;-1:-1:-1:-;;;;;;;;;;;29:2;21:6;17:15;125:4;109:14;101:6;88:42;-1:-1;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;
Swarm Source
ipfs://3308b1e7b8de86828bb4364b984ebc2998672bab6b7e8078dc8281d9de3bf979
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.