More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 60 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set Claimable | 3375147 | 11 days ago | IN | 0 S | 0.00015824 | ||||
Finish Sale | 3375128 | 11 days ago | IN | 0 S | 0.00027942 | ||||
Set Claimable | 3375096 | 11 days ago | IN | 0 S | 0.00015817 | ||||
Set Claimable | 3375066 | 11 days ago | IN | 0 S | 0.00015824 | ||||
Finish Sale | 3374948 | 11 days ago | IN | 0 S | 0.00038767 | ||||
Set FCFS Period | 3374765 | 11 days ago | IN | 0 S | 0.0001576 | ||||
Set FCFS Pre Sal... | 3374731 | 11 days ago | IN | 0 S | 0.00018124 | ||||
Set FCFS Pre Sal... | 3374655 | 11 days ago | IN | 0 S | 0.00018124 | ||||
Set FCFS Pre Sal... | 3374594 | 11 days ago | IN | 0 S | 0.00018124 | ||||
Set WL Period | 3374581 | 11 days ago | IN | 0 S | 0.00015767 | ||||
Set FCFS Pre Sal... | 3374484 | 11 days ago | IN | 0 S | 0.00018124 | ||||
Set WL Pre Sale ... | 3373690 | 11 days ago | IN | 0 S | 0.00015816 | ||||
Set WL Pre Sale ... | 3373620 | 11 days ago | IN | 0 S | 0.00015816 | ||||
Set WL | 3373389 | 11 days ago | IN | 0 S | 0.00025795 | ||||
Set WL Pre Sale ... | 3373211 | 11 days ago | IN | 0 S | 0.00015816 | ||||
Set WL Pre Sale ... | 3373128 | 11 days ago | IN | 0 S | 0.00015816 | ||||
Set WL Pre Sale ... | 3372695 | 11 days ago | IN | 0 S | 0.00015816 | ||||
Set WL Pre Sale ... | 3372494 | 11 days ago | IN | 0 S | 0.00015816 | ||||
Set WL Pre Sale ... | 3372378 | 11 days ago | IN | 0 S | 0.00015816 | ||||
Transfer Ownersh... | 3370723 | 11 days ago | IN | 0 S | 0.00016608 | ||||
Transfer Ownersh... | 3370342 | 11 days ago | IN | 0 S | 0.00015788 | ||||
Unpause | 3358487 | 11 days ago | IN | 0 S | 0.00013022 | ||||
Set FCFS Period | 3357608 | 11 days ago | IN | 0 S | 0.00015774 | ||||
Set FCFS Pre Sal... | 3357588 | 11 days ago | IN | 0 S | 0.00018124 | ||||
Set WL Period | 3357528 | 11 days ago | IN | 0 S | 0.00015774 |
Loading...
Loading
Contract Name:
FAsale
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at SonicScan.org on 2024-12-30 */ // File: @openzeppelin/contracts/security/ReentrancyGuard.sol // OpenZeppelin Contracts (last updated v4.9.0) (security/ReentrancyGuard.sol) pragma solidity ^0.8.0; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ abstract contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and making it call a * `private` function that does the actual work. */ modifier nonReentrant() { _nonReentrantBefore(); _; _nonReentrantAfter(); } function _nonReentrantBefore() private { // On the first call to nonReentrant, _status will be _NOT_ENTERED require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; } function _nonReentrantAfter() private { // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } /** * @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a * `nonReentrant` function in the call stack. */ function _reentrancyGuardEntered() internal view returns (bool) { return _status == _ENTERED; } } // File: Token/FA Public Sales.sol pragma solidity >= 0.8.19; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); function decimals() external view returns (uint8); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } //set WL start time //set FCFS start time //set pay token address //set FA token address //set WL addresses //unpause //setclaimable contract FAsale is Ownable, ReentrancyGuard { // Total USDC user can pay uint256 public SALE_CAP = 255000 * 10**6; // Total USDC user paid uint256 public TOTAL_PURCHASE = 0; mapping (address => bool) public whileLists_; address public payToken_; address public FAToken_; // FA Token price, need set before start claim uint256 public tokenPrice_ = 150000; //6 decimal // WL sale settings: min 50 payToken_, max 1000 payToken_ uint256 public WL_MIN_INVEST = 50 * 10**6; uint256 public WL_MAX_INVEST = 1000 * 10**6; // use startWLPreSale() to start the WL sale. uint256 public WL_START_TIME = 999999999999999999999999; uint256 public WL_PERIOD = 1 days; // FCFS sale settings: min 50 payToken_, max 5000 payToken_ uint256 public FCFS_MIN_INVEST = 50 * 10**6; uint256 public FCFS_MAX_INVEST = 5000 * 10**6; // use startFCFSPreSale() to start the FCFS sale. uint256 public FCFS_START_TIME = 999999999999999999999999; uint256 public FCFS_PERIOD = 5 days; mapping (address => uint256) public wlPurchaseAmount_; mapping (address => uint256) public fcfsPurchaseAmount_; // pause all bool public paused_ = true; bool public claimable_ = false; mapping (address => bool) public claimed_; // Total USDC user can pay function setSaleCap(uint256 saleCap) public onlyOwner { SALE_CAP = saleCap; } function setWLInvestLimit(uint256 minInvest, uint256 maxInvest) public onlyOwner { WL_MIN_INVEST = minInvest; WL_MAX_INVEST = maxInvest; } function setFCFSInvestLimit(uint256 minInvest, uint256 maxInvest) public onlyOwner { FCFS_MIN_INVEST = minInvest; FCFS_MAX_INVEST = maxInvest; } function setFAToken(address newToken) public onlyOwner { FAToken_ = newToken; } function setPayToken(address newToken) public onlyOwner { payToken_ = newToken; } // Token price for FA Token function setTokenPrice(uint256 tokenPrice) public onlyOwner { require(tokenPrice > 0, "Token price must be greater than 0"); tokenPrice_ = tokenPrice; } function setWLPeriod(uint256 new_period) public onlyOwner { WL_PERIOD = new_period; } function setFCFSPeriod(uint256 new_period) public onlyOwner { FCFS_PERIOD = new_period; } function setWLPreSaleStartTime(uint256 startTime) public onlyOwner { WL_START_TIME = startTime; } function setFCFSPreSaleStartTime(uint256 startTime) public onlyOwner { require(startTime >= WL_START_TIME + WL_PERIOD, "FCFS can't start before WL sale."); FCFS_START_TIME = startTime; } function pause() public onlyOwner { paused_ = true; } function unpause() public onlyOwner { paused_ = false; } function finishSale() public onlyOwner { IERC20(payToken_).transfer(owner(), IERC20(payToken_).balanceOf(address(this))); pause(); } function setClaimable(bool claimable) public onlyOwner { claimable_ = claimable; } function setWL(address[] calldata whileLists) public onlyOwner { uint256 length = whileLists.length; for (uint256 i=0; i<length; i++) { whileLists_[whileLists[i]] = true; } } function removeWL(address[] calldata whileLists) public onlyOwner { uint256 length = whileLists.length; for (uint256 i=0; i<length; i++) { whileLists_[whileLists[i]] = false; } } function wlPurchase(uint256 amount) public nonReentrant { require(TOTAL_PURCHASE + amount <= SALE_CAP, "Exceed the sale limit."); //in USDC 6 decimal require(whileLists_[msg.sender], "Not in white lists."); require(block.timestamp >= WL_START_TIME && block.timestamp <= WL_START_TIME + WL_PERIOD, "Not in WL period."); require(!paused_, "Sale paused."); require(wlPurchaseAmount_[msg.sender] + amount <= WL_MAX_INVEST, "Exceed WL max."); require(wlPurchaseAmount_[msg.sender] + amount >= WL_MIN_INVEST, "Below WL min."); IERC20(payToken_).transferFrom(msg.sender, address(this), amount); wlPurchaseAmount_[msg.sender] += amount; TOTAL_PURCHASE += amount; //Amount in USDC 6 decimal } function fcfsPurchase(uint256 amount) public nonReentrant { require(TOTAL_PURCHASE + amount <= SALE_CAP, "Exceed the sale limit."); //in USDC 6 decimal require(block.timestamp >= FCFS_START_TIME && block.timestamp <= FCFS_START_TIME + FCFS_PERIOD, "Not in FCFS period."); require(!paused_, "Sale paused."); require(fcfsPurchaseAmount_[msg.sender] + amount <= FCFS_MAX_INVEST, "Exceed FCFS max."); require(fcfsPurchaseAmount_[msg.sender] + amount >= FCFS_MIN_INVEST, "Below FCFS min."); IERC20(payToken_).transferFrom(msg.sender, address(this), amount); fcfsPurchaseAmount_[msg.sender] += amount; TOTAL_PURCHASE += amount; //Amount in USDC 6 decimal } function claim() public nonReentrant { require(claimable_, "Claim not started yet."); require(!claimed_[msg.sender], "Already claimed token."); require(tokenPrice_ != 0, "Token Price Not set."); uint256 purchaseAmount = fcfsPurchaseAmount_[msg.sender] + wlPurchaseAmount_[msg.sender]; uint256 claimableAmount = purchaseAmount / tokenPrice_ * 10**IERC20(FAToken_).decimals();//Amount in FA claimed_[msg.sender] = true; IERC20(FAToken_).transfer(msg.sender, claimableAmount); } // rescue token function rescueToken(address token) public onlyOwner { IERC20(token).transfer(msg.sender, IERC20(token).balanceOf(address(this))); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"FAToken_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FCFS_MAX_INVEST","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FCFS_MIN_INVEST","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FCFS_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FCFS_START_TIME","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SALE_CAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TOTAL_PURCHASE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WL_MAX_INVEST","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WL_MIN_INVEST","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WL_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WL_START_TIME","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimable_","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimed_","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"fcfsPurchase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"fcfsPurchaseAmount_","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"finishSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused_","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"payToken_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"whileLists","type":"address[]"}],"name":"removeWL","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"rescueToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"claimable","type":"bool"}],"name":"setClaimable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newToken","type":"address"}],"name":"setFAToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"minInvest","type":"uint256"},{"internalType":"uint256","name":"maxInvest","type":"uint256"}],"name":"setFCFSInvestLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_period","type":"uint256"}],"name":"setFCFSPeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"startTime","type":"uint256"}],"name":"setFCFSPreSaleStartTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newToken","type":"address"}],"name":"setPayToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"saleCap","type":"uint256"}],"name":"setSaleCap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenPrice","type":"uint256"}],"name":"setTokenPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"whileLists","type":"address[]"}],"name":"setWL","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"minInvest","type":"uint256"},{"internalType":"uint256","name":"maxInvest","type":"uint256"}],"name":"setWLInvestLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_period","type":"uint256"}],"name":"setWLPeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"startTime","type":"uint256"}],"name":"setWLPreSaleStartTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tokenPrice_","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whileLists_","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"wlPurchase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"wlPurchaseAmount_","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
6080604052643b5f2f36006002556000600355620249f06007556302faf0806008819055633b9aca0060095569d3c21bcecceda0ffffff600a81905562015180600b55600c9190915564012a05f200600d55600e5562069780600f556012805461ffff1916600117905534801561007557600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001805561190a806100ca6000396000f3fe608060405234801561001057600080fd5b506004361061025e5760003560e01c80637d4f4d7111610146578063ba1ae92d116100c3578063dfbd0ae011610087578063dfbd0ae0146104d9578063e5019e27146104ec578063e5b44a39146104fe578063f2fde38b14610511578063f31932cd14610524578063f79423f81461053757600080fd5b8063ba1ae92d14610484578063c3f1d1851461048d578063cc3b92e8146104a0578063d176638b146104b3578063d3d37a31146104c657600080fd5b80638f86f5ea1161010a5780638f86f5ea146104345780639d43b53f1461043c578063a46e899c1461045f578063ae7f4ee514610468578063b8c22d771461047157600080fd5b80637d4f4d71146103f25780638456cb59146104055780638801b4fc1461040d5780638cfeb1e11461041a5780638da5cb5b1461042357600080fd5b80634ac05ad2116101df5780635b477e19116101a35780635b477e191461039f578063651464c0146103a85780636a61e5fc146103b15780636c80cd38146103c45780636f96e99c146103d7578063715018a6146103ea57600080fd5b80634ac05ad2146103325780634b1cd329146103525780634e71d92d14610385578063547cf8361461038d578063569fe81a1461039657600080fd5b806333a80f571161022657806333a80f57146102d157806335660856146102e4578063378c93ad146103045780633f4ba83a146103175780634460d3cf1461031f57600080fd5b80630761c8b9146102635780630b45e8db1461027f5780630d4fda071461028857806314113cf31461029d57806327fc5a4f146102a6575b600080fd5b61026c60075481565b6040519081526020015b60405180910390f35b61026c60025481565b61029b6102963660046115b1565b61054a565b005b61026c60085481565b6005546102b9906001600160a01b031681565b6040516001600160a01b039091168152602001610276565b61029b6102df366004611626565b6105f6565b61026c6102f236600461163f565b60116020526000908152604090205481565b61029b61031236600461167d565b61087b565b61029b6108bf565b61029b61032d36600461163f565b6108f5565b61026c61034036600461163f565b60106020526000908152604090205481565b61037561036036600461163f565b60046020526000908152604090205460ff1681565b6040519015158152602001610276565b61029b610a04565b61026c60035481565b61026c60095481565b61026c600f5481565b61026c600a5481565b61029b6103bf366004611626565b610c71565b6006546102b9906001600160a01b031681565b61029b6103e536600461163f565b610cfb565b61029b610d47565b61029b610400366004611626565b610dbb565b61029b610e49565b6012546103759060ff1681565b61026c600e5481565b6000546001600160a01b03166102b9565b61029b610e82565b61037561044a36600461163f565b60136020526000908152604090205460ff1681565b61026c600c5481565b61026c600b5481565b61029b61047f36600461169a565b610fb3565b61026c600d5481565b61029b61049b3660046115b1565b610fe8565b61029b6104ae366004611626565b611085565b61029b6104c136600461163f565b6110b4565b61029b6104d4366004611626565b611100565b61029b6104e7366004611626565b61112f565b60125461037590610100900460ff1681565b61029b61050c366004611626565b6113db565b61029b61051f36600461163f565b61140a565b61029b61053236600461169a565b6114f4565b61029b610545366004611626565b611529565b6000546001600160a01b0316331461057d5760405162461bcd60e51b8152600401610574906116bc565b60405180910390fd5b8060005b818110156105f0576000600460008686858181106105a1576105a16116f1565b90506020020160208101906105b6919061163f565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806105e88161171d565b915050610581565b50505050565b6105fe611558565b6002548160035461060f9190611736565b11156106565760405162461bcd60e51b815260206004820152601660248201527522bc31b2b2b2103a34329039b0b632903634b6b4ba1760511b6044820152606401610574565b600e5442101580156106775750600f54600e546106739190611736565b4211155b6106b95760405162461bcd60e51b81526020600482015260136024820152722737ba1034b7102321a329903832b934b7b21760691b6044820152606401610574565b60125460ff16156106fb5760405162461bcd60e51b815260206004820152600c60248201526b29b0b632903830bab9b2b21760a11b6044820152606401610574565b600d5433600090815260116020526040902054610719908390611736565b111561075a5760405162461bcd60e51b815260206004820152601060248201526f22bc31b2b2b2102321a3299036b0bc1760811b6044820152606401610574565b600c5433600090815260116020526040902054610778908390611736565b10156107b85760405162461bcd60e51b815260206004820152600f60248201526e2132b637bb902321a3299036b4b71760891b6044820152606401610574565b6005546040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b03909116906323b872dd906064016020604051808303816000875af115801561080f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610833919061174f565b503360009081526011602052604081208054839290610853908490611736565b92505081905550806003600082825461086c9190611736565b90915550506001805550565b50565b6000546001600160a01b031633146108a55760405162461bcd60e51b8152600401610574906116bc565b601280549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146108e95760405162461bcd60e51b8152600401610574906116bc565b6012805460ff19169055565b6000546001600160a01b0316331461091f5760405162461bcd60e51b8152600401610574906116bc565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa15801561096d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610991919061176c565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156109dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a00919061174f565b5050565b610a0c611558565b601254610100900460ff16610a5c5760405162461bcd60e51b815260206004820152601660248201527521b630b4b6903737ba1039ba30b93a32b2103cb2ba1760511b6044820152606401610574565b3360009081526013602052604090205460ff1615610ab55760405162461bcd60e51b815260206004820152601660248201527520b63932b0b23c9031b630b4b6b2b2103a37b5b2b71760511b6044820152606401610574565b600754600003610afe5760405162461bcd60e51b81526020600482015260146024820152732a37b5b2b710283934b1b2902737ba1039b2ba1760611b6044820152606401610574565b336000908152601060209081526040808320546011909252822054610b239190611736565b90506000600660009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9e9190611785565b610ba990600a61188c565b600754610bb6908461189b565b610bc091906118bd565b3360008181526013602052604090819020805460ff19166001179055600654905163a9059cbb60e01b81529293506001600160a01b03169163a9059cbb91610c209185906004016001600160a01b03929092168252602082015260400190565b6020604051808303816000875af1158015610c3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c63919061174f565b505050610c6f60018055565b565b6000546001600160a01b03163314610c9b5760405162461bcd60e51b8152600401610574906116bc565b60008111610cf65760405162461bcd60e51b815260206004820152602260248201527f546f6b656e207072696365206d7573742062652067726561746572207468616e604482015261020360f41b6064820152608401610574565b600755565b6000546001600160a01b03163314610d255760405162461bcd60e51b8152600401610574906116bc565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610d715760405162461bcd60e51b8152600401610574906116bc565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610de55760405162461bcd60e51b8152600401610574906116bc565b600b54600a54610df59190611736565b811015610e445760405162461bcd60e51b815260206004820181905260248201527f464346532063616e2774207374617274206265666f726520574c2073616c652e6044820152606401610574565b600e55565b6000546001600160a01b03163314610e735760405162461bcd60e51b8152600401610574906116bc565b6012805460ff19166001179055565b6000546001600160a01b03163314610eac5760405162461bcd60e51b8152600401610574906116bc565b6005546001600160a01b031663a9059cbb610ecf6000546001600160a01b031690565b6005546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610f17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3b919061176c565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610f86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610faa919061174f565b50610c6f610e49565b6000546001600160a01b03163314610fdd5760405162461bcd60e51b8152600401610574906116bc565b600891909155600955565b6000546001600160a01b031633146110125760405162461bcd60e51b8152600401610574906116bc565b8060005b818110156105f057600160046000868685818110611036576110366116f1565b905060200201602081019061104b919061163f565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061107d8161171d565b915050611016565b6000546001600160a01b031633146110af5760405162461bcd60e51b8152600401610574906116bc565b600b55565b6000546001600160a01b031633146110de5760405162461bcd60e51b8152600401610574906116bc565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461112a5760405162461bcd60e51b8152600401610574906116bc565b600255565b611137611558565b600254816003546111489190611736565b111561118f5760405162461bcd60e51b815260206004820152601660248201527522bc31b2b2b2103a34329039b0b632903634b6b4ba1760511b6044820152606401610574565b3360009081526004602052604090205460ff166111e45760405162461bcd60e51b81526020600482015260136024820152722737ba1034b7103bb434ba32903634b9ba399760691b6044820152606401610574565b600a5442101580156112055750600b54600a546112019190611736565b4211155b6112455760405162461bcd60e51b81526020600482015260116024820152702737ba1034b7102ba6103832b934b7b21760791b6044820152606401610574565b60125460ff16156112875760405162461bcd60e51b815260206004820152600c60248201526b29b0b632903830bab9b2b21760a11b6044820152606401610574565b600954336000908152601060205260409020546112a5908390611736565b11156112e45760405162461bcd60e51b815260206004820152600e60248201526d22bc31b2b2b2102ba61036b0bc1760911b6044820152606401610574565b60085433600090815260106020526040902054611302908390611736565b10156113405760405162461bcd60e51b815260206004820152600d60248201526c2132b637bb902ba61036b4b71760991b6044820152606401610574565b6005546040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015611397573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113bb919061174f565b503360009081526010602052604081208054839290610853908490611736565b6000546001600160a01b031633146114055760405162461bcd60e51b8152600401610574906116bc565b600f55565b6000546001600160a01b031633146114345760405162461bcd60e51b8152600401610574906116bc565b6001600160a01b0381166114995760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610574565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461151e5760405162461bcd60e51b8152600401610574906116bc565b600c91909155600d55565b6000546001600160a01b031633146115535760405162461bcd60e51b8152600401610574906116bc565b600a55565b6002600154036115aa5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610574565b6002600155565b600080602083850312156115c457600080fd5b823567ffffffffffffffff808211156115dc57600080fd5b818501915085601f8301126115f057600080fd5b8135818111156115ff57600080fd5b8660208260051b850101111561161457600080fd5b60209290920196919550909350505050565b60006020828403121561163857600080fd5b5035919050565b60006020828403121561165157600080fd5b81356001600160a01b038116811461166857600080fd5b9392505050565b801515811461087857600080fd5b60006020828403121561168f57600080fd5b81356116688161166f565b600080604083850312156116ad57600080fd5b50508035926020909101359150565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161172f5761172f611707565b5060010190565b8082018082111561174957611749611707565b92915050565b60006020828403121561176157600080fd5b81516116688161166f565b60006020828403121561177e57600080fd5b5051919050565b60006020828403121561179757600080fd5b815160ff8116811461166857600080fd5b600181815b808511156117e35781600019048211156117c9576117c9611707565b808516156117d657918102915b93841c93908002906117ad565b509250929050565b6000826117fa57506001611749565b8161180757506000611749565b816001811461181d576002811461182757611843565b6001915050611749565b60ff84111561183857611838611707565b50506001821b611749565b5060208310610133831016604e8410600b8410161715611866575081810a611749565b61187083836117a8565b806000190482111561188457611884611707565b029392505050565b600061166860ff8416836117eb565b6000826118b857634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176117495761174961170756fea26469706673582212204756cec2d944d4e194e09ebb2c15ec1183923247fde425e13e5fa9446bb99f7e64736f6c63430008130033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061025e5760003560e01c80637d4f4d7111610146578063ba1ae92d116100c3578063dfbd0ae011610087578063dfbd0ae0146104d9578063e5019e27146104ec578063e5b44a39146104fe578063f2fde38b14610511578063f31932cd14610524578063f79423f81461053757600080fd5b8063ba1ae92d14610484578063c3f1d1851461048d578063cc3b92e8146104a0578063d176638b146104b3578063d3d37a31146104c657600080fd5b80638f86f5ea1161010a5780638f86f5ea146104345780639d43b53f1461043c578063a46e899c1461045f578063ae7f4ee514610468578063b8c22d771461047157600080fd5b80637d4f4d71146103f25780638456cb59146104055780638801b4fc1461040d5780638cfeb1e11461041a5780638da5cb5b1461042357600080fd5b80634ac05ad2116101df5780635b477e19116101a35780635b477e191461039f578063651464c0146103a85780636a61e5fc146103b15780636c80cd38146103c45780636f96e99c146103d7578063715018a6146103ea57600080fd5b80634ac05ad2146103325780634b1cd329146103525780634e71d92d14610385578063547cf8361461038d578063569fe81a1461039657600080fd5b806333a80f571161022657806333a80f57146102d157806335660856146102e4578063378c93ad146103045780633f4ba83a146103175780634460d3cf1461031f57600080fd5b80630761c8b9146102635780630b45e8db1461027f5780630d4fda071461028857806314113cf31461029d57806327fc5a4f146102a6575b600080fd5b61026c60075481565b6040519081526020015b60405180910390f35b61026c60025481565b61029b6102963660046115b1565b61054a565b005b61026c60085481565b6005546102b9906001600160a01b031681565b6040516001600160a01b039091168152602001610276565b61029b6102df366004611626565b6105f6565b61026c6102f236600461163f565b60116020526000908152604090205481565b61029b61031236600461167d565b61087b565b61029b6108bf565b61029b61032d36600461163f565b6108f5565b61026c61034036600461163f565b60106020526000908152604090205481565b61037561036036600461163f565b60046020526000908152604090205460ff1681565b6040519015158152602001610276565b61029b610a04565b61026c60035481565b61026c60095481565b61026c600f5481565b61026c600a5481565b61029b6103bf366004611626565b610c71565b6006546102b9906001600160a01b031681565b61029b6103e536600461163f565b610cfb565b61029b610d47565b61029b610400366004611626565b610dbb565b61029b610e49565b6012546103759060ff1681565b61026c600e5481565b6000546001600160a01b03166102b9565b61029b610e82565b61037561044a36600461163f565b60136020526000908152604090205460ff1681565b61026c600c5481565b61026c600b5481565b61029b61047f36600461169a565b610fb3565b61026c600d5481565b61029b61049b3660046115b1565b610fe8565b61029b6104ae366004611626565b611085565b61029b6104c136600461163f565b6110b4565b61029b6104d4366004611626565b611100565b61029b6104e7366004611626565b61112f565b60125461037590610100900460ff1681565b61029b61050c366004611626565b6113db565b61029b61051f36600461163f565b61140a565b61029b61053236600461169a565b6114f4565b61029b610545366004611626565b611529565b6000546001600160a01b0316331461057d5760405162461bcd60e51b8152600401610574906116bc565b60405180910390fd5b8060005b818110156105f0576000600460008686858181106105a1576105a16116f1565b90506020020160208101906105b6919061163f565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806105e88161171d565b915050610581565b50505050565b6105fe611558565b6002548160035461060f9190611736565b11156106565760405162461bcd60e51b815260206004820152601660248201527522bc31b2b2b2103a34329039b0b632903634b6b4ba1760511b6044820152606401610574565b600e5442101580156106775750600f54600e546106739190611736565b4211155b6106b95760405162461bcd60e51b81526020600482015260136024820152722737ba1034b7102321a329903832b934b7b21760691b6044820152606401610574565b60125460ff16156106fb5760405162461bcd60e51b815260206004820152600c60248201526b29b0b632903830bab9b2b21760a11b6044820152606401610574565b600d5433600090815260116020526040902054610719908390611736565b111561075a5760405162461bcd60e51b815260206004820152601060248201526f22bc31b2b2b2102321a3299036b0bc1760811b6044820152606401610574565b600c5433600090815260116020526040902054610778908390611736565b10156107b85760405162461bcd60e51b815260206004820152600f60248201526e2132b637bb902321a3299036b4b71760891b6044820152606401610574565b6005546040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b03909116906323b872dd906064016020604051808303816000875af115801561080f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610833919061174f565b503360009081526011602052604081208054839290610853908490611736565b92505081905550806003600082825461086c9190611736565b90915550506001805550565b50565b6000546001600160a01b031633146108a55760405162461bcd60e51b8152600401610574906116bc565b601280549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146108e95760405162461bcd60e51b8152600401610574906116bc565b6012805460ff19169055565b6000546001600160a01b0316331461091f5760405162461bcd60e51b8152600401610574906116bc565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa15801561096d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610991919061176c565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156109dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a00919061174f565b5050565b610a0c611558565b601254610100900460ff16610a5c5760405162461bcd60e51b815260206004820152601660248201527521b630b4b6903737ba1039ba30b93a32b2103cb2ba1760511b6044820152606401610574565b3360009081526013602052604090205460ff1615610ab55760405162461bcd60e51b815260206004820152601660248201527520b63932b0b23c9031b630b4b6b2b2103a37b5b2b71760511b6044820152606401610574565b600754600003610afe5760405162461bcd60e51b81526020600482015260146024820152732a37b5b2b710283934b1b2902737ba1039b2ba1760611b6044820152606401610574565b336000908152601060209081526040808320546011909252822054610b239190611736565b90506000600660009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9e9190611785565b610ba990600a61188c565b600754610bb6908461189b565b610bc091906118bd565b3360008181526013602052604090819020805460ff19166001179055600654905163a9059cbb60e01b81529293506001600160a01b03169163a9059cbb91610c209185906004016001600160a01b03929092168252602082015260400190565b6020604051808303816000875af1158015610c3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c63919061174f565b505050610c6f60018055565b565b6000546001600160a01b03163314610c9b5760405162461bcd60e51b8152600401610574906116bc565b60008111610cf65760405162461bcd60e51b815260206004820152602260248201527f546f6b656e207072696365206d7573742062652067726561746572207468616e604482015261020360f41b6064820152608401610574565b600755565b6000546001600160a01b03163314610d255760405162461bcd60e51b8152600401610574906116bc565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610d715760405162461bcd60e51b8152600401610574906116bc565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610de55760405162461bcd60e51b8152600401610574906116bc565b600b54600a54610df59190611736565b811015610e445760405162461bcd60e51b815260206004820181905260248201527f464346532063616e2774207374617274206265666f726520574c2073616c652e6044820152606401610574565b600e55565b6000546001600160a01b03163314610e735760405162461bcd60e51b8152600401610574906116bc565b6012805460ff19166001179055565b6000546001600160a01b03163314610eac5760405162461bcd60e51b8152600401610574906116bc565b6005546001600160a01b031663a9059cbb610ecf6000546001600160a01b031690565b6005546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610f17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3b919061176c565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610f86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610faa919061174f565b50610c6f610e49565b6000546001600160a01b03163314610fdd5760405162461bcd60e51b8152600401610574906116bc565b600891909155600955565b6000546001600160a01b031633146110125760405162461bcd60e51b8152600401610574906116bc565b8060005b818110156105f057600160046000868685818110611036576110366116f1565b905060200201602081019061104b919061163f565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061107d8161171d565b915050611016565b6000546001600160a01b031633146110af5760405162461bcd60e51b8152600401610574906116bc565b600b55565b6000546001600160a01b031633146110de5760405162461bcd60e51b8152600401610574906116bc565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461112a5760405162461bcd60e51b8152600401610574906116bc565b600255565b611137611558565b600254816003546111489190611736565b111561118f5760405162461bcd60e51b815260206004820152601660248201527522bc31b2b2b2103a34329039b0b632903634b6b4ba1760511b6044820152606401610574565b3360009081526004602052604090205460ff166111e45760405162461bcd60e51b81526020600482015260136024820152722737ba1034b7103bb434ba32903634b9ba399760691b6044820152606401610574565b600a5442101580156112055750600b54600a546112019190611736565b4211155b6112455760405162461bcd60e51b81526020600482015260116024820152702737ba1034b7102ba6103832b934b7b21760791b6044820152606401610574565b60125460ff16156112875760405162461bcd60e51b815260206004820152600c60248201526b29b0b632903830bab9b2b21760a11b6044820152606401610574565b600954336000908152601060205260409020546112a5908390611736565b11156112e45760405162461bcd60e51b815260206004820152600e60248201526d22bc31b2b2b2102ba61036b0bc1760911b6044820152606401610574565b60085433600090815260106020526040902054611302908390611736565b10156113405760405162461bcd60e51b815260206004820152600d60248201526c2132b637bb902ba61036b4b71760991b6044820152606401610574565b6005546040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015611397573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113bb919061174f565b503360009081526010602052604081208054839290610853908490611736565b6000546001600160a01b031633146114055760405162461bcd60e51b8152600401610574906116bc565b600f55565b6000546001600160a01b031633146114345760405162461bcd60e51b8152600401610574906116bc565b6001600160a01b0381166114995760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610574565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461151e5760405162461bcd60e51b8152600401610574906116bc565b600c91909155600d55565b6000546001600160a01b031633146115535760405162461bcd60e51b8152600401610574906116bc565b600a55565b6002600154036115aa5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610574565b6002600155565b600080602083850312156115c457600080fd5b823567ffffffffffffffff808211156115dc57600080fd5b818501915085601f8301126115f057600080fd5b8135818111156115ff57600080fd5b8660208260051b850101111561161457600080fd5b60209290920196919550909350505050565b60006020828403121561163857600080fd5b5035919050565b60006020828403121561165157600080fd5b81356001600160a01b038116811461166857600080fd5b9392505050565b801515811461087857600080fd5b60006020828403121561168f57600080fd5b81356116688161166f565b600080604083850312156116ad57600080fd5b50508035926020909101359150565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161172f5761172f611707565b5060010190565b8082018082111561174957611749611707565b92915050565b60006020828403121561176157600080fd5b81516116688161166f565b60006020828403121561177e57600080fd5b5051919050565b60006020828403121561179757600080fd5b815160ff8116811461166857600080fd5b600181815b808511156117e35781600019048211156117c9576117c9611707565b808516156117d657918102915b93841c93908002906117ad565b509250929050565b6000826117fa57506001611749565b8161180757506000611749565b816001811461181d576002811461182757611843565b6001915050611749565b60ff84111561183857611838611707565b50506001821b611749565b5060208310610133831016604e8410600b8410161715611866575081810a611749565b61187083836117a8565b806000190482111561188457611884611707565b029392505050565b600061166860ff8416836117eb565b6000826118b857634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176117495761174961170756fea26469706673582212204756cec2d944d4e194e09ebb2c15ec1183923247fde425e13e5fa9446bb99f7e64736f6c63430008130033
Deployed Bytecode Sourcemap
5268:5906:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5636:35;;;;;;;;;160:25:1;;;148:2;133:18;5636:35:0;;;;;;;;5354:40;;;;;;8700:223;;;;;;:::i;:::-;;:::i;:::-;;5755:41;;;;;;5523:24;;;;;-1:-1:-1;;;;;5523:24:0;;;;;;-1:-1:-1;;;;;980:32:1;;;962:51;;950:2;935:18;5523:24:0;816:203:1;9709:735:0;;;;;;:::i;:::-;;:::i;6402:55::-;;;;;;:::i;:::-;;;;;;;;;;;;;;8369:96;;;;;;:::i;:::-;;:::i;8128:70::-;;;:::i;11025:146::-;;;;;;:::i;:::-;;:::i;6342:53::-;;;;;;:::i;:::-;;;;;;;;;;;;;;5472:44;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2034:14:1;;2027:22;2009:41;;1997:2;1982:18;5472:44:0;1869:187:1;10452:544:0;;;:::i;5430:33::-;;;;;;5803:43;;;;;;6298:35;;;;;;5904:55;;;;;;7316:175;;;;;;:::i;:::-;;:::i;5554:23::-;;;;;-1:-1:-1;;;;;5554:23:0;;;7180:95;;;;;;:::i;:::-;;:::i;4717:148::-;;;:::i;7836:209::-;;;;;;:::i;:::-;;:::i;8053:67::-;;;:::i;6484:26::-;;;;;;;;;6234:57;;;;;;4503:79;4541:7;4568:6;-1:-1:-1;;;;;4568:6:0;4503:79;;8206:155;;;:::i;6554:41::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;6077:43;;;;;;5966:33;;;;;;6735:161;;;;;;:::i;:::-;;:::i;6127:45::-;;;;;;8473:219;;;;;;:::i;:::-;;:::i;7499:99::-;;;;;;:::i;:::-;;:::i;7079:93::-;;;;;;:::i;:::-;;:::i;6636:91::-;;;;;;:::i;:::-;;:::i;8931:770::-;;;;;;:::i;:::-;;:::i;6517:30::-;;;;;;;;;;;;7606:103;;;;;;:::i;:::-;;:::i;4873:244::-;;;;;;:::i;:::-;;:::i;6904:167::-;;;;;;:::i;:::-;;:::i;7717:111::-;;;;;;:::i;:::-;;:::i;8700:223::-;4630:6;;-1:-1:-1;;;;;4630:6:0;3425:10;4630:22;4622:67;;;;-1:-1:-1;;;4622:67:0;;;;;;;:::i;:::-;;;;;;;;;8794:10;8777:14:::1;8822:94;8842:6;8840:1;:8;8822:94;;;8899:5;8870:11;:26;8882:10;;8893:1;8882:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8870:26:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;8870:26:0;:34;;-1:-1:-1;;8870:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8850:3;::::1;::::0;::::1;:::i;:::-;;;;8822:94;;;;8766:157;8700:223:::0;;:::o;9709:735::-;2345:21;:19;:21::i;:::-;9813:8:::1;;9803:6;9786:14;;:23;;;;:::i;:::-;:35;;9778:70;;;::::0;-1:-1:-1;;;9778:70:0;;3411:2:1;9778:70:0::1;::::0;::::1;3393:21:1::0;3450:2;3430:18;;;3423:30;-1:-1:-1;;;3469:18:1;;;3462:52;3531:18;;9778:70:0::1;3209:346:1::0;9778:70:0::1;9907:15;;9888;:34;;:86;;;;;9963:11;;9945:15;;:29;;;;:::i;:::-;9926:15;:48;;9888:86;9880:118;;;::::0;-1:-1:-1;;;9880:118:0;;3762:2:1;9880:118:0::1;::::0;::::1;3744:21:1::0;3801:2;3781:18;;;3774:30;-1:-1:-1;;;3820:18:1;;;3813:49;3879:18;;9880:118:0::1;3560:343:1::0;9880:118:0::1;10018:7;::::0;::::1;;10017:8;10009:33;;;::::0;-1:-1:-1;;;10009:33:0;;4110:2:1;10009:33:0::1;::::0;::::1;4092:21:1::0;4149:2;4129:18;;;4122:30;-1:-1:-1;;;4168:18:1;;;4161:42;4220:18;;10009:33:0::1;3908:336:1::0;10009:33:0::1;10105:15;::::0;10081:10:::1;10061:31;::::0;;;:19:::1;:31;::::0;;;;;:40:::1;::::0;10095:6;;10061:40:::1;:::i;:::-;:59;;10053:88;;;::::0;-1:-1:-1;;;10053:88:0;;4451:2:1;10053:88:0::1;::::0;::::1;4433:21:1::0;4490:2;4470:18;;;4463:30;-1:-1:-1;;;4509:18:1;;;4502:46;4565:18;;10053:88:0::1;4249:340:1::0;10053:88:0::1;10204:15;::::0;10180:10:::1;10160:31;::::0;;;:19:::1;:31;::::0;;;;;:40:::1;::::0;10194:6;;10160:40:::1;:::i;:::-;:59;;10152:87;;;::::0;-1:-1:-1;;;10152:87:0;;4796:2:1;10152:87:0::1;::::0;::::1;4778:21:1::0;4835:2;4815:18;;;4808:30;-1:-1:-1;;;4854:18:1;;;4847:45;4909:18;;10152:87:0::1;4594:339:1::0;10152:87:0::1;10257:9;::::0;10250:65:::1;::::0;-1:-1:-1;;;10250:65:0;;10281:10:::1;10250:65;::::0;::::1;5178:34:1::0;10301:4:0::1;5228:18:1::0;;;5221:43;5280:18;;;5273:34;;;-1:-1:-1;;;;;10257:9:0;;::::1;::::0;10250:30:::1;::::0;5113:18:1;;10250:65:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;10346:10:0::1;10326:31;::::0;;;:19:::1;:31;::::0;;;;:41;;10361:6;;10326:31;:41:::1;::::0;10361:6;;10326:41:::1;:::i;:::-;;;;;;;;10403:6;10385:14;;:24;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;1783:1:0;2909:22;;9709:735;:::o;2389:20::-;9709:735;:::o;8369:96::-;4630:6;;-1:-1:-1;;;;;4630:6:0;3425:10;4630:22;4622:67;;;;-1:-1:-1;;;4622:67:0;;;;;;;:::i;:::-;8435:10:::1;:22:::0;;;::::1;;;;-1:-1:-1::0;;8435:22:0;;::::1;::::0;;;::::1;::::0;;8369:96::o;8128:70::-;4630:6;;-1:-1:-1;;;;;4630:6:0;3425:10;4630:22;4622:67;;;;-1:-1:-1;;;4622:67:0;;;;;;;:::i;:::-;8175:7:::1;:15:::0;;-1:-1:-1;;8175:15:0::1;::::0;;8128:70::o;11025:146::-;4630:6;;-1:-1:-1;;;;;4630:6:0;3425:10;4630:22;4622:67;;;;-1:-1:-1;;;4622:67:0;;;;;;;:::i;:::-;11124:38:::1;::::0;-1:-1:-1;;;11124:38:0;;11156:4:::1;11124:38;::::0;::::1;962:51:1::0;-1:-1:-1;;;;;11089:22:0;::::1;::::0;::::1;::::0;11112:10:::1;::::0;11089:22;;11124:23:::1;::::0;935:18:1;;11124:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11089:74;::::0;-1:-1:-1;;;;;;11089:74:0::1;::::0;;;;;;-1:-1:-1;;;;;5949:32:1;;;11089:74:0::1;::::0;::::1;5931:51:1::0;5998:18;;;5991:34;5904:18;;11089:74:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11025:146:::0;:::o;10452:544::-;2345:21;:19;:21::i;:::-;10508:10:::1;::::0;::::1;::::0;::::1;;;10500:45;;;::::0;-1:-1:-1;;;10500:45:0;;6238:2:1;10500:45:0::1;::::0;::::1;6220:21:1::0;6277:2;6257:18;;;6250:30;-1:-1:-1;;;6296:18:1;;;6289:52;6358:18;;10500:45:0::1;6036:346:1::0;10500:45:0::1;10574:10;10565:20;::::0;;;:8:::1;:20;::::0;;;;;::::1;;10564:21;10556:56;;;::::0;-1:-1:-1;;;10556:56:0;;6589:2:1;10556:56:0::1;::::0;::::1;6571:21:1::0;6628:2;6608:18;;;6601:30;-1:-1:-1;;;6647:18:1;;;6640:52;6709:18;;10556:56:0::1;6387:346:1::0;10556:56:0::1;10631:11;;10646:1;10631:16:::0;10623:49:::1;;;::::0;-1:-1:-1;;;10623:49:0;;6940:2:1;10623:49:0::1;::::0;::::1;6922:21:1::0;6979:2;6959:18;;;6952:30;-1:-1:-1;;;6998:18:1;;;6991:50;7058:18;;10623:49:0::1;6738:344:1::0;10623:49:0::1;10760:10;10683:22;10742:29:::0;;;:17:::1;:29;::::0;;;;;;;;10708:19:::1;:31:::0;;;;;;:63:::1;::::0;10742:29;10708:63:::1;:::i;:::-;10683:88;;10782:23;10850:8;;;;;;;;;-1:-1:-1::0;;;;;10850:8:0::1;-1:-1:-1::0;;;;;10843:25:0::1;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10839:31;::::0;:2:::1;:31;:::i;:::-;10825:11;::::0;10808:28:::1;::::0;:14;:28:::1;:::i;:::-;:62;;;;:::i;:::-;10904:10;10895:20;::::0;;;:8:::1;:20;::::0;;;;;;:27;;-1:-1:-1;;10895:27:0::1;10918:4;10895:27;::::0;;10940:8:::1;::::0;10933:54;;-1:-1:-1;;;10933:54:0;;10782:88;;-1:-1:-1;;;;;;10940:8:0::1;::::0;10933:25:::1;::::0;:54:::1;::::0;10782:88;;10933:54:::1;;-1:-1:-1::0;;;;;5949:32:1;;;;5931:51;;6013:2;5998:18;;5991:34;5919:2;5904:18;;5757:274;10933:54:0::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10489:507;;2389:20:::0;1783:1;2909:22;;2726:213;2389:20;10452:544::o;7316:175::-;4630:6;;-1:-1:-1;;;;;4630:6:0;3425:10;4630:22;4622:67;;;;-1:-1:-1;;;4622:67:0;;;;;;;:::i;:::-;7408:1:::1;7395:10;:14;7387:61;;;::::0;-1:-1:-1;;;7387:61:0;;9345:2:1;7387:61:0::1;::::0;::::1;9327:21:1::0;9384:2;9364:18;;;9357:30;9423:34;9403:18;;;9396:62;-1:-1:-1;;;9474:18:1;;;9467:32;9516:19;;7387:61:0::1;9143:398:1::0;7387:61:0::1;7459:11;:24:::0;7316:175::o;7180:95::-;4630:6;;-1:-1:-1;;;;;4630:6:0;3425:10;4630:22;4622:67;;;;-1:-1:-1;;;4622:67:0;;;;;;;:::i;:::-;7247:9:::1;:20:::0;;-1:-1:-1;;;;;;7247:20:0::1;-1:-1:-1::0;;;;;7247:20:0;;;::::1;::::0;;;::::1;::::0;;7180:95::o;4717:148::-;4630:6;;-1:-1:-1;;;;;4630:6:0;3425:10;4630:22;4622:67;;;;-1:-1:-1;;;4622:67:0;;;;;;;:::i;:::-;4824:1:::1;4808:6:::0;;4787:40:::1;::::0;-1:-1:-1;;;;;4808:6:0;;::::1;::::0;4787:40:::1;::::0;4824:1;;4787:40:::1;4855:1;4838:19:::0;;-1:-1:-1;;;;;;4838:19:0::1;::::0;;4717:148::o;7836:209::-;4630:6;;-1:-1:-1;;;;;4630:6:0;3425:10;4630:22;4622:67;;;;-1:-1:-1;;;4622:67:0;;;;;;;:::i;:::-;7953:9:::1;;7937:13;;:25;;;;:::i;:::-;7924:9;:38;;7916:83;;;::::0;-1:-1:-1;;;7916:83:0;;9748:2:1;7916:83:0::1;::::0;::::1;9730:21:1::0;;;9767:18;;;9760:30;9826:34;9806:18;;;9799:62;9878:18;;7916:83:0::1;9546:356:1::0;7916:83:0::1;8010:15;:27:::0;7836:209::o;8053:67::-;4630:6;;-1:-1:-1;;;;;4630:6:0;3425:10;4630:22;4622:67;;;;-1:-1:-1;;;4622:67:0;;;;;;;:::i;:::-;8098:7:::1;:14:::0;;-1:-1:-1;;8098:14:0::1;8108:4;8098:14;::::0;;8053:67::o;8206:155::-;4630:6;;-1:-1:-1;;;;;4630:6:0;3425:10;4630:22;4622:67;;;;-1:-1:-1;;;4622:67:0;;;;;;;:::i;:::-;8263:9:::1;::::0;-1:-1:-1;;;;;8263:9:0::1;8256:26;8283:7;4541::::0;4568:6;-1:-1:-1;;;;;4568:6:0;;4503:79;8283:7:::1;8299:9;::::0;8292:42:::1;::::0;-1:-1:-1;;;8292:42:0;;8328:4:::1;8292:42;::::0;::::1;962:51:1::0;-1:-1:-1;;;;;8299:9:0;;::::1;::::0;8292:27:::1;::::0;935:18:1;;8292:42:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8256:79;::::0;-1:-1:-1;;;;;;8256:79:0::1;::::0;;;;;;-1:-1:-1;;;;;5949:32:1;;;8256:79:0::1;::::0;::::1;5931:51:1::0;5998:18;;;5991:34;5904:18;;8256:79:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8346:7;:5;:7::i;6735:161::-:0;4630:6;;-1:-1:-1;;;;;4630:6:0;3425:10;4630:22;4622:67;;;;-1:-1:-1;;;4622:67:0;;;;;;;:::i;:::-;6827:13:::1;:25:::0;;;;6863:13:::1;:25:::0;6735:161::o;8473:219::-;4630:6;;-1:-1:-1;;;;;4630:6:0;3425:10;4630:22;4622:67;;;;-1:-1:-1;;;4622:67:0;;;;;;;:::i;:::-;8564:10;8547:14:::1;8592:93;8612:6;8610:1;:8;8592:93;;;8669:4;8640:11;:26;8652:10;;8663:1;8652:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8640:26:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;8640:26:0;:33;;-1:-1:-1;;8640:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8620:3;::::1;::::0;::::1;:::i;:::-;;;;8592:93;;7499:99:::0;4630:6;;-1:-1:-1;;;;;4630:6:0;3425:10;4630:22;4622:67;;;;-1:-1:-1;;;4622:67:0;;;;;;;:::i;:::-;7568:9:::1;:22:::0;7499:99::o;7079:93::-;4630:6;;-1:-1:-1;;;;;4630:6:0;3425:10;4630:22;4622:67;;;;-1:-1:-1;;;4622:67:0;;;;;;;:::i;:::-;7145:8:::1;:19:::0;;-1:-1:-1;;;;;;7145:19:0::1;-1:-1:-1::0;;;;;7145:19:0;;;::::1;::::0;;;::::1;::::0;;7079:93::o;6636:91::-;4630:6;;-1:-1:-1;;;;;4630:6:0;3425:10;4630:22;4622:67;;;;-1:-1:-1;;;4622:67:0;;;;;;;:::i;:::-;6701:8:::1;:18:::0;6636:91::o;8931:770::-;2345:21;:19;:21::i;:::-;9033:8:::1;;9023:6;9006:14;;:23;;;;:::i;:::-;:35;;8998:70;;;::::0;-1:-1:-1;;;8998:70:0;;3411:2:1;8998:70:0::1;::::0;::::1;3393:21:1::0;3450:2;3430:18;;;3423:30;-1:-1:-1;;;3469:18:1;;;3462:52;3531:18;;8998:70:0::1;3209:346:1::0;8998:70:0::1;9120:10;9108:23;::::0;;;:11:::1;:23;::::0;;;;;::::1;;9100:55;;;::::0;-1:-1:-1;;;9100:55:0;;10109:2:1;9100:55:0::1;::::0;::::1;10091:21:1::0;10148:2;10128:18;;;10121:30;-1:-1:-1;;;10167:18:1;;;10160:49;10226:18;;9100:55:0::1;9907:343:1::0;9100:55:0::1;9193:13;;9174:15;:32;;:80;;;;;9245:9;;9229:13;;:25;;;;:::i;:::-;9210:15;:44;;9174:80;9166:110;;;::::0;-1:-1:-1;;;9166:110:0;;10457:2:1;9166:110:0::1;::::0;::::1;10439:21:1::0;10496:2;10476:18;;;10469:30;-1:-1:-1;;;10515:18:1;;;10508:47;10572:18;;9166:110:0::1;10255:341:1::0;9166:110:0::1;9296:7;::::0;::::1;;9295:8;9287:33;;;::::0;-1:-1:-1;;;9287:33:0;;4110:2:1;9287:33:0::1;::::0;::::1;4092:21:1::0;4149:2;4129:18;;;4122:30;-1:-1:-1;;;4168:18:1;;;4161:42;4220:18;;9287:33:0::1;3908:336:1::0;9287:33:0::1;9381:13;::::0;9357:10:::1;9339:29;::::0;;;:17:::1;:29;::::0;;;;;:38:::1;::::0;9371:6;;9339:38:::1;:::i;:::-;:55;;9331:82;;;::::0;-1:-1:-1;;;9331:82:0;;10803:2:1;9331:82:0::1;::::0;::::1;10785:21:1::0;10842:2;10822:18;;;10815:30;-1:-1:-1;;;10861:18:1;;;10854:44;10915:18;;9331:82:0::1;10601:338:1::0;9331:82:0::1;9474:13;::::0;9450:10:::1;9432:29;::::0;;;:17:::1;:29;::::0;;;;;:38:::1;::::0;9464:6;;9432:38:::1;:::i;:::-;:55;;9424:81;;;::::0;-1:-1:-1;;;9424:81:0;;11146:2:1;9424:81:0::1;::::0;::::1;11128:21:1::0;11185:2;11165:18;;;11158:30;-1:-1:-1;;;11204:18:1;;;11197:43;11257:18;;9424:81:0::1;10944:337:1::0;9424:81:0::1;9523:9;::::0;9516:65:::1;::::0;-1:-1:-1;;;9516:65:0;;9547:10:::1;9516:65;::::0;::::1;5178:34:1::0;9567:4:0::1;5228:18:1::0;;;5221:43;5280:18;;;5273:34;;;-1:-1:-1;;;;;9523:9:0;;::::1;::::0;9516:30:::1;::::0;5113:18:1;;9516:65:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;9610:10:0::1;9592:29;::::0;;;:17:::1;:29;::::0;;;;:39;;9625:6;;9592:29;:39:::1;::::0;9625:6;;9592:39:::1;:::i;7606:103::-:0;4630:6;;-1:-1:-1;;;;;4630:6:0;3425:10;4630:22;4622:67;;;;-1:-1:-1;;;4622:67:0;;;;;;;:::i;:::-;7677:11:::1;:24:::0;7606:103::o;4873:244::-;4630:6;;-1:-1:-1;;;;;4630:6:0;3425:10;4630:22;4622:67;;;;-1:-1:-1;;;4622:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4962:22:0;::::1;4954:73;;;::::0;-1:-1:-1;;;4954:73:0;;11488:2:1;4954:73:0::1;::::0;::::1;11470:21:1::0;11527:2;11507:18;;;11500:30;11566:34;11546:18;;;11539:62;-1:-1:-1;;;11617:18:1;;;11610:36;11663:19;;4954:73:0::1;11286:402:1::0;4954:73:0::1;5064:6;::::0;;5043:38:::1;::::0;-1:-1:-1;;;;;5043:38:0;;::::1;::::0;5064:6;::::1;::::0;5043:38:::1;::::0;::::1;5092:6;:17:::0;;-1:-1:-1;;;;;;5092:17:0::1;-1:-1:-1::0;;;;;5092:17:0;;;::::1;::::0;;;::::1;::::0;;4873:244::o;6904:167::-;4630:6;;-1:-1:-1;;;;;4630:6:0;3425:10;4630:22;4622:67;;;;-1:-1:-1;;;4622:67:0;;;;;;;:::i;:::-;6998:15:::1;:27:::0;;;;7036:15:::1;:27:::0;6904:167::o;7717:111::-;4630:6;;-1:-1:-1;;;;;4630:6:0;3425:10;4630:22;4622:67;;;;-1:-1:-1;;;4622:67:0;;;;;;;:::i;:::-;7795:13:::1;:25:::0;7717:111::o;2425:293::-;1827:1;2559:7;;:19;2551:63;;;;-1:-1:-1;;;2551:63:0;;11895:2:1;2551:63:0;;;11877:21:1;11934:2;11914:18;;;11907:30;11973:33;11953:18;;;11946:61;12024:18;;2551:63:0;11693:355:1;2551:63:0;1827:1;2692:7;:18;2425:293::o;196:615:1:-;282:6;290;343:2;331:9;322:7;318:23;314:32;311:52;;;359:1;356;349:12;311:52;399:9;386:23;428:18;469:2;461:6;458:14;455:34;;;485:1;482;475:12;455:34;523:6;512:9;508:22;498:32;;568:7;561:4;557:2;553:13;549:27;539:55;;590:1;587;580:12;539:55;630:2;617:16;656:2;648:6;645:14;642:34;;;672:1;669;662:12;642:34;725:7;720:2;710:6;707:1;703:14;699:2;695:23;691:32;688:45;685:65;;;746:1;743;736:12;685:65;777:2;769:11;;;;;799:6;;-1:-1:-1;196:615:1;;-1:-1:-1;;;;196:615:1:o;1024:180::-;1083:6;1136:2;1124:9;1115:7;1111:23;1107:32;1104:52;;;1152:1;1149;1142:12;1104:52;-1:-1:-1;1175:23:1;;1024:180;-1:-1:-1;1024:180:1:o;1209:286::-;1268:6;1321:2;1309:9;1300:7;1296:23;1292:32;1289:52;;;1337:1;1334;1327:12;1289:52;1363:23;;-1:-1:-1;;;;;1415:31:1;;1405:42;;1395:70;;1461:1;1458;1451:12;1395:70;1484:5;1209:286;-1:-1:-1;;;1209:286:1:o;1500:118::-;1586:5;1579:13;1572:21;1565:5;1562:32;1552:60;;1608:1;1605;1598:12;1623:241;1679:6;1732:2;1720:9;1711:7;1707:23;1703:32;1700:52;;;1748:1;1745;1738:12;1700:52;1787:9;1774:23;1806:28;1828:5;1806:28;:::i;2061:248::-;2129:6;2137;2190:2;2178:9;2169:7;2165:23;2161:32;2158:52;;;2206:1;2203;2196:12;2158:52;-1:-1:-1;;2229:23:1;;;2299:2;2284:18;;;2271:32;;-1:-1:-1;2061:248:1:o;2314:356::-;2516:2;2498:21;;;2535:18;;;2528:30;2594:34;2589:2;2574:18;;2567:62;2661:2;2646:18;;2314:356::o;2675:127::-;2736:10;2731:3;2727:20;2724:1;2717:31;2767:4;2764:1;2757:15;2791:4;2788:1;2781:15;2807:127;2868:10;2863:3;2859:20;2856:1;2849:31;2899:4;2896:1;2889:15;2923:4;2920:1;2913:15;2939:135;2978:3;2999:17;;;2996:43;;3019:18;;:::i;:::-;-1:-1:-1;3066:1:1;3055:13;;2939:135::o;3079:125::-;3144:9;;;3165:10;;;3162:36;;;3178:18;;:::i;:::-;3079:125;;;;:::o;5318:245::-;5385:6;5438:2;5426:9;5417:7;5413:23;5409:32;5406:52;;;5454:1;5451;5444:12;5406:52;5486:9;5480:16;5505:28;5527:5;5505:28;:::i;5568:184::-;5638:6;5691:2;5679:9;5670:7;5666:23;5662:32;5659:52;;;5707:1;5704;5697:12;5659:52;-1:-1:-1;5730:16:1;;5568:184;-1:-1:-1;5568:184:1:o;7087:273::-;7155:6;7208:2;7196:9;7187:7;7183:23;7179:32;7176:52;;;7224:1;7221;7214:12;7176:52;7256:9;7250:16;7306:4;7299:5;7295:16;7288:5;7285:27;7275:55;;7326:1;7323;7316:12;7365:422;7454:1;7497:5;7454:1;7511:270;7532:7;7522:8;7519:21;7511:270;;;7591:4;7587:1;7583:6;7579:17;7573:4;7570:27;7567:53;;;7600:18;;:::i;:::-;7650:7;7640:8;7636:22;7633:55;;;7670:16;;;;7633:55;7749:22;;;;7709:15;;;;7511:270;;;7515:3;7365:422;;;;;:::o;7792:806::-;7841:5;7871:8;7861:80;;-1:-1:-1;7912:1:1;7926:5;;7861:80;7960:4;7950:76;;-1:-1:-1;7997:1:1;8011:5;;7950:76;8042:4;8060:1;8055:59;;;;8128:1;8123:130;;;;8035:218;;8055:59;8085:1;8076:10;;8099:5;;;8123:130;8160:3;8150:8;8147:17;8144:43;;;8167:18;;:::i;:::-;-1:-1:-1;;8223:1:1;8209:16;;8238:5;;8035:218;;8337:2;8327:8;8324:16;8318:3;8312:4;8309:13;8305:36;8299:2;8289:8;8286:16;8281:2;8275:4;8272:12;8268:35;8265:77;8262:159;;;-1:-1:-1;8374:19:1;;;8406:5;;8262:159;8453:34;8478:8;8472:4;8453:34;:::i;:::-;8523:6;8519:1;8515:6;8511:19;8502:7;8499:32;8496:58;;;8534:18;;:::i;:::-;8572:20;;7792:806;-1:-1:-1;;;7792:806:1:o;8603:140::-;8661:5;8690:47;8731:4;8721:8;8717:19;8711:4;8690:47;:::i;8748:217::-;8788:1;8814;8804:132;;8858:10;8853:3;8849:20;8846:1;8839:31;8893:4;8890:1;8883:15;8921:4;8918:1;8911:15;8804:132;-1:-1:-1;8950:9:1;;8748:217::o;8970:168::-;9043:9;;;9074;;9091:15;;;9085:22;;9071:37;9061:71;;9112:18;;:::i
Swarm Source
ipfs://4756cec2d944d4e194e09ebb2c15ec1183923247fde425e13e5fa9446bb99f7e
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 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.