Overview
S Balance
S Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x71F643D6...FfE0cA447 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
InfiniteSonicGlitch
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at SonicScan.org on 2025-03-08 */ // File: @openzeppelin/contracts/utils/Context.sol // OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol) pragma solidity ^0.8.20; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } function _contextSuffixLength() internal view virtual returns (uint256) { return 0; } } // File: @openzeppelin/contracts/access/Ownable.sol // OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol) pragma solidity ^0.8.20; /** * @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. * * The initial owner is set to the address provided by the deployer. 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. */ abstract contract Ownable is Context { address private _owner; /** * @dev The caller account is not authorized to perform an operation. */ error OwnableUnauthorizedAccount(address account); /** * @dev The owner is not a valid owner account. (eg. `address(0)`) */ error OwnableInvalidOwner(address owner); event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the address provided by the deployer as the initial owner. */ constructor(address initialOwner) { if (initialOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(initialOwner); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { if (owner() != _msgSender()) { revert OwnableUnauthorizedAccount(_msgSender()); } } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { if (newOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File: @openzeppelin/contracts/utils/math/SafeMath.sol // OpenZeppelin Contracts (last updated v4.9.0) (utils/math/SafeMath.sol) pragma solidity ^0.8.0; // CAUTION // This version of SafeMath should only be used with Solidity 0.8 or later, // because it relies on the compiler's built in overflow checks. /** * @dev Wrappers over Solidity's arithmetic operations. * * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler * now has built in overflow checking. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } /** * @dev Returns the subtraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { // 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 (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } /** * @dev Returns the integer division of two unsigned integers, reverting on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting when dividing by zero. * * Counterpart to Solidity's `%` operator. 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 mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } /** * @dev Returns the integer division of two unsigned integers, reverting 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(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * Counterpart to Solidity's `%` operator. 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 mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } // File: infinitesonicglitch.sol pragma solidity ^0.8.20; contract InfiniteSonicGlitch is Ownable { using SafeMath for uint256; string public constant name = "Infinite Sonic Glitch"; string public constant symbol = "ISG"; uint8 public constant decimals = 18; uint256 public constant totalSupply = 100000000 * 10 ** 18; // 100M ISG, fixed supply mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; // Tax variables uint256 public buyTaxFee = 4; // 4% tax in $S before buy uint256 public sellTaxFee = 4; // 4% tax in $S after sell uint256 public constant TAX_DENOMINATOR = 100; // Special wallets address public immutable marketingWallet; address public immutable developmentWallet; address public immutable liquidityWallet; address public immutable burnWallet; address public immutable ownerWallet; // Tax distribution percentages uint256 public constant REWARD_SHARE = 50; uint256 public constant MARKETING_SHARE = 15; uint256 public constant DEVELOPMENT_SHARE = 10; uint256 public constant LIQUIDITY_SHARE = 10; uint256 public constant BURN_SHARE = 10; uint256 public constant OWNER_SHARE = 5; // Staking variables mapping(address => uint256) public stakedBalances; mapping(address => uint256) public stakingStartTime; mapping(address => uint256) public accumulatedStakingRewards; // $S rewards accrued daily for stakers uint256 public totalStaked; uint256 public stakingPeriod = 7 days; uint256 public constant STAKING_BOOST = 2; // 2x rewards for stakers // Reward variables uint256 public rewardPool; // $S pool for rewards uint256 public lastRewardDistribution; uint256 public constant REWARD_INTERVAL = 24 hours; // Holder tracking for rewards (only non-staked holders) address[] public holders; mapping(address => uint256) public holderIndex; mapping(address => bool) public isHolder; uint256 public totalEligibleSupply; // Total unstaked ISG held by eligible holders // Trading control bool public tradingEnabled; event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); event Staked(address indexed user, uint256 amount); event Unstaked(address indexed user, uint256 amount, uint256 reward); event RewardDistributed(address indexed user, uint256 reward); event TaxCollected(address indexed user, uint256 amount, bool isBuy); event TradingEnabled(); event HolderAdded(address indexed holder); event HolderRemoved(address indexed holder); constructor( address _marketingWallet, address _developmentWallet, address _liquidityWallet, address _burnWallet ) Ownable(msg.sender) { // Initialize Ownable with deployer as initial owner require(_marketingWallet != address(0), "Invalid marketing wallet"); require(_developmentWallet != address(0), "Invalid development wallet"); require(_liquidityWallet != address(0), "Invalid liquidity wallet"); require(_burnWallet != address(0), "Invalid burn wallet"); _balances[msg.sender] = totalSupply; marketingWallet = _marketingWallet; developmentWallet = _developmentWallet; liquidityWallet = _liquidityWallet; burnWallet = _burnWallet; ownerWallet = msg.sender; // Set ownerWallet to deployer, consistent with Ownable lastRewardDistribution = block.timestamp; if (!isExcluded(msg.sender)) { holders.push(msg.sender); holderIndex[msg.sender] = 0; isHolder[msg.sender] = true; totalEligibleSupply = totalSupply; } emit Transfer(address(0), msg.sender, totalSupply); } // Basic ERC-20 functions function balanceOf(address account) external view returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) external returns (bool) { require(tradingEnabled || msg.sender == owner(), "Trading not enabled"); _transfer(msg.sender, recipient, amount); return true; } function approve(address spender, uint256 amount) external returns (bool) { _approve(msg.sender, spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) external returns (bool) { require(tradingEnabled || msg.sender == owner(), "Trading not enabled"); _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][msg.sender]; require(currentAllowance >= amount, "Insufficient allowance"); _approve(sender, msg.sender, currentAllowance - amount); return true; } function allowance(address owner, address spender) external view returns (uint256) { return _allowances[owner][spender]; } function _transfer(address sender, address recipient, uint256 amount) internal { require(sender != address(0), "Transfer from zero address"); require(recipient != address(0), "Transfer to zero address"); require(_balances[sender] >= amount, "Insufficient balance"); _balances[sender] -= amount; _balances[recipient] += amount; updateHolderList(sender, recipient); emit Transfer(sender, recipient, amount); } function _approve(address owner, address spender, uint256 amount) internal { require(owner != address(0), "Approve from zero address"); require(spender != address(0), "Approve to zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } // Check if an address is excluded from taxes and rewards function isExcluded(address account) public view returns (bool) { return account == marketingWallet || account == developmentWallet || account == liquidityWallet || account == burnWallet || account == ownerWallet; } // Update holder list (only tracks unstaked balances for daily rewards) function updateHolderList(address sender, address recipient) internal { bool senderExcluded = isExcluded(sender); bool recipientExcluded = isExcluded(recipient); if (!senderExcluded) { uint256 senderBalance = _balances[sender]; if (senderBalance == 0 && stakedBalances[sender] == 0 && isHolder[sender]) { totalEligibleSupply = totalEligibleSupply.sub(_balances[sender]); removeHolder(sender); } else if (senderBalance > 0 && !isHolder[sender] && stakedBalances[sender] == 0) { addHolder(sender); totalEligibleSupply = totalEligibleSupply.add(senderBalance); } else if (isHolder[sender] && stakedBalances[sender] == 0) { totalEligibleSupply = totalEligibleSupply.sub(_balances[sender]).add(senderBalance); } else if (isHolder[sender] && stakedBalances[sender] > 0) { totalEligibleSupply = totalEligibleSupply.sub(_balances[sender]); removeHolder(sender); } } if (!recipientExcluded) { uint256 recipientBalance = _balances[recipient]; if (recipientBalance > 0 && !isHolder[recipient] && stakedBalances[recipient] == 0) { addHolder(recipient); totalEligibleSupply = totalEligibleSupply.add(recipientBalance); } else if (isHolder[recipient] && stakedBalances[recipient] == 0) { totalEligibleSupply = totalEligibleSupply.sub(_balances[recipient]).add(recipientBalance); } else if (isHolder[recipient] && stakedBalances[recipient] > 0) { totalEligibleSupply = totalEligibleSupply.sub(_balances[recipient]); removeHolder(recipient); } } } function addHolder(address holder) internal { holders.push(holder); holderIndex[holder] = holders.length - 1; isHolder[holder] = true; emit HolderAdded(holder); } function removeHolder(address holder) internal { uint256 index = holderIndex[holder]; address lastHolder = holders[holders.length - 1]; holders[index] = lastHolder; holderIndex[lastHolder] = index; holders.pop(); delete holderIndex[holder]; isHolder[holder] = false; emit HolderRemoved(holder); } // Tax collection function collectBuyTax(uint256 isgAmount) external payable { require(!isExcluded(msg.sender), "Excluded wallet cannot pay tax"); uint256 taxAmount = isgAmount.mul(buyTaxFee).div(TAX_DENOMINATOR); require(msg.value >= taxAmount, "Insufficient $S for buy tax"); _distributeTax(msg.value); emit TaxCollected(msg.sender, msg.value, true); } function collectSellTax(uint256 isgAmount) external payable { require(!isExcluded(msg.sender), "Excluded wallet cannot pay tax"); uint256 taxAmount = isgAmount.mul(sellTaxFee).div(TAX_DENOMINATOR); require(msg.value >= taxAmount, "Insufficient $S for sell tax"); _distributeTax(msg.value); emit TaxCollected(msg.sender, msg.value, false); } function _distributeTax(uint256 taxAmount) internal { uint256 rewardShare = taxAmount.mul(REWARD_SHARE).div(TAX_DENOMINATOR); uint256 marketingShare = taxAmount.mul(MARKETING_SHARE).div(TAX_DENOMINATOR); uint256 devShare = taxAmount.mul(DEVELOPMENT_SHARE).div(TAX_DENOMINATOR); uint256 liqShare = taxAmount.mul(LIQUIDITY_SHARE).div(TAX_DENOMINATOR); uint256 burnShare = taxAmount.mul(BURN_SHARE).div(TAX_DENOMINATOR); uint256 ownerShare = taxAmount.mul(OWNER_SHARE).div(TAX_DENOMINATOR); rewardPool += rewardShare; _safeTransfer(marketingWallet, marketingShare); _safeTransfer(developmentWallet, devShare); _safeTransfer(liquidityWallet, liqShare); _safeTransfer(burnWallet, burnShare); _safeTransfer(ownerWallet, ownerShare); } // Staking functions function stake(uint256 amount) external { require(tradingEnabled || msg.sender == owner(), "Trading not enabled"); require(amount > 0, "Cannot stake 0"); require(_balances[msg.sender] >= amount, "Insufficient balance"); _transfer(msg.sender, address(this), amount); stakedBalances[msg.sender] += amount; totalStaked += amount; if (stakingStartTime[msg.sender] == 0) stakingStartTime[msg.sender] = block.timestamp; emit Staked(msg.sender, amount); } function unstake(uint256 amount) external { require(amount > 0, "Cannot unstake 0"); require(stakedBalances[msg.sender] >= amount, "Insufficient staked balance"); require(block.timestamp >= stakingStartTime[msg.sender] + stakingPeriod, "Staking period not completed"); uint256 reward = accumulatedStakingRewards[msg.sender]; stakedBalances[msg.sender] -= amount; totalStaked -= amount; if (stakedBalances[msg.sender] == 0) { stakingStartTime[msg.sender] = 0; accumulatedStakingRewards[msg.sender] = 0; // Reset rewards if fully unstaked } _balances[msg.sender] += amount; if (reward > 0 && !isExcluded(msg.sender)) { _safeTransfer(msg.sender, reward); emit RewardDistributed(msg.sender, reward); } updateHolderList(msg.sender, address(this)); emit Unstaked(msg.sender, amount, reward); emit Transfer(address(this), msg.sender, amount); } // Reward distribution function distributeRewards() external { require(block.timestamp >= lastRewardDistribution + REWARD_INTERVAL, "24 hours not passed"); require(rewardPool > 0, "No $S to distribute"); uint256 totalReward = rewardPool; uint256 totalWeightedSupply = totalEligibleSupply + (totalStaked * STAKING_BOOST); // Stakers get 2x weight if (totalWeightedSupply == 0) { lastRewardDistribution = block.timestamp; return; // No eligible holders or stakers } // Distribute to non-staked holders for (uint256 i = 0; i < holders.length; i++) { address holder = holders[i]; uint256 balance = _balances[holder]; if (balance > 0) { uint256 holderReward = balance.mul(totalReward).div(totalWeightedSupply); if (holderReward > 0 && rewardPool >= holderReward) { rewardPool -= holderReward; _safeTransfer(holder, holderReward); emit RewardDistributed(holder, holderReward); } } } // Calculate and reserve staking rewards for (uint256 i = 0; i < holders.length; i++) { address holder = holders[i]; uint256 stakedBalance = stakedBalances[holder]; if (stakedBalance > 0 && !isExcluded(holder)) { uint256 stakerReward = stakedBalance.mul(STAKING_BOOST).mul(totalReward).div(totalWeightedSupply); if (stakerReward > 0 && rewardPool >= stakerReward) { rewardPool -= stakerReward; accumulatedStakingRewards[holder] += stakerReward; } } } lastRewardDistribution = block.timestamp; } // Safe $S transfer function _safeTransfer(address to, uint256 amount) internal { (bool success, ) = to.call{value: amount}(""); require(success, "Transfer failed"); } // Owner functions function enableTrading() external onlyOwner { require(!tradingEnabled, "Trading already enabled"); tradingEnabled = true; emit TradingEnabled(); } function setTaxFees(uint256 newBuyFee, uint256 newSellFee) external onlyOwner { require(newBuyFee <= 10 && newSellFee <= 10, "Tax fee too high"); buyTaxFee = newBuyFee; sellTaxFee = newSellFee; } function setStakingPeriod(uint256 newPeriod) external onlyOwner { require(newPeriod >= 1 days, "Staking period too short"); stakingPeriod = newPeriod; } receive() external payable { rewardPool += msg.value; } function getHolderCount() external view returns (uint256) { return holders.length; } // View accumulated staking rewards function getAccumulatedStakingRewards(address account) external view returns (uint256) { return accumulatedStakingRewards[account]; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"},{"internalType":"address","name":"_developmentWallet","type":"address"},{"internalType":"address","name":"_liquidityWallet","type":"address"},{"internalType":"address","name":"_burnWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"}],"name":"HolderAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"}],"name":"HolderRemoved","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":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardDistributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Staked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"isBuy","type":"bool"}],"name":"TaxCollected","type":"event"},{"anonymous":false,"inputs":[],"name":"TradingEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"Unstaked","type":"event"},{"inputs":[],"name":"BURN_SHARE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEVELOPMENT_SHARE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LIQUIDITY_SHARE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MARKETING_SHARE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OWNER_SHARE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"REWARD_INTERVAL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"REWARD_SHARE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"STAKING_BOOST","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TAX_DENOMINATOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"accumulatedStakingRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTaxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"isgAmount","type":"uint256"}],"name":"collectBuyTax","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"isgAmount","type":"uint256"}],"name":"collectSellTax","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"developmentWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distributeRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getAccumulatedStakingRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getHolderCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"holderIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"holders","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isHolder","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastRewardDistribution","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ownerWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newPeriod","type":"uint256"}],"name":"setStakingPeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"setTaxFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"stakedBalances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"stakingStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalEligibleSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Deployed Bytecode
0x6080604052600436106102e7575f3560e01c8063817b1cd21161018f578063b0cd9cff116100db578063d469801611610094578063e9bbb0401161006e578063e9bbb04014610b37578063f2fde38b14610b73578063f42c0f0214610b9b578063f8a25a9414610bc557610305565b8063d469801614610a95578063d4d7b19a14610abf578063dd62ed3e14610afb57610305565b8063b0cd9cff14610983578063c03d5b47146109ad578063c04a5414146109d7578063c54705a014610a01578063cba0e99614610a1d578063d123273014610a5957610305565b8063941fa5cd11610148578063a51c9ace11610122578063a51c9ace146108b9578063a694fc3a146108e3578063a8bbfd3a1461090b578063a9059cbb1461094757610305565b8063941fa5cd1461083d578063957d77801461086757806395d89b411461088f57610305565b8063817b1cd21461075557806389c3d5081461077f5780638a8c523c146107a95780638da5cb5b146107bf5780639335dcb7146107e957806393b998fb1461081357610305565b806343270d561161024e5780636a96204e116102075780637136982b116101e15780637136982b146106c3578063715018a6146106ed57806375f0a8741461070357806381230a831461072d57610305565b80636a96204e146106555780636f4a2cd01461067157806370a082311461068757610305565b806343270d56146105595780634ada218b14610583578063565e5db3146105ad5780635dbdda69146105d757806366666aa9146106015780636a1c6e781461062b57610305565b806322693d93116102a057806322693d931461042957806323b872dd146104535780632a11ced01461048f5780632e164fe6146104cb5780632e17de7814610507578063313ce5671461052f57610305565b8063062287491461030957806306fdde0314610333578063095ea7b31461035d5780631460fa871461039957806318160ddd146103d55780632048c9e1146103ff57610305565b366103055734600a5f8282546102fd91906135bc565b925050819055005b5f80fd5b348015610314575f80fd5b5061031d610bef565b60405161032a919061362e565b60405180910390f35b34801561033e575f80fd5b50610347610c13565b60405161035491906136d1565b60405180910390f35b348015610368575f80fd5b50610383600480360381019061037e9190613749565b610c4c565b60405161039091906137a1565b60405180910390f35b3480156103a4575f80fd5b506103bf60048036038101906103ba91906137ba565b610c62565b6040516103cc91906137f4565b60405180910390f35b3480156103e0575f80fd5b506103e9610c77565b6040516103f691906137f4565b60405180910390f35b34801561040a575f80fd5b50610413610c86565b60405161042091906137f4565b60405180910390f35b348015610434575f80fd5b5061043d610c8b565b60405161044a91906137f4565b60405180910390f35b34801561045e575f80fd5b506104796004803603810190610474919061380d565b610c91565b60405161048691906137a1565b60405180910390f35b34801561049a575f80fd5b506104b560048036038101906104b0919061385d565b610e09565b6040516104c2919061362e565b60405180910390f35b3480156104d6575f80fd5b506104f160048036038101906104ec91906137ba565b610e44565b6040516104fe91906137f4565b60405180910390f35b348015610512575f80fd5b5061052d6004803603810190610528919061385d565b610e59565b005b34801561053a575f80fd5b506105436112a6565b60405161055091906138a3565b60405180910390f35b348015610564575f80fd5b5061056d6112ab565b60405161057a91906137f4565b60405180910390f35b34801561058e575f80fd5b506105976112b0565b6040516105a491906137a1565b60405180910390f35b3480156105b8575f80fd5b506105c16112c2565b6040516105ce91906137f4565b60405180910390f35b3480156105e2575f80fd5b506105eb6112c7565b6040516105f891906137f4565b60405180910390f35b34801561060c575f80fd5b506106156112ce565b60405161062291906137f4565b60405180910390f35b348015610636575f80fd5b5061063f6112d4565b60405161064c91906137f4565b60405180910390f35b61066f600480360381019061066a919061385d565b6112d9565b005b34801561067c575f80fd5b506106856113ee565b005b348015610692575f80fd5b506106ad60048036038101906106a891906137ba565b6117a7565b6040516106ba91906137f4565b60405180910390f35b3480156106ce575f80fd5b506106d76117ed565b6040516106e491906137f4565b60405180910390f35b3480156106f8575f80fd5b506107016117f9565b005b34801561070e575f80fd5b5061071761180c565b604051610724919061362e565b60405180910390f35b348015610738575f80fd5b50610753600480360381019061074e91906138bc565b611830565b005b348015610760575f80fd5b5061076961189b565b60405161077691906137f4565b60405180910390f35b34801561078a575f80fd5b506107936118a1565b6040516107a091906137f4565b60405180910390f35b3480156107b4575f80fd5b506107bd6118a6565b005b3480156107ca575f80fd5b506107d3611945565b6040516107e0919061362e565b60405180910390f35b3480156107f4575f80fd5b506107fd61196c565b60405161080a919061362e565b60405180910390f35b34801561081e575f80fd5b50610827611990565b60405161083491906137f4565b60405180910390f35b348015610848575f80fd5b50610851611995565b60405161085e91906137f4565b60405180910390f35b348015610872575f80fd5b5061088d6004803603810190610888919061385d565b61199b565b005b34801561089a575f80fd5b506108a36119f3565b6040516108b091906136d1565b60405180910390f35b3480156108c4575f80fd5b506108cd611a2c565b6040516108da91906137f4565b60405180910390f35b3480156108ee575f80fd5b506109096004803603810190610904919061385d565b611a31565b005b348015610916575f80fd5b50610931600480360381019061092c91906137ba565b611ccc565b60405161093e91906137f4565b60405180910390f35b348015610952575f80fd5b5061096d60048036038101906109689190613749565b611d12565b60405161097a91906137a1565b60405180910390f35b34801561098e575f80fd5b50610997611db3565b6040516109a491906137f4565b60405180910390f35b3480156109b8575f80fd5b506109c1611db9565b6040516109ce91906137f4565b60405180910390f35b3480156109e2575f80fd5b506109eb611dbf565b6040516109f8919061362e565b60405180910390f35b610a1b6004803603810190610a16919061385d565b611de3565b005b348015610a28575f80fd5b50610a436004803603810190610a3e91906137ba565b611ef7565b604051610a5091906137a1565b60405180910390f35b348015610a64575f80fd5b50610a7f6004803603810190610a7a91906137ba565b6120a6565b604051610a8c91906137f4565b60405180910390f35b348015610aa0575f80fd5b50610aa96120bb565b604051610ab6919061362e565b60405180910390f35b348015610aca575f80fd5b50610ae56004803603810190610ae091906137ba565b6120df565b604051610af291906137a1565b60405180910390f35b348015610b06575f80fd5b50610b216004803603810190610b1c91906138fa565b6120fc565b604051610b2e91906137f4565b60405180910390f35b348015610b42575f80fd5b50610b5d6004803603810190610b5891906137ba565b61217e565b604051610b6a91906137f4565b60405180910390f35b348015610b7e575f80fd5b50610b996004803603810190610b9491906137ba565b612193565b005b348015610ba6575f80fd5b50610baf612217565b604051610bbc91906137f4565b60405180910390f35b348015610bd0575f80fd5b50610bd961221c565b604051610be691906137f4565b60405180910390f35b7f000000000000000000000000772ac583f671ab827cad9efe6c394f53b5f8674781565b6040518060400160405280601581526020017f496e66696e69746520536f6e696320476c69746368000000000000000000000081525081565b5f610c58338484612222565b6001905092915050565b6005602052805f5260405f205f915090505481565b6a52b7d2dcc80cd2e400000081565b600a81565b600f5481565b5f60105f9054906101000a900460ff1680610cde5750610caf611945565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610d1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1490613982565b60405180910390fd5b610d288484846123e5565b5f60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610de7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dde906139ea565b60405180910390fd5b610dfd85338584610df89190613a08565b612222565b60019150509392505050565b600c8181548110610e18575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6007602052805f5260405f205f915090505481565b5f8111610e9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9290613a85565b60405180910390fd5b8060055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1290613aed565b60405180910390fd5b60095460065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610f6691906135bc565b421015610fa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9f90613b55565b60405180910390fd5b5f60075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508160055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546110359190613a08565b925050819055508160085f82825461104d9190613a08565b925050819055505f60055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20540361111d575f60065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b8160015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461116991906135bc565b925050819055505f81118015611185575061118333611ef7565b155b156111e357611194338261265b565b3373ffffffffffffffffffffffffffffffffffffffff167fe34918ff1c7084970068b53fd71ad6d8b04e9f15d3886cbf006443e6cdc52ea6826040516111da91906137f4565b60405180910390a25b6111ed3330612708565b3373ffffffffffffffffffffffffffffffffffffffff167f7fc4727e062e336010f2c282598ef5f14facb3de68cf8195c2f23e1454b2b74e8383604051611235929190613b73565b60405180910390a23373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161129a91906137f4565b60405180910390a35050565b601281565b600a81565b60105f9054906101000a900460ff1681565b603281565b6201518081565b600a5481565b600581565b6112e233611ef7565b15611322576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131990613be4565b60405180910390fd5b5f61134b606461133d60035485612e5990919063ffffffff16565b612e6e90919063ffffffff16565b905080341015611390576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138790613c4c565b60405180910390fd5b61139934612e83565b3373ffffffffffffffffffffffffffffffffffffffff167fee32cb2307349beabd02d4eb3bcf8bc239d05d6f856e440036dafd1c94323a1a3460016040516113e2929190613c6a565b60405180910390a25050565b62015180600b546113ff91906135bc565b421015611441576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143890613cdb565b60405180910390fd5b5f600a5411611485576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147c90613d43565b60405180910390fd5b5f600a5490505f600260085461149b9190613d61565b600f546114a891906135bc565b90505f81036114bf5742600b8190555050506117a5565b5f5b600c8054905081101561161c575f600c82815481106114e3576114e2613da2565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f811115611607575f61157c8561156e8885612e5990919063ffffffff16565b612e6e90919063ffffffff16565b90505f8111801561158f575080600a5410155b156116055780600a5f8282546115a59190613a08565b925050819055506115b6838261265b565b8273ffffffffffffffffffffffffffffffffffffffff167fe34918ff1c7084970068b53fd71ad6d8b04e9f15d3886cbf006443e6cdc52ea6826040516115fc91906137f4565b60405180910390a25b505b5050808061161490613dcf565b9150506114c1565b505f5b600c8054905081101561179a575f600c828154811061164157611640613da2565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f811180156116c157506116bf82611ef7565b155b15611785575f6116ff856116f1886116e3600287612e5990919063ffffffff16565b612e5990919063ffffffff16565b612e6e90919063ffffffff16565b90505f81118015611712575080600a5410155b156117835780600a5f8282546117289190613a08565b925050819055508060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461177b91906135bc565b925050819055505b505b5050808061179290613dcf565b91505061161f565b5042600b8190555050505b565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f600c80549050905090565b611801613072565b61180a5f6130f9565b565b7f000000000000000000000000ea0a641825b3c46a6904dc8164638048d730378981565b611838613072565b600a821115801561184a5750600a8111155b611889576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188090613e60565b60405180910390fd5b81600381905550806004819055505050565b60085481565b600281565b6118ae613072565b60105f9054906101000a900460ff16156118fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f490613ec8565b60405180910390fd5b600160105f6101000a81548160ff0219169083151502179055507f799663458a5ef2936f7fa0c99b3336c69c25890f82974f04e811e5bb359186c760405160405180910390a1565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f000000000000000000000000ca6fb7fb777d65882a3155d2527ddd97c12fd91d81565b600a81565b60035481565b6119a3613072565b620151808110156119e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e090613f30565b60405180910390fd5b8060098190555050565b6040518060400160405280600381526020017f495347000000000000000000000000000000000000000000000000000000000081525081565b606481565b60105f9054906101000a900460ff1680611a7d5750611a4e611945565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611abc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab390613982565b60405180910390fd5b5f8111611afe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af590613f98565b60405180910390fd5b8060015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015611b7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7590614000565b60405180910390fd5b611b893330836123e5565b8060055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611bd591906135bc565b925050819055508060085f828254611bed91906135bc565b925050819055505f60065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205403611c7b574260065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b3373ffffffffffffffffffffffffffffffffffffffff167f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d82604051611cc191906137f4565b60405180910390a250565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f60105f9054906101000a900460ff1680611d5f5750611d30611945565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611d9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9590613982565b60405180910390fd5b611da93384846123e5565b6001905092915050565b600b5481565b60095481565b7f000000000000000000000000c634e944c48c058c05e39c6479e229bd835ae50281565b611dec33611ef7565b15611e2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2390613be4565b60405180910390fd5b5f611e556064611e4760045485612e5990919063ffffffff16565b612e6e90919063ffffffff16565b905080341015611e9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9190614068565b60405180910390fd5b611ea334612e83565b3373ffffffffffffffffffffffffffffffffffffffff167fee32cb2307349beabd02d4eb3bcf8bc239d05d6f856e440036dafd1c94323a1a345f604051611eeb929190613c6a565b60405180910390a25050565b5f7f000000000000000000000000ea0a641825b3c46a6904dc8164638048d730378973ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480611f9d57507f000000000000000000000000c634e944c48c058c05e39c6479e229bd835ae50273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80611ff357507f000000000000000000000000ab359f1ed47f5989714fd88bf05a6e5665f99f4073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8061204957507f000000000000000000000000772ac583f671ab827cad9efe6c394f53b5f8674773ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8061209f57507f000000000000000000000000ca6fb7fb777d65882a3155d2527ddd97c12fd91d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b6006602052805f5260405f205f915090505481565b7f000000000000000000000000ab359f1ed47f5989714fd88bf05a6e5665f99f4081565b600e602052805f5260405f205f915054906101000a900460ff1681565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600d602052805f5260405f205f915090505481565b61219b613072565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361220b575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401612202919061362e565b60405180910390fd5b612214816130f9565b50565b600f81565b60045481565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612290576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612287906140d0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f590614138565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516123d891906137f4565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612453576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244a906141a0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036124c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b890614208565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015612541576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253890614000565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461258d9190613a08565b925050819055508060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546125e091906135bc565b925050819055506125f18383612708565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161264e91906137f4565b60405180910390a3505050565b5f8273ffffffffffffffffffffffffffffffffffffffff168260405161268090614253565b5f6040518083038185875af1925050503d805f81146126ba576040519150601f19603f3d011682016040523d82523d5f602084013e6126bf565b606091505b5050905080612703576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126fa906142b1565b60405180910390fd5b505050565b5f61271283611ef7565b90505f61271e83611ef7565b905081612b3e575f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f811480156127b157505f60055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054145b80156128035750600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561286e5761285a60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054600f546131ba90919063ffffffff16565b600f81905550612869856131cf565b612b3c565b5f811180156128c45750600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561290c57505f60055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054145b1561293a5761291a8561341c565b61292f81600f5461356a90919063ffffffff16565b600f81905550612b3b565b600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156129cc57505f60055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054145b15612a4057612a3581612a2760015f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054600f546131ba90919063ffffffff16565b61356a90919063ffffffff16565b600f81905550612b3a565b600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612ad257505f60055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054115b15612b3957612b2960015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054600f546131ba90919063ffffffff16565b600f81905550612b38856131cf565b5b5b5b5b505b80612e53575f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f81118015612bda5750600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612c2257505f60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054145b15612c5057612c308461341c565b612c4581600f5461356a90919063ffffffff16565b600f81905550612e51565b600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612ce257505f60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054145b15612d5657612d4b81612d3d60015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054600f546131ba90919063ffffffff16565b61356a90919063ffffffff16565b600f81905550612e50565b600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612de857505f60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054115b15612e4f57612e3f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054600f546131ba90919063ffffffff16565b600f81905550612e4e846131cf565b5b5b5b505b50505050565b5f8183612e669190613d61565b905092915050565b5f8183612e7b91906142fc565b905092915050565b5f612eab6064612e9d603285612e5990919063ffffffff16565b612e6e90919063ffffffff16565b90505f612ed56064612ec7600f86612e5990919063ffffffff16565b612e6e90919063ffffffff16565b90505f612eff6064612ef1600a87612e5990919063ffffffff16565b612e6e90919063ffffffff16565b90505f612f296064612f1b600a88612e5990919063ffffffff16565b612e6e90919063ffffffff16565b90505f612f536064612f45600a89612e5990919063ffffffff16565b612e6e90919063ffffffff16565b90505f612f7d6064612f6f60058a612e5990919063ffffffff16565b612e6e90919063ffffffff16565b905085600a5f828254612f9091906135bc565b92505081905550612fc17f000000000000000000000000ea0a641825b3c46a6904dc8164638048d73037898661265b565b612feb7f000000000000000000000000c634e944c48c058c05e39c6479e229bd835ae5028561265b565b6130157f000000000000000000000000ab359f1ed47f5989714fd88bf05a6e5665f99f408461265b565b61303f7f000000000000000000000000772ac583f671ab827cad9efe6c394f53b5f867478361265b565b6130697f000000000000000000000000ca6fb7fb777d65882a3155d2527ddd97c12fd91d8261265b565b50505050505050565b61307a61357f565b73ffffffffffffffffffffffffffffffffffffffff16613098611945565b73ffffffffffffffffffffffffffffffffffffffff16146130f7576130bb61357f565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016130ee919061362e565b60405180910390fd5b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81836131c79190613a08565b905092915050565b5f600d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f600c6001600c805490506132259190613a08565b8154811061323657613235613da2565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905080600c838154811061327557613274613da2565b5b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600c80548061330e5761330d61432c565b5b600190038181905f5260205f20015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f90555f600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508273ffffffffffffffffffffffffffffffffffffffff167fd9bc583d1445615d8b795b7374f03ff79efa83b6359a91331efd95e4cf023ab660405160405180910390a2505050565b600c81908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c8054905061348e9190613a08565b600d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506001600e5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f9894d458cf29e8bc4eb7e591bac54b31dc90125dfa852474419972ab4347dd1260405160405180910390a250565b5f818361357791906135bc565b905092915050565b5f33905090565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6135c682613586565b91506135d183613586565b92508282019050808211156135e9576135e861358f565b5b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613618826135ef565b9050919050565b6136288161360e565b82525050565b5f6020820190506136415f83018461361f565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561367e578082015181840152602081019050613663565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6136a382613647565b6136ad8185613651565b93506136bd818560208601613661565b6136c681613689565b840191505092915050565b5f6020820190508181035f8301526136e98184613699565b905092915050565b5f80fd5b6136fe8161360e565b8114613708575f80fd5b50565b5f81359050613719816136f5565b92915050565b61372881613586565b8114613732575f80fd5b50565b5f813590506137438161371f565b92915050565b5f806040838503121561375f5761375e6136f1565b5b5f61376c8582860161370b565b925050602061377d85828601613735565b9150509250929050565b5f8115159050919050565b61379b81613787565b82525050565b5f6020820190506137b45f830184613792565b92915050565b5f602082840312156137cf576137ce6136f1565b5b5f6137dc8482850161370b565b91505092915050565b6137ee81613586565b82525050565b5f6020820190506138075f8301846137e5565b92915050565b5f805f60608486031215613824576138236136f1565b5b5f6138318682870161370b565b93505060206138428682870161370b565b925050604061385386828701613735565b9150509250925092565b5f60208284031215613872576138716136f1565b5b5f61387f84828501613735565b91505092915050565b5f60ff82169050919050565b61389d81613888565b82525050565b5f6020820190506138b65f830184613894565b92915050565b5f80604083850312156138d2576138d16136f1565b5b5f6138df85828601613735565b92505060206138f085828601613735565b9150509250929050565b5f80604083850312156139105761390f6136f1565b5b5f61391d8582860161370b565b925050602061392e8582860161370b565b9150509250929050565b7f54726164696e67206e6f7420656e61626c6564000000000000000000000000005f82015250565b5f61396c601383613651565b915061397782613938565b602082019050919050565b5f6020820190508181035f83015261399981613960565b9050919050565b7f496e73756666696369656e7420616c6c6f77616e6365000000000000000000005f82015250565b5f6139d4601683613651565b91506139df826139a0565b602082019050919050565b5f6020820190508181035f830152613a01816139c8565b9050919050565b5f613a1282613586565b9150613a1d83613586565b9250828203905081811115613a3557613a3461358f565b5b92915050565b7f43616e6e6f7420756e7374616b652030000000000000000000000000000000005f82015250565b5f613a6f601083613651565b9150613a7a82613a3b565b602082019050919050565b5f6020820190508181035f830152613a9c81613a63565b9050919050565b7f496e73756666696369656e74207374616b65642062616c616e636500000000005f82015250565b5f613ad7601b83613651565b9150613ae282613aa3565b602082019050919050565b5f6020820190508181035f830152613b0481613acb565b9050919050565b7f5374616b696e6720706572696f64206e6f7420636f6d706c65746564000000005f82015250565b5f613b3f601c83613651565b9150613b4a82613b0b565b602082019050919050565b5f6020820190508181035f830152613b6c81613b33565b9050919050565b5f604082019050613b865f8301856137e5565b613b9360208301846137e5565b9392505050565b7f4578636c756465642077616c6c65742063616e6e6f74207061792074617800005f82015250565b5f613bce601e83613651565b9150613bd982613b9a565b602082019050919050565b5f6020820190508181035f830152613bfb81613bc2565b9050919050565b7f496e73756666696369656e7420245320666f72206275792074617800000000005f82015250565b5f613c36601b83613651565b9150613c4182613c02565b602082019050919050565b5f6020820190508181035f830152613c6381613c2a565b9050919050565b5f604082019050613c7d5f8301856137e5565b613c8a6020830184613792565b9392505050565b7f323420686f757273206e6f7420706173736564000000000000000000000000005f82015250565b5f613cc5601383613651565b9150613cd082613c91565b602082019050919050565b5f6020820190508181035f830152613cf281613cb9565b9050919050565b7f4e6f20245320746f2064697374726962757465000000000000000000000000005f82015250565b5f613d2d601383613651565b9150613d3882613cf9565b602082019050919050565b5f6020820190508181035f830152613d5a81613d21565b9050919050565b5f613d6b82613586565b9150613d7683613586565b9250828202613d8481613586565b91508282048414831517613d9b57613d9a61358f565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f613dd982613586565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613e0b57613e0a61358f565b5b600182019050919050565b7f5461782066656520746f6f2068696768000000000000000000000000000000005f82015250565b5f613e4a601083613651565b9150613e5582613e16565b602082019050919050565b5f6020820190508181035f830152613e7781613e3e565b9050919050565b7f54726164696e6720616c726561647920656e61626c65640000000000000000005f82015250565b5f613eb2601783613651565b9150613ebd82613e7e565b602082019050919050565b5f6020820190508181035f830152613edf81613ea6565b9050919050565b7f5374616b696e6720706572696f6420746f6f2073686f727400000000000000005f82015250565b5f613f1a601883613651565b9150613f2582613ee6565b602082019050919050565b5f6020820190508181035f830152613f4781613f0e565b9050919050565b7f43616e6e6f74207374616b6520300000000000000000000000000000000000005f82015250565b5f613f82600e83613651565b9150613f8d82613f4e565b602082019050919050565b5f6020820190508181035f830152613faf81613f76565b9050919050565b7f496e73756666696369656e742062616c616e63650000000000000000000000005f82015250565b5f613fea601483613651565b9150613ff582613fb6565b602082019050919050565b5f6020820190508181035f83015261401781613fde565b9050919050565b7f496e73756666696369656e7420245320666f722073656c6c20746178000000005f82015250565b5f614052601c83613651565b915061405d8261401e565b602082019050919050565b5f6020820190508181035f83015261407f81614046565b9050919050565b7f417070726f76652066726f6d207a65726f2061646472657373000000000000005f82015250565b5f6140ba601983613651565b91506140c582614086565b602082019050919050565b5f6020820190508181035f8301526140e7816140ae565b9050919050565b7f417070726f766520746f207a65726f20616464726573730000000000000000005f82015250565b5f614122601783613651565b915061412d826140ee565b602082019050919050565b5f6020820190508181035f83015261414f81614116565b9050919050565b7f5472616e736665722066726f6d207a65726f20616464726573730000000000005f82015250565b5f61418a601a83613651565b915061419582614156565b602082019050919050565b5f6020820190508181035f8301526141b78161417e565b9050919050565b7f5472616e7366657220746f207a65726f206164647265737300000000000000005f82015250565b5f6141f2601883613651565b91506141fd826141be565b602082019050919050565b5f6020820190508181035f83015261421f816141e6565b9050919050565b5f81905092915050565b50565b5f61423e5f83614226565b915061424982614230565b5f82019050919050565b5f61425d82614233565b9150819050919050565b7f5472616e73666572206661696c656400000000000000000000000000000000005f82015250565b5f61429b600f83613651565b91506142a682614267565b602082019050919050565b5f6020820190508181035f8301526142c88161428f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61430682613586565b915061431183613586565b925082614321576143206142cf565b5b828204905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea2646970667358221220b6196d3428a529b45aa87d32f7e08b36a89a86454c76344acff7bb1a104cf49b64736f6c63430008140033
Deployed Bytecode Sourcemap
11206:15117:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26001:9;25987:10;;:23;;;;;;;:::i;:::-;;;;;;;;11206:15117;;;;12023:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11288:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15536:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12470:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11434:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12246:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13220:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15696:463;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13089:24;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12584:60;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22231:1026;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11392:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12299:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13334:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12147:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12968:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12869:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12396:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20027:386;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23293:1817;;;;;;;;;;;;;:::i;:::-;;15168:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26026:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3361:103;;;;;;;;;;;;;:::i;:::-;;11880:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25531:227;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12691:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12768:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25345:178;;;;;;;;;;;;;:::i;:::-;;2686:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12065:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12350:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11677:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25766:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11348:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11802:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21696:527;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26173:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15288:240;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12924:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12724;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11927:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20421:390;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17185:293;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12526:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11976:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16167:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13120:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3619:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12195:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11739:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12023:35;;;:::o;11288:53::-;;;;;;;;;;;;;;;;;;;:::o;15536:152::-;15604:4;15621:37;15630:10;15642:7;15651:6;15621:8;:37::i;:::-;15676:4;15669:11;;15536:152;;;;:::o;12470:49::-;;;;;;;;;;;;;;;;;:::o;11434:58::-;11472:20;11434:58;:::o;12246:46::-;12290:2;12246:46;:::o;13220:34::-;;;;:::o;15696:463::-;15787:4;15812:14;;;;;;;;;;;:39;;;;15844:7;:5;:7::i;:::-;15830:21;;:10;:21;;;15812:39;15804:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15886:36;15896:6;15904:9;15915:6;15886:9;:36::i;:::-;15933:24;15960:11;:19;15972:6;15960:19;;;;;;;;;;;;;;;:31;15980:10;15960:31;;;;;;;;;;;;;;;;15933:58;;16030:6;16010:16;:26;;16002:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;16074:55;16083:6;16091:10;16122:6;16103:16;:25;;;;:::i;:::-;16074:8;:55::i;:::-;16147:4;16140:11;;;15696:463;;;;;:::o;13089:24::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12584:60::-;;;;;;;;;;;;;;;;;:::o;22231:1026::-;22301:1;22292:6;:10;22284:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;22372:6;22342:14;:26;22357:10;22342:26;;;;;;;;;;;;;;;;:36;;22334:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;22479:13;;22448:16;:28;22465:10;22448:28;;;;;;;;;;;;;;;;:44;;;;:::i;:::-;22429:15;:63;;22421:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;22538:14;22555:25;:37;22581:10;22555:37;;;;;;;;;;;;;;;;22538:54;;22633:6;22603:14;:26;22618:10;22603:26;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;22665:6;22650:11;;:21;;;;;;;:::i;:::-;;;;;;;;22716:1;22686:14;:26;22701:10;22686:26;;;;;;;;;;;;;;;;:31;22682:187;;22765:1;22734:16;:28;22751:10;22734:28;;;;;;;;;;;;;;;:32;;;;22821:1;22781:25;:37;22807:10;22781:37;;;;;;;;;;;;;;;:41;;;;22682:187;22904:6;22879:9;:21;22889:10;22879:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;22936:1;22927:6;:10;:37;;;;;22942:22;22953:10;22942;:22::i;:::-;22941:23;22927:37;22923:160;;;22981:33;22995:10;23007:6;22981:13;:33::i;:::-;23052:10;23034:37;;;23064:6;23034:37;;;;;;:::i;:::-;;;;;;;;22923:160;23095:43;23112:10;23132:4;23095:16;:43::i;:::-;23163:10;23154:36;;;23175:6;23183;23154:36;;;;;;;:::i;:::-;;;;;;;;23230:10;23206:43;;23223:4;23206:43;;;23242:6;23206:43;;;;;;:::i;:::-;;;;;;;;22273:984;22231:1026;:::o;11392:35::-;11425:2;11392:35;:::o;12299:44::-;12341:2;12299:44;:::o;13334:26::-;;;;;;;;;;;;;:::o;12147:41::-;12186:2;12147:41;:::o;12968:50::-;13010:8;12968:50;:::o;12869:25::-;;;;:::o;12396:39::-;12434:1;12396:39;:::o;20027:386::-;20106:22;20117:10;20106;:22::i;:::-;20105:23;20097:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;20174:17;20194:45;11844:3;20194:24;20208:9;;20194;:13;;:24;;;;:::i;:::-;:28;;:45;;;;:::i;:::-;20174:65;;20271:9;20258;:22;;20250:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;20323:25;20338:9;20323:14;:25::i;:::-;20377:10;20364:41;;;20389:9;20400:4;20364:41;;;;;;;:::i;:::-;;;;;;;;20086:327;20027:386;:::o;23293:1817::-;13010:8;23369:22;;:40;;;;:::i;:::-;23350:15;:59;;23342:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;23465:1;23452:10;;:14;23444:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;23503:19;23525:10;;23503:32;;23546:27;12808:1;23599:11;;:27;;;;:::i;:::-;23576:19;;:51;;;;:::i;:::-;23546:81;;23692:1;23669:19;:24;23665:152;;23735:15;23710:22;:40;;;;23765:7;;;;23665:152;23879:9;23874:551;23898:7;:14;;;;23894:1;:18;23874:551;;;23934:14;23951:7;23959:1;23951:10;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;23934:27;;23976:15;23994:9;:17;24004:6;23994:17;;;;;;;;;;;;;;;;23976:35;;24040:1;24030:7;:11;24026:388;;;24062:20;24085:49;24114:19;24085:24;24097:11;24085:7;:11;;:24;;;;:::i;:::-;:28;;:49;;;;:::i;:::-;24062:72;;24172:1;24157:12;:16;:46;;;;;24191:12;24177:10;;:26;;24157:46;24153:246;;;24242:12;24228:10;;:26;;;;;;;:::i;:::-;;;;;;;;24277:35;24291:6;24299:12;24277:13;:35::i;:::-;24358:6;24340:39;;;24366:12;24340:39;;;;;;:::i;:::-;;;;;;;;24153:246;24043:371;24026:388;23919:506;;23914:3;;;;;:::i;:::-;;;;23874:551;;;;24492:9;24487:563;24511:7;:14;;;;24507:1;:18;24487:563;;;24547:14;24564:7;24572:1;24564:10;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;24547:27;;24589:21;24613:14;:22;24628:6;24613:22;;;;;;;;;;;;;;;;24589:46;;24670:1;24654:13;:17;:40;;;;;24676:18;24687:6;24676:10;:18::i;:::-;24675:19;24654:40;24650:389;;;24715:20;24738:74;24792:19;24738:49;24775:11;24738:32;12808:1;24738:13;:17;;:32;;;;:::i;:::-;:36;;:49;;;;:::i;:::-;:53;;:74;;;;:::i;:::-;24715:97;;24850:1;24835:12;:16;:46;;;;;24869:12;24855:10;;:26;;24835:46;24831:193;;;24920:12;24906:10;;:26;;;;;;;:::i;:::-;;;;;;;;24992:12;24955:25;:33;24981:6;24955:33;;;;;;;;;;;;;;;;:49;;;;;;;:::i;:::-;;;;;;;;24831:193;24696:343;24650:389;24532:518;;24527:3;;;;;:::i;:::-;;;;24487:563;;;;25087:15;25062:22;:40;;;;23331:1779;;23293:1817;:::o;15168:112::-;15227:7;15254:9;:18;15264:7;15254:18;;;;;;;;;;;;;;;;15247:25;;15168:112;;;:::o;26026:98::-;26075:7;26102;:14;;;;26095:21;;26026:98;:::o;3361:103::-;2572:13;:11;:13::i;:::-;3426:30:::1;3453:1;3426:18;:30::i;:::-;3361:103::o:0;11880:40::-;;;:::o;25531:227::-;2572:13;:11;:13::i;:::-;25641:2:::1;25628:9;:15;;:35;;;;;25661:2;25647:10;:16;;25628:35;25620:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;25707:9;25695;:21;;;;25740:10;25727;:23;;;;25531:227:::0;;:::o;12691:26::-;;;;:::o;12768:41::-;12808:1;12768:41;:::o;25345:178::-;2572:13;:11;:13::i;:::-;25409:14:::1;;;;;;;;;;;25408:15;25400:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;25479:4;25462:14;;:21;;;;;;;;;;;;;;;;;;25499:16;;;;;;;;;;25345:178::o:0;2686:87::-;2732:7;2759:6;;;;;;;;;;;2752:13;;2686:87;:::o;12065:36::-;;;:::o;12350:39::-;12387:2;12350:39;:::o;11677:28::-;;;;:::o;25766:175::-;2572:13;:11;:13::i;:::-;25862:6:::1;25849:9;:19;;25841:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;25924:9;25908:13;:25;;;;25766:175:::0;:::o;11348:37::-;;;;;;;;;;;;;;;;;;;:::o;11802:45::-;11844:3;11802:45;:::o;21696:527::-;21755:14;;;;;;;;;;;:39;;;;21787:7;:5;:7::i;:::-;21773:21;;:10;:21;;;21755:39;21747:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;21846:1;21837:6;:10;21829:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;21910:6;21885:9;:21;21895:10;21885:21;;;;;;;;;;;;;;;;:31;;21877:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;21954:44;21964:10;21984:4;21991:6;21954:9;:44::i;:::-;22039:6;22009:14;:26;22024:10;22009:26;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;22071:6;22056:11;;:21;;;;;;;:::i;:::-;;;;;;;;22124:1;22092:16;:28;22109:10;22092:28;;;;;;;;;;;;;;;;:33;22088:85;;22158:15;22127:16;:28;22144:10;22127:28;;;;;;;;;;;;;;;:46;;;;22088:85;22196:10;22189:26;;;22208:6;22189:26;;;;;;:::i;:::-;;;;;;;;21696:527;:::o;26173:147::-;26251:7;26278:25;:34;26304:7;26278:34;;;;;;;;;;;;;;;;26271:41;;26173:147;;;:::o;15288:240::-;15359:4;15384:14;;;;;;;;;;;:39;;;;15416:7;:5;:7::i;:::-;15402:21;;:10;:21;;;15384:39;15376:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15458:40;15468:10;15480:9;15491:6;15458:9;:40::i;:::-;15516:4;15509:11;;15288:240;;;;:::o;12924:37::-;;;;:::o;12724:::-;;;;:::o;11927:42::-;;;:::o;20421:390::-;20501:22;20512:10;20501;:22::i;:::-;20500:23;20492:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;20569:17;20589:46;11844:3;20589:25;20603:10;;20589:9;:13;;:25;;;;:::i;:::-;:29;;:46;;;;:::i;:::-;20569:66;;20667:9;20654;:22;;20646:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;20720:25;20735:9;20720:14;:25::i;:::-;20774:10;20761:42;;;20786:9;20797:5;20761:42;;;;;;;:::i;:::-;;;;;;;;20481:330;20421:390;:::o;17185:293::-;17243:4;17278:15;17267:26;;:7;:26;;;:74;;;;17324:17;17313:28;;:7;:28;;;17267:74;:120;;;;17372:15;17361:26;;:7;:26;;;17267:120;:161;;;;17418:10;17407:21;;:7;:21;;;17267:161;:203;;;;17459:11;17448:22;;:7;:22;;;17267:203;17260:210;;17185:293;;;:::o;12526:51::-;;;;;;;;;;;;;;;;;:::o;11976:40::-;;;:::o;13173:::-;;;;;;;;;;;;;;;;;;;;;;:::o;16167:136::-;16241:7;16268:11;:18;16280:5;16268:18;;;;;;;;;;;;;;;:27;16287:7;16268:27;;;;;;;;;;;;;;;;16261:34;;16167:136;;;;:::o;13120:46::-;;;;;;;;;;;;;;;;;:::o;3619:220::-;2572:13;:11;:13::i;:::-;3724:1:::1;3704:22;;:8;:22;;::::0;3700:93:::1;;3778:1;3750:31;;;;;;;;;;;:::i;:::-;;;;;;;;3700:93;3803:28;3822:8;3803:18;:28::i;:::-;3619:220:::0;:::o;12195:44::-;12237:2;12195:44;:::o;11739:29::-;;;;:::o;16800:314::-;16911:1;16894:19;;:5;:19;;;16886:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;16981:1;16962:21;;:7;:21;;;16954:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;17052:6;17022:11;:18;17034:5;17022:18;;;;;;;;;;;;;;;:27;17041:7;17022:27;;;;;;;;;;;;;;;:36;;;;17090:7;17074:32;;17083:5;17074:32;;;17099:6;17074:32;;;;;;:::i;:::-;;;;;;;;16800:314;;;:::o;16311:481::-;16427:1;16409:20;;:6;:20;;;16401:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;16500:1;16479:23;;:9;:23;;;16471:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;16571:6;16550:9;:17;16560:6;16550:17;;;;;;;;;;;;;;;;:27;;16542:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;16636:6;16615:9;:17;16625:6;16615:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;16677:6;16653:9;:20;16663:9;16653:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;16696:35;16713:6;16721:9;16696:16;:35::i;:::-;16766:9;16749:35;;16758:6;16749:35;;;16777:6;16749:35;;;;;;:::i;:::-;;;;;;;;16311:481;;;:::o;25143:170::-;25215:12;25233:2;:7;;25248:6;25233:26;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25214:45;;;25278:7;25270:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;25203:110;25143:170;;:::o;17563:1841::-;17644:19;17666:18;17677:6;17666:10;:18::i;:::-;17644:40;;17695:22;17720:21;17731:9;17720:10;:21::i;:::-;17695:46;;17759:14;17754:901;;17790:21;17814:9;:17;17824:6;17814:17;;;;;;;;;;;;;;;;17790:41;;17867:1;17850:13;:18;:49;;;;;17898:1;17872:14;:22;17887:6;17872:22;;;;;;;;;;;;;;;;:27;17850:49;:69;;;;;17903:8;:16;17912:6;17903:16;;;;;;;;;;;;;;;;;;;;;;;;;17850:69;17846:798;;;17962:42;17986:9;:17;17996:6;17986:17;;;;;;;;;;;;;;;;17962:19;;:23;;:42;;;;:::i;:::-;17940:19;:64;;;;18023:20;18036:6;18023:12;:20::i;:::-;17846:798;;;18085:1;18069:13;:17;:38;;;;;18091:8;:16;18100:6;18091:16;;;;;;;;;;;;;;;;;;;;;;;;;18090:17;18069:38;:69;;;;;18137:1;18111:14;:22;18126:6;18111:22;;;;;;;;;;;;;;;;:27;18069:69;18065:579;;;18159:17;18169:6;18159:9;:17::i;:::-;18217:38;18241:13;18217:19;;:23;;:38;;;;:::i;:::-;18195:19;:60;;;;18065:579;;;18281:8;:16;18290:6;18281:16;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;;18327:1;18301:14;:22;18316:6;18301:22;;;;;;;;;;;;;;;;:27;18281:47;18277:367;;;18371:61;18418:13;18371:42;18395:9;:17;18405:6;18395:17;;;;;;;;;;;;;;;;18371:19;;:23;;:42;;;;:::i;:::-;:46;;:61;;;;:::i;:::-;18349:19;:83;;;;18277:367;;;18458:8;:16;18467:6;18458:16;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;18503:1;18478:14;:22;18493:6;18478:22;;;;;;;;;;;;;;;;:26;18458:46;18454:190;;;18547:42;18571:9;:17;18581:6;18571:17;;;;;;;;;;;;;;;;18547:19;;:23;;:42;;;;:::i;:::-;18525:19;:64;;;;18608:20;18621:6;18608:12;:20::i;:::-;18454:190;18277:367;18065:579;17846:798;17775:880;17754:901;18672:17;18667:730;;18706:24;18733:9;:20;18743:9;18733:20;;;;;;;;;;;;;;;;18706:47;;18791:1;18772:16;:20;:44;;;;;18797:8;:19;18806:9;18797:19;;;;;;;;;;;;;;;;;;;;;;;;;18796:20;18772:44;:78;;;;;18849:1;18820:14;:25;18835:9;18820:25;;;;;;;;;;;;;;;;:30;18772:78;18768:618;;;18871:20;18881:9;18871;:20::i;:::-;18932:41;18956:16;18932:19;;:23;;:41;;;;:::i;:::-;18910:19;:63;;;;18768:618;;;18999:8;:19;19008:9;18999:19;;;;;;;;;;;;;;;;;;;;;;;;;:53;;;;;19051:1;19022:14;:25;19037:9;19022:25;;;;;;;;;;;;;;;;:30;18999:53;18995:391;;;19095:67;19145:16;19095:45;19119:9;:20;19129:9;19119:20;;;;;;;;;;;;;;;;19095:19;;:23;;:45;;;;:::i;:::-;:49;;:67;;;;:::i;:::-;19073:19;:89;;;;18995:391;;;19188:8;:19;19197:9;19188:19;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;;19239:1;19211:14;:25;19226:9;19211:25;;;;;;;;;;;;;;;;:29;19188:52;19184:202;;;19283:45;19307:9;:20;19317:9;19307:20;;;;;;;;;;;;;;;;19283:19;;:23;;:45;;;;:::i;:::-;19261:19;:67;;;;19347:23;19360:9;19347:12;:23::i;:::-;19184:202;18995:391;18768:618;18691:706;18667:730;17633:1771;;17563:1841;;:::o;7811:98::-;7869:7;7900:1;7896;:5;;;;:::i;:::-;7889:12;;7811:98;;;;:::o;8210:::-;8268:7;8299:1;8295;:5;;;;:::i;:::-;8288:12;;8210:98;;;;:::o;20819:843::-;20882:19;20904:48;11844:3;20904:27;12186:2;20904:9;:13;;:27;;;;:::i;:::-;:31;;:48;;;;:::i;:::-;20882:70;;20963:22;20988:51;11844:3;20988:30;12237:2;20988:9;:13;;:30;;;;:::i;:::-;:34;;:51;;;;:::i;:::-;20963:76;;21050:16;21069:53;11844:3;21069:32;12290:2;21069:9;:13;;:32;;;;:::i;:::-;:36;;:53;;;;:::i;:::-;21050:72;;21133:16;21152:51;11844:3;21152:30;12341:2;21152:9;:13;;:30;;;;:::i;:::-;:34;;:51;;;;:::i;:::-;21133:70;;21214:17;21234:46;11844:3;21234:25;12387:2;21234:9;:13;;:25;;;;:::i;:::-;:29;;:46;;;;:::i;:::-;21214:66;;21291:18;21312:47;11844:3;21312:26;12434:1;21312:9;:13;;:26;;;;:::i;:::-;:30;;:47;;;;:::i;:::-;21291:68;;21386:11;21372:10;;:25;;;;;;;:::i;:::-;;;;;;;;21408:46;21422:15;21439:14;21408:13;:46::i;:::-;21465:42;21479:17;21498:8;21465:13;:42::i;:::-;21518:40;21532:15;21549:8;21518:13;:40::i;:::-;21569:36;21583:10;21595:9;21569:13;:36::i;:::-;21616:38;21630:11;21643:10;21616:13;:38::i;:::-;20871:791;;;;;;20819:843;:::o;2851:166::-;2922:12;:10;:12::i;:::-;2911:23;;:7;:5;:7::i;:::-;:23;;;2907:103;;2985:12;:10;:12::i;:::-;2958:40;;;;;;;;;;;:::i;:::-;;;;;;;;2907:103;2851:166::o;3999:191::-;4073:16;4092:6;;;;;;;;;;;4073:25;;4118:8;4109:6;;:17;;;;;;;;;;;;;;;;;;4173:8;4142:40;;4163:8;4142:40;;;;;;;;;;;;4062:128;3999:191;:::o;7454:98::-;7512:7;7543:1;7539;:5;;;;:::i;:::-;7532:12;;7454:98;;;;:::o;19623:373::-;19681:13;19697:11;:19;19709:6;19697:19;;;;;;;;;;;;;;;;19681:35;;19727:18;19748:7;19773:1;19756:7;:14;;;;:18;;;;:::i;:::-;19748:27;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19727:48;;19803:10;19786:7;19794:5;19786:14;;;;;;;;:::i;:::-;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;19850:5;19824:11;:23;19836:10;19824:23;;;;;;;;;;;;;;;:31;;;;19866:7;:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;19897:11;:19;19909:6;19897:19;;;;;;;;;;;;;;;19890:26;;;19946:5;19927:8;:16;19936:6;19927:16;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;19981:6;19967:21;;;;;;;;;;;;19670:326;;19623:373;:::o;19412:203::-;19467:7;19480:6;19467:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19537:1;19520:7;:14;;;;:18;;;;:::i;:::-;19498:11;:19;19510:6;19498:19;;;;;;;;;;;;;;;:40;;;;19568:4;19549:8;:16;19558:6;19549:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;19600:6;19588:19;;;;;;;;;;;;19412:203;:::o;7073:98::-;7131:7;7162:1;7158;:5;;;;:::i;:::-;7151:12;;7073:98;;;;:::o;695:::-;748:7;775:10;768:17;;695:98;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:180::-;138:77;135:1;128:88;235:4;232:1;225:15;259:4;256:1;249:15;276:191;316:3;335:20;353:1;335:20;:::i;:::-;330:25;;369:20;387:1;369:20;:::i;:::-;364:25;;412:1;409;405:9;398:16;;433:3;430:1;427:10;424:36;;;440:18;;:::i;:::-;424:36;276:191;;;;:::o;473:126::-;510:7;550:42;543:5;539:54;528:65;;473:126;;;:::o;605:96::-;642:7;671:24;689:5;671:24;:::i;:::-;660:35;;605:96;;;:::o;707:118::-;794:24;812:5;794:24;:::i;:::-;789:3;782:37;707:118;;:::o;831:222::-;924:4;962:2;951:9;947:18;939:26;;975:71;1043:1;1032:9;1028:17;1019:6;975:71;:::i;:::-;831:222;;;;:::o;1059:99::-;1111:6;1145:5;1139:12;1129:22;;1059:99;;;:::o;1164:169::-;1248:11;1282:6;1277:3;1270:19;1322:4;1317:3;1313:14;1298:29;;1164:169;;;;:::o;1339:246::-;1420:1;1430:113;1444:6;1441:1;1438:13;1430:113;;;1529:1;1524:3;1520:11;1514:18;1510:1;1505:3;1501:11;1494:39;1466:2;1463:1;1459:10;1454:15;;1430:113;;;1577:1;1568:6;1563:3;1559:16;1552:27;1401:184;1339:246;;;:::o;1591:102::-;1632:6;1683:2;1679:7;1674:2;1667:5;1663:14;1659:28;1649:38;;1591:102;;;:::o;1699:377::-;1787:3;1815:39;1848:5;1815:39;:::i;:::-;1870:71;1934:6;1929:3;1870:71;:::i;:::-;1863:78;;1950:65;2008:6;2003:3;1996:4;1989:5;1985:16;1950:65;:::i;:::-;2040:29;2062:6;2040:29;:::i;:::-;2035:3;2031:39;2024:46;;1791:285;1699:377;;;;:::o;2082:313::-;2195:4;2233:2;2222:9;2218:18;2210:26;;2282:9;2276:4;2272:20;2268:1;2257:9;2253:17;2246:47;2310:78;2383:4;2374:6;2310:78;:::i;:::-;2302:86;;2082:313;;;;:::o;2482:117::-;2591:1;2588;2581:12;2728:122;2801:24;2819:5;2801:24;:::i;:::-;2794:5;2791:35;2781:63;;2840:1;2837;2830:12;2781:63;2728:122;:::o;2856:139::-;2902:5;2940:6;2927:20;2918:29;;2956:33;2983:5;2956:33;:::i;:::-;2856:139;;;;:::o;3001:122::-;3074:24;3092:5;3074:24;:::i;:::-;3067:5;3064:35;3054:63;;3113:1;3110;3103:12;3054:63;3001:122;:::o;3129:139::-;3175:5;3213:6;3200:20;3191:29;;3229:33;3256:5;3229:33;:::i;:::-;3129:139;;;;:::o;3274:474::-;3342:6;3350;3399:2;3387:9;3378:7;3374:23;3370:32;3367:119;;;3405:79;;:::i;:::-;3367:119;3525:1;3550:53;3595:7;3586:6;3575:9;3571:22;3550:53;:::i;:::-;3540:63;;3496:117;3652:2;3678:53;3723:7;3714:6;3703:9;3699:22;3678:53;:::i;:::-;3668:63;;3623:118;3274:474;;;;;:::o;3754:90::-;3788:7;3831:5;3824:13;3817:21;3806:32;;3754:90;;;:::o;3850:109::-;3931:21;3946:5;3931:21;:::i;:::-;3926:3;3919:34;3850:109;;:::o;3965:210::-;4052:4;4090:2;4079:9;4075:18;4067:26;;4103:65;4165:1;4154:9;4150:17;4141:6;4103:65;:::i;:::-;3965:210;;;;:::o;4181:329::-;4240:6;4289:2;4277:9;4268:7;4264:23;4260:32;4257:119;;;4295:79;;:::i;:::-;4257:119;4415:1;4440:53;4485:7;4476:6;4465:9;4461:22;4440:53;:::i;:::-;4430:63;;4386:117;4181:329;;;;:::o;4516:118::-;4603:24;4621:5;4603:24;:::i;:::-;4598:3;4591:37;4516:118;;:::o;4640:222::-;4733:4;4771:2;4760:9;4756:18;4748:26;;4784:71;4852:1;4841:9;4837:17;4828:6;4784:71;:::i;:::-;4640:222;;;;:::o;4868:619::-;4945:6;4953;4961;5010:2;4998:9;4989:7;4985:23;4981:32;4978:119;;;5016:79;;:::i;:::-;4978:119;5136:1;5161:53;5206:7;5197:6;5186:9;5182:22;5161:53;:::i;:::-;5151:63;;5107:117;5263:2;5289:53;5334:7;5325:6;5314:9;5310:22;5289:53;:::i;:::-;5279:63;;5234:118;5391:2;5417:53;5462:7;5453:6;5442:9;5438:22;5417:53;:::i;:::-;5407:63;;5362:118;4868:619;;;;;:::o;5493:329::-;5552:6;5601:2;5589:9;5580:7;5576:23;5572:32;5569:119;;;5607:79;;:::i;:::-;5569:119;5727:1;5752:53;5797:7;5788:6;5777:9;5773:22;5752:53;:::i;:::-;5742:63;;5698:117;5493:329;;;;:::o;5828:86::-;5863:7;5903:4;5896:5;5892:16;5881:27;;5828:86;;;:::o;5920:112::-;6003:22;6019:5;6003:22;:::i;:::-;5998:3;5991:35;5920:112;;:::o;6038:214::-;6127:4;6165:2;6154:9;6150:18;6142:26;;6178:67;6242:1;6231:9;6227:17;6218:6;6178:67;:::i;:::-;6038:214;;;;:::o;6258:474::-;6326:6;6334;6383:2;6371:9;6362:7;6358:23;6354:32;6351:119;;;6389:79;;:::i;:::-;6351:119;6509:1;6534:53;6579:7;6570:6;6559:9;6555:22;6534:53;:::i;:::-;6524:63;;6480:117;6636:2;6662:53;6707:7;6698:6;6687:9;6683:22;6662:53;:::i;:::-;6652:63;;6607:118;6258:474;;;;;:::o;6738:::-;6806:6;6814;6863:2;6851:9;6842:7;6838:23;6834:32;6831:119;;;6869:79;;:::i;:::-;6831:119;6989:1;7014:53;7059:7;7050:6;7039:9;7035:22;7014:53;:::i;:::-;7004:63;;6960:117;7116:2;7142:53;7187:7;7178:6;7167:9;7163:22;7142:53;:::i;:::-;7132:63;;7087:118;6738:474;;;;;:::o;7218:169::-;7358:21;7354:1;7346:6;7342:14;7335:45;7218:169;:::o;7393:366::-;7535:3;7556:67;7620:2;7615:3;7556:67;:::i;:::-;7549:74;;7632:93;7721:3;7632:93;:::i;:::-;7750:2;7745:3;7741:12;7734:19;;7393:366;;;:::o;7765:419::-;7931:4;7969:2;7958:9;7954:18;7946:26;;8018:9;8012:4;8008:20;8004:1;7993:9;7989:17;7982:47;8046:131;8172:4;8046:131;:::i;:::-;8038:139;;7765:419;;;:::o;8190:172::-;8330:24;8326:1;8318:6;8314:14;8307:48;8190:172;:::o;8368:366::-;8510:3;8531:67;8595:2;8590:3;8531:67;:::i;:::-;8524:74;;8607:93;8696:3;8607:93;:::i;:::-;8725:2;8720:3;8716:12;8709:19;;8368:366;;;:::o;8740:419::-;8906:4;8944:2;8933:9;8929:18;8921:26;;8993:9;8987:4;8983:20;8979:1;8968:9;8964:17;8957:47;9021:131;9147:4;9021:131;:::i;:::-;9013:139;;8740:419;;;:::o;9165:194::-;9205:4;9225:20;9243:1;9225:20;:::i;:::-;9220:25;;9259:20;9277:1;9259:20;:::i;:::-;9254:25;;9303:1;9300;9296:9;9288:17;;9327:1;9321:4;9318:11;9315:37;;;9332:18;;:::i;:::-;9315:37;9165:194;;;;:::o;9365:166::-;9505:18;9501:1;9493:6;9489:14;9482:42;9365:166;:::o;9537:366::-;9679:3;9700:67;9764:2;9759:3;9700:67;:::i;:::-;9693:74;;9776:93;9865:3;9776:93;:::i;:::-;9894:2;9889:3;9885:12;9878:19;;9537:366;;;:::o;9909:419::-;10075:4;10113:2;10102:9;10098:18;10090:26;;10162:9;10156:4;10152:20;10148:1;10137:9;10133:17;10126:47;10190:131;10316:4;10190:131;:::i;:::-;10182:139;;9909:419;;;:::o;10334:177::-;10474:29;10470:1;10462:6;10458:14;10451:53;10334:177;:::o;10517:366::-;10659:3;10680:67;10744:2;10739:3;10680:67;:::i;:::-;10673:74;;10756:93;10845:3;10756:93;:::i;:::-;10874:2;10869:3;10865:12;10858:19;;10517:366;;;:::o;10889:419::-;11055:4;11093:2;11082:9;11078:18;11070:26;;11142:9;11136:4;11132:20;11128:1;11117:9;11113:17;11106:47;11170:131;11296:4;11170:131;:::i;:::-;11162:139;;10889:419;;;:::o;11314:178::-;11454:30;11450:1;11442:6;11438:14;11431:54;11314:178;:::o;11498:366::-;11640:3;11661:67;11725:2;11720:3;11661:67;:::i;:::-;11654:74;;11737:93;11826:3;11737:93;:::i;:::-;11855:2;11850:3;11846:12;11839:19;;11498:366;;;:::o;11870:419::-;12036:4;12074:2;12063:9;12059:18;12051:26;;12123:9;12117:4;12113:20;12109:1;12098:9;12094:17;12087:47;12151:131;12277:4;12151:131;:::i;:::-;12143:139;;11870:419;;;:::o;12295:332::-;12416:4;12454:2;12443:9;12439:18;12431:26;;12467:71;12535:1;12524:9;12520:17;12511:6;12467:71;:::i;:::-;12548:72;12616:2;12605:9;12601:18;12592:6;12548:72;:::i;:::-;12295:332;;;;;:::o;12633:180::-;12773:32;12769:1;12761:6;12757:14;12750:56;12633:180;:::o;12819:366::-;12961:3;12982:67;13046:2;13041:3;12982:67;:::i;:::-;12975:74;;13058:93;13147:3;13058:93;:::i;:::-;13176:2;13171:3;13167:12;13160:19;;12819:366;;;:::o;13191:419::-;13357:4;13395:2;13384:9;13380:18;13372:26;;13444:9;13438:4;13434:20;13430:1;13419:9;13415:17;13408:47;13472:131;13598:4;13472:131;:::i;:::-;13464:139;;13191:419;;;:::o;13616:177::-;13756:29;13752:1;13744:6;13740:14;13733:53;13616:177;:::o;13799:366::-;13941:3;13962:67;14026:2;14021:3;13962:67;:::i;:::-;13955:74;;14038:93;14127:3;14038:93;:::i;:::-;14156:2;14151:3;14147:12;14140:19;;13799:366;;;:::o;14171:419::-;14337:4;14375:2;14364:9;14360:18;14352:26;;14424:9;14418:4;14414:20;14410:1;14399:9;14395:17;14388:47;14452:131;14578:4;14452:131;:::i;:::-;14444:139;;14171:419;;;:::o;14596:320::-;14711:4;14749:2;14738:9;14734:18;14726:26;;14762:71;14830:1;14819:9;14815:17;14806:6;14762:71;:::i;:::-;14843:66;14905:2;14894:9;14890:18;14881:6;14843:66;:::i;:::-;14596:320;;;;;:::o;14922:169::-;15062:21;15058:1;15050:6;15046:14;15039:45;14922:169;:::o;15097:366::-;15239:3;15260:67;15324:2;15319:3;15260:67;:::i;:::-;15253:74;;15336:93;15425:3;15336:93;:::i;:::-;15454:2;15449:3;15445:12;15438:19;;15097:366;;;:::o;15469:419::-;15635:4;15673:2;15662:9;15658:18;15650:26;;15722:9;15716:4;15712:20;15708:1;15697:9;15693:17;15686:47;15750:131;15876:4;15750:131;:::i;:::-;15742:139;;15469:419;;;:::o;15894:169::-;16034:21;16030:1;16022:6;16018:14;16011:45;15894:169;:::o;16069:366::-;16211:3;16232:67;16296:2;16291:3;16232:67;:::i;:::-;16225:74;;16308:93;16397:3;16308:93;:::i;:::-;16426:2;16421:3;16417:12;16410:19;;16069:366;;;:::o;16441:419::-;16607:4;16645:2;16634:9;16630:18;16622:26;;16694:9;16688:4;16684:20;16680:1;16669:9;16665:17;16658:47;16722:131;16848:4;16722:131;:::i;:::-;16714:139;;16441:419;;;:::o;16866:410::-;16906:7;16929:20;16947:1;16929:20;:::i;:::-;16924:25;;16963:20;16981:1;16963:20;:::i;:::-;16958:25;;17018:1;17015;17011:9;17040:30;17058:11;17040:30;:::i;:::-;17029:41;;17219:1;17210:7;17206:15;17203:1;17200:22;17180:1;17173:9;17153:83;17130:139;;17249:18;;:::i;:::-;17130:139;16914:362;16866:410;;;;:::o;17282:180::-;17330:77;17327:1;17320:88;17427:4;17424:1;17417:15;17451:4;17448:1;17441:15;17468:233;17507:3;17530:24;17548:5;17530:24;:::i;:::-;17521:33;;17576:66;17569:5;17566:77;17563:103;;17646:18;;:::i;:::-;17563:103;17693:1;17686:5;17682:13;17675:20;;17468:233;;;:::o;17707:166::-;17847:18;17843:1;17835:6;17831:14;17824:42;17707:166;:::o;17879:366::-;18021:3;18042:67;18106:2;18101:3;18042:67;:::i;:::-;18035:74;;18118:93;18207:3;18118:93;:::i;:::-;18236:2;18231:3;18227:12;18220:19;;17879:366;;;:::o;18251:419::-;18417:4;18455:2;18444:9;18440:18;18432:26;;18504:9;18498:4;18494:20;18490:1;18479:9;18475:17;18468:47;18532:131;18658:4;18532:131;:::i;:::-;18524:139;;18251:419;;;:::o;18676:173::-;18816:25;18812:1;18804:6;18800:14;18793:49;18676:173;:::o;18855:366::-;18997:3;19018:67;19082:2;19077:3;19018:67;:::i;:::-;19011:74;;19094:93;19183:3;19094:93;:::i;:::-;19212:2;19207:3;19203:12;19196:19;;18855:366;;;:::o;19227:419::-;19393:4;19431:2;19420:9;19416:18;19408:26;;19480:9;19474:4;19470:20;19466:1;19455:9;19451:17;19444:47;19508:131;19634:4;19508:131;:::i;:::-;19500:139;;19227:419;;;:::o;19652:174::-;19792:26;19788:1;19780:6;19776:14;19769:50;19652:174;:::o;19832:366::-;19974:3;19995:67;20059:2;20054:3;19995:67;:::i;:::-;19988:74;;20071:93;20160:3;20071:93;:::i;:::-;20189:2;20184:3;20180:12;20173:19;;19832:366;;;:::o;20204:419::-;20370:4;20408:2;20397:9;20393:18;20385:26;;20457:9;20451:4;20447:20;20443:1;20432:9;20428:17;20421:47;20485:131;20611:4;20485:131;:::i;:::-;20477:139;;20204:419;;;:::o;20629:164::-;20769:16;20765:1;20757:6;20753:14;20746:40;20629:164;:::o;20799:366::-;20941:3;20962:67;21026:2;21021:3;20962:67;:::i;:::-;20955:74;;21038:93;21127:3;21038:93;:::i;:::-;21156:2;21151:3;21147:12;21140:19;;20799:366;;;:::o;21171:419::-;21337:4;21375:2;21364:9;21360:18;21352:26;;21424:9;21418:4;21414:20;21410:1;21399:9;21395:17;21388:47;21452:131;21578:4;21452:131;:::i;:::-;21444:139;;21171:419;;;:::o;21596:170::-;21736:22;21732:1;21724:6;21720:14;21713:46;21596:170;:::o;21772:366::-;21914:3;21935:67;21999:2;21994:3;21935:67;:::i;:::-;21928:74;;22011:93;22100:3;22011:93;:::i;:::-;22129:2;22124:3;22120:12;22113:19;;21772:366;;;:::o;22144:419::-;22310:4;22348:2;22337:9;22333:18;22325:26;;22397:9;22391:4;22387:20;22383:1;22372:9;22368:17;22361:47;22425:131;22551:4;22425:131;:::i;:::-;22417:139;;22144:419;;;:::o;22569:178::-;22709:30;22705:1;22697:6;22693:14;22686:54;22569:178;:::o;22753:366::-;22895:3;22916:67;22980:2;22975:3;22916:67;:::i;:::-;22909:74;;22992:93;23081:3;22992:93;:::i;:::-;23110:2;23105:3;23101:12;23094:19;;22753:366;;;:::o;23125:419::-;23291:4;23329:2;23318:9;23314:18;23306:26;;23378:9;23372:4;23368:20;23364:1;23353:9;23349:17;23342:47;23406:131;23532:4;23406:131;:::i;:::-;23398:139;;23125:419;;;:::o;23550:175::-;23690:27;23686:1;23678:6;23674:14;23667:51;23550:175;:::o;23731:366::-;23873:3;23894:67;23958:2;23953:3;23894:67;:::i;:::-;23887:74;;23970:93;24059:3;23970:93;:::i;:::-;24088:2;24083:3;24079:12;24072:19;;23731:366;;;:::o;24103:419::-;24269:4;24307:2;24296:9;24292:18;24284:26;;24356:9;24350:4;24346:20;24342:1;24331:9;24327:17;24320:47;24384:131;24510:4;24384:131;:::i;:::-;24376:139;;24103:419;;;:::o;24528:173::-;24668:25;24664:1;24656:6;24652:14;24645:49;24528:173;:::o;24707:366::-;24849:3;24870:67;24934:2;24929:3;24870:67;:::i;:::-;24863:74;;24946:93;25035:3;24946:93;:::i;:::-;25064:2;25059:3;25055:12;25048:19;;24707:366;;;:::o;25079:419::-;25245:4;25283:2;25272:9;25268:18;25260:26;;25332:9;25326:4;25322:20;25318:1;25307:9;25303:17;25296:47;25360:131;25486:4;25360:131;:::i;:::-;25352:139;;25079:419;;;:::o;25504:176::-;25644:28;25640:1;25632:6;25628:14;25621:52;25504:176;:::o;25686:366::-;25828:3;25849:67;25913:2;25908:3;25849:67;:::i;:::-;25842:74;;25925:93;26014:3;25925:93;:::i;:::-;26043:2;26038:3;26034:12;26027:19;;25686:366;;;:::o;26058:419::-;26224:4;26262:2;26251:9;26247:18;26239:26;;26311:9;26305:4;26301:20;26297:1;26286:9;26282:17;26275:47;26339:131;26465:4;26339:131;:::i;:::-;26331:139;;26058:419;;;:::o;26483:174::-;26623:26;26619:1;26611:6;26607:14;26600:50;26483:174;:::o;26663:366::-;26805:3;26826:67;26890:2;26885:3;26826:67;:::i;:::-;26819:74;;26902:93;26991:3;26902:93;:::i;:::-;27020:2;27015:3;27011:12;27004:19;;26663:366;;;:::o;27035:419::-;27201:4;27239:2;27228:9;27224:18;27216:26;;27288:9;27282:4;27278:20;27274:1;27263:9;27259:17;27252:47;27316:131;27442:4;27316:131;:::i;:::-;27308:139;;27035:419;;;:::o;27460:147::-;27561:11;27598:3;27583:18;;27460:147;;;;:::o;27613:114::-;;:::o;27733:398::-;27892:3;27913:83;27994:1;27989:3;27913:83;:::i;:::-;27906:90;;28005:93;28094:3;28005:93;:::i;:::-;28123:1;28118:3;28114:11;28107:18;;27733:398;;;:::o;28137:379::-;28321:3;28343:147;28486:3;28343:147;:::i;:::-;28336:154;;28507:3;28500:10;;28137:379;;;:::o;28522:165::-;28662:17;28658:1;28650:6;28646:14;28639:41;28522:165;:::o;28693:366::-;28835:3;28856:67;28920:2;28915:3;28856:67;:::i;:::-;28849:74;;28932:93;29021:3;28932:93;:::i;:::-;29050:2;29045:3;29041:12;29034:19;;28693:366;;;:::o;29065:419::-;29231:4;29269:2;29258:9;29254:18;29246:26;;29318:9;29312:4;29308:20;29304:1;29293:9;29289:17;29282:47;29346:131;29472:4;29346:131;:::i;:::-;29338:139;;29065:419;;;:::o;29490:180::-;29538:77;29535:1;29528:88;29635:4;29632:1;29625:15;29659:4;29656:1;29649:15;29676:185;29716:1;29733:20;29751:1;29733:20;:::i;:::-;29728:25;;29767:20;29785:1;29767:20;:::i;:::-;29762:25;;29806:1;29796:35;;29811:18;;:::i;:::-;29796:35;29853:1;29850;29846:9;29841:14;;29676:185;;;;:::o;29867:180::-;29915:77;29912:1;29905:88;30012:4;30009:1;30002:15;30036:4;30033:1;30026:15
Swarm Source
ipfs://b6196d3428a529b45aa87d32f7e08b36a89a86454c76344acff7bb1a104cf49b
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.