Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 99 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw | 18119236 | 474 days ago | IN | 0 ETH | 0.0004547 | ||||
Add Liquidity An... | 16873562 | 649 days ago | IN | 0 ETH | 0.00375267 | ||||
Transfer | 16850975 | 652 days ago | IN | 2.389437 ETH | 0.00073574 | ||||
Add Liquidity An... | 16850815 | 652 days ago | IN | 0 ETH | 0.00722393 | ||||
Transfer | 16847473 | 652 days ago | IN | 1.02084 ETH | 0.00060937 | ||||
Transfer | 16846942 | 653 days ago | IN | 1.150106 ETH | 0.00053223 | ||||
Add Liquidity An... | 16792864 | 660 days ago | IN | 0 ETH | 0.00989604 | ||||
Transfer | 16638864 | 682 days ago | IN | 1.973361 ETH | 0.0008018 | ||||
Add Liquidity An... | 16638781 | 682 days ago | IN | 0 ETH | 0.01092149 | ||||
Transfer | 16634003 | 682 days ago | IN | 1.108745 ETH | 0.00069506 | ||||
Add Liquidity An... | 16605593 | 686 days ago | IN | 0 ETH | 0.00689945 | ||||
Add Liquidity An... | 16538850 | 696 days ago | IN | 0 ETH | 0.00476758 | ||||
Add Liquidity An... | 16500578 | 701 days ago | IN | 0 ETH | 0.00505499 | ||||
Add Liquidity An... | 16487055 | 703 days ago | IN | 0 ETH | 0.00578642 | ||||
Add Liquidity An... | 16447185 | 709 days ago | IN | 0 ETH | 0.00374478 | ||||
Add Liquidity An... | 16396687 | 716 days ago | IN | 0 ETH | 0.00387137 | ||||
Add Liquidity An... | 16395659 | 716 days ago | IN | 0 ETH | 0.00434397 | ||||
Add Liquidity An... | 16386060 | 717 days ago | IN | 0 ETH | 0.00585997 | ||||
Add Liquidity An... | 16237509 | 738 days ago | IN | 0 ETH | 0.0029915 | ||||
Transfer | 16182305 | 746 days ago | IN | 0.850719 ETH | 0.00031888 | ||||
Add Liquidity An... | 16181699 | 746 days ago | IN | 0 ETH | 0.00413669 | ||||
Transfer | 16181652 | 746 days ago | IN | 1.623283 ETH | 0.00033016 | ||||
Add Liquidity An... | 16131618 | 753 days ago | IN | 0 ETH | 0.0040334 | ||||
Add Liquidity An... | 16118420 | 754 days ago | IN | 0 ETH | 0.00326834 | ||||
Add Liquidity An... | 15970550 | 775 days ago | IN | 0 ETH | 0.00521353 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
18119236 | 474 days ago | 2.5121655 ETH | ||||
16873562 | 649 days ago | 0.00146746 ETH | ||||
16873562 | 649 days ago | 0.03029446 ETH | ||||
16850815 | 652 days ago | 0.00286102 ETH | ||||
16850815 | 652 days ago | 4.79824986 ETH | ||||
16792864 | 660 days ago | 0.00370938 ETH | ||||
16792864 | 660 days ago | 0.07344677 ETH | ||||
16638781 | 682 days ago | 0.00409953 ETH | ||||
16638781 | 682 days ago | 1.52487925 ETH | ||||
16636355 | 682 days ago | 0.79870952 ETH | ||||
16605593 | 686 days ago | 0.00181347 ETH | ||||
16605593 | 686 days ago | 1.62779531 ETH | ||||
16538850 | 696 days ago | 0.00180593 ETH | ||||
16538850 | 696 days ago | 0.01766733 ETH | ||||
16520815 | 698 days ago | 0.07558864 ETH | ||||
16515338 | 699 days ago | 0.91165459 ETH | ||||
16504899 | 700 days ago | 0.00706139 ETH | ||||
16500578 | 701 days ago | 0.00169927 ETH | ||||
16500578 | 701 days ago | 0.57402079 ETH | ||||
16487055 | 703 days ago | 0.00221674 ETH | ||||
16487055 | 703 days ago | 0.00961926 ETH | ||||
16447185 | 709 days ago | 0.00150045 ETH | ||||
16447185 | 709 days ago | 0.0322058 ETH | ||||
16396687 | 716 days ago | 0.00153821 ETH | ||||
16396687 | 716 days ago | 0.28431753 ETH |
Loading...
Loading
Contract Name:
SPContractNoOracle
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-07-14 */ // SPDX-License-Identifier: No License (None) pragma solidity ^0.8.0; interface IERC20 { function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); function transfer(address recipient, uint256 amount) external returns (bool); function approve(address spender, uint256 amount) external returns (bool); } interface ISmartSwap { function isSystem(address caller) external returns(bool); // check if caller is system wallet. function decimals(address token) external returns(uint256); // token address => token decimals function processingFee() external returns(uint256); // Processing fee function companyFee() external returns(uint256); // Company fee //function reimburse(address user, uint256 amount) external; // reimburse user for SP payment function swap( address tokenA, address tokenB, address receiver, uint256 amountA, address licensee, bool isInvestment, uint128 minimumAmountToClaim, // do not claim on user behalf less of this amount. Only exception if order fulfilled. uint128 limitPice, // Do not match user if token A price less this limit uint256 fee // company + licensee fee amount ) external payable returns (bool); function cancel( address tokenA, address tokenB, address receiver, uint256 amountA //amount of tokenA to cancel ) external payable returns (bool); function claimToken( address tokenA, // foreignToken address tokenB, // nativeToken address sender, address receiver, uint128 amountA, //amount of tokenA that has to be swapped uint128 currentRate, // rate with 18 decimals: tokenA price / tokenB price uint256 foreignBalance, // total tokens amount sent by user to pair on other chain uint256 foreignSpent, // total tokens spent by SmartSwap pair uint256 nativeEncoded // (nativeRate, nativeSpent) = _decode(nativeEncoded) ) external returns (bool); } contract SPContractNoOracle{ address public owner; address public nativeTokenReceiver; address public nativeToken; mapping(address => address) public foreignToken; // SmartSwap => foreign token mapping(address => address) public foreignTokenReceiver; // SmartSwap => receiver address where tokens will be transferred from SmartSwap //ISmartSwap public smartSwap; // assign SmartSwap address here uint256 private feeAmountLimit; // limit of amount that System withdraw for fee reimbursement event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); event FeeTransfer(address indexed systemWallet, uint256 fee); event Deposit(uint256 value); // run only once from proxy function initialize( address _owner, // contract owner address _nativeToken, // native token that will be send to SmartSwap address _nativeTokenReceiver, // address on Binance to deposit native token uint256 _feeAmountLimit, // limit of amount that System may withdraw for fee reimbursement address[] calldata _foreignToken, // foreign token that has to be received from SmartSwap (on foreign chain) address[] calldata _foreignTokenReceiver, // address of foreign SP contract deposit foreign token address[] calldata _smartSwap // address of local SmartSwap contract ) external { require(owner == address(0)); // run only once require( _nativeToken != address(0) && _nativeTokenReceiver != address(0) ); nativeToken = _nativeToken; nativeTokenReceiver = _nativeTokenReceiver; for (uint i; i < _smartSwap.length; i++) { foreignTokenReceiver[_smartSwap[i]] = _foreignTokenReceiver[i]; foreignToken[_smartSwap[i]] = _foreignToken[i]; } feeAmountLimit = _feeAmountLimit; //smartSwap = ISmartSwap(_smartSwap[0]); owner = _owner; emit OwnershipTransferred(address(0), _owner); } receive() external payable { emit Deposit(msg.value); } /** * @dev Throws if called by any account other than the system. */ modifier onlySystem(address _smartSwap) { require(ISmartSwap(_smartSwap).isSystem(msg.sender), "Caller is not the system"); _; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner == msg.sender, "Ownable: caller is not the owner"); _; } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(owner, newOwner); owner = newOwner; } // set limit of amount that System withdraw for fee reimbursement function setFeeAmountLimit(uint256 amount) external onlyOwner { feeAmountLimit = amount; } // set limit of amount that System withdraw for fee reimbursement function setForeignToken(address _localSmartSwap, address _foreignToken, address _foreignTokenReceiver) external onlyOwner { foreignTokenReceiver[_localSmartSwap] = _foreignTokenReceiver; foreignToken[_localSmartSwap] = _foreignToken; } // get limit of amount that System withdraw for fee reimbursement function getFeeAmountLimit() external view returns(uint256) { return feeAmountLimit; } function cancel(address smartSwap, uint256 amount) external onlySystem(smartSwap) { ISmartSwap(smartSwap).cancel(nativeToken, foreignToken[smartSwap], foreignTokenReceiver[smartSwap], amount); } // Allow owner withdraw tokens from contract function withdraw(address token, uint256 amount) external onlyOwner { if (token < address(9)) safeTransferETH(msg.sender, amount); else safeTransfer(token, msg.sender, amount); } // Allow owner withdraw tokens from contract function withdrawSystem(address smartSwap, uint256 amount) external onlySystem(smartSwap) { require(foreignTokenReceiver[smartSwap] != address(0), "Wrong smartSwap"); address token = nativeToken; if (token < address(9)) safeTransferETH(nativeTokenReceiver, amount); else safeTransfer(token, nativeTokenReceiver, amount); } // add liquidity to counterparty function addLiquidityAndClaimBehalf( address smartSwap, // address of local SmartSwap uint256 feeAmount, // processing fee amount to reimburse system wallet. uint128 amount, //amount of native token that has to be swapped (amount of provided liquidity) uint128 currentRate, // rate with 18 decimals: tokenB price / tokenA price uint128[] memory claimAmount, // claim amount (in foreign tokens). uint256[] memory foreignBalance, // total tokens amount sent by user to pair on other chain address[] memory senderCounterparty, // correspondent value from SwapRequest event address[] memory receiverCounterparty, // correspondent value from SwapRequest event uint256 foreignSpent, // total tokens spent by SmartSwap pair uint256 nativeEncoded // (nativeRate, nativeSpent) = _decode(nativeEncoded) ) external onlySystem(smartSwap) { require(feeAmountLimit >= feeAmount, "Fee limit exceeded"); require(foreignTokenReceiver[smartSwap] != address(0), "Wrong smartSwap"); feeAmountLimit -= feeAmount; require(claimAmount.length == foreignBalance.length && senderCounterparty.length == receiverCounterparty.length && foreignBalance.length == senderCounterparty.length, "Wrong length" ); // send swap request swap(smartSwap, amount, feeAmount); // claim tokens on users behalf claimBehalf(smartSwap, currentRate, claimAmount, foreignBalance, senderCounterparty, receiverCounterparty, foreignSpent, nativeEncoded); } function claimBehalf( address smartSwap, // address of local SmartSwap uint128 currentRate, // rate with 18 decimals: tokenB price / tokenA price uint128[] memory claimAmount, // claim amount (in foreign tokens). uint256[] memory foreignBalance, // total tokens amount sent by user to pair on other chain address[] memory senderCounterparty, // correspondent value from SwapRequest event address[] memory receiverCounterparty, // correspondent value from SwapRequest event uint256 foreignSpent, // total tokens spent by SmartSwap pair uint256 nativeEncoded // (nativeRate, nativeSpent) = _decode(nativeEncoded) ) internal { //uint256 totalAmount; address _foreignToken = foreignToken[smartSwap]; for (uint256 i = 0; i < claimAmount.length; i++) { //totalAmount += claimAmount[i]; ISmartSwap(smartSwap).claimToken( _foreignToken, nativeToken, senderCounterparty[i], receiverCounterparty[i], claimAmount[i], currentRate, foreignBalance[i], foreignSpent, nativeEncoded ); } //require(totalAmount * currentRate / (10**(18+t.foreignDecimals-t.nativeDecimals)) <= uint256(amount), "Insuficiant amount"); } function swap(address smartSwap, uint128 amount, uint256 feeAmount) internal { uint256 processingFee = ISmartSwap(smartSwap).processingFee(); if (nativeToken > address(9)) { // can't get company fee amount IERC20(nativeToken).approve(address(smartSwap), uint256(amount)); ISmartSwap(smartSwap).swap{value: processingFee}( nativeToken, foreignToken[smartSwap], foreignTokenReceiver[smartSwap], amount, address(0), false, 0, 0, 0 ); } else { // native coin (ETH, BNB) uint256 fee = uint256(amount)*ISmartSwap(smartSwap).companyFee()/10000; // company fee processingFee = fee + processingFee; ISmartSwap(smartSwap).swap{value: uint256(amount) + processingFee}( nativeToken, foreignToken[smartSwap], foreignTokenReceiver[smartSwap], amount, address(0), false, 0, 0, fee ); } require(processingFee <= feeAmount, "Insuficiant fee"); feeAmount -= processingFee; // we already paid processing fee to SmartSwap contract if (feeAmount != 0) { payable(msg.sender).transfer(feeAmount); emit FeeTransfer(msg.sender, feeAmount); } } function safeTransfer(address token, address to, uint value) internal { // bytes4(keccak256(bytes('transfer(address,uint256)'))); (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value)); require(success && (data.length == 0 || abi.decode(data, (bool))), 'TRANSFER_FAILED'); } function safeTransferETH(address to, uint value) internal { (bool success,) = to.call{value:value}(new bytes(0)); require(success, 'ETH_TRANSFER_FAILED'); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"systemWallet","type":"address"},{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"}],"name":"FeeTransfer","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"},{"inputs":[{"internalType":"address","name":"smartSwap","type":"address"},{"internalType":"uint256","name":"feeAmount","type":"uint256"},{"internalType":"uint128","name":"amount","type":"uint128"},{"internalType":"uint128","name":"currentRate","type":"uint128"},{"internalType":"uint128[]","name":"claimAmount","type":"uint128[]"},{"internalType":"uint256[]","name":"foreignBalance","type":"uint256[]"},{"internalType":"address[]","name":"senderCounterparty","type":"address[]"},{"internalType":"address[]","name":"receiverCounterparty","type":"address[]"},{"internalType":"uint256","name":"foreignSpent","type":"uint256"},{"internalType":"uint256","name":"nativeEncoded","type":"uint256"}],"name":"addLiquidityAndClaimBehalf","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"smartSwap","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"cancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"foreignToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"foreignTokenReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFeeAmountLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_nativeToken","type":"address"},{"internalType":"address","name":"_nativeTokenReceiver","type":"address"},{"internalType":"uint256","name":"_feeAmountLimit","type":"uint256"},{"internalType":"address[]","name":"_foreignToken","type":"address[]"},{"internalType":"address[]","name":"_foreignTokenReceiver","type":"address[]"},{"internalType":"address[]","name":"_smartSwap","type":"address[]"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"nativeToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nativeTokenReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setFeeAmountLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_localSmartSwap","type":"address"},{"internalType":"address","name":"_foreignToken","type":"address"},{"internalType":"address","name":"_foreignTokenReceiver","type":"address"}],"name":"setForeignToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"smartSwap","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawSystem","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405234801561001057600080fd5b50611993806100206000396000f3fe6080604052600436106100e15760003560e01c8063d27bd7411161007f578063e17eaa4e11610059578063e17eaa4e146102ab578063e2097298146102cb578063f2fde38b146102e9578063f3fef3a31461030957600080fd5b8063d27bd74114610235578063d2a63e5c1461026b578063e1758bd81461028b57600080fd5b80638c90c121116100bb5780638c90c121146101b55780638da5cb5b146101d557806398590ef9146101f5578063d0d39e481461021557600080fd5b80631aad8a65146101205780633e55e99d1461014257806381ffc6281461019557600080fd5b3661011b576040513481527f4d6ce1e535dbade1c23defba91e23b8f791ce5edc0cc320257a2b364e4e384269060200160405180910390a1005b600080fd5b34801561012c57600080fd5b5061014061013b36600461149f565b610329565b005b34801561014e57600080fd5b5061017861015d36600461147d565b6004602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101a157600080fd5b506101406101b03660046114e2565b6103a0565b3480156101c157600080fd5b506101406101d0366004611704565b61058c565b3480156101e157600080fd5b50600054610178906001600160a01b031681565b34801561020157600080fd5b506101406102103660046115ba565b6105bb565b34801561022157600080fd5b506101406102303660046115e4565b61070c565b34801561024157600080fd5b5061017861025036600461147d565b6003602052600090815260409020546001600160a01b031681565b34801561027757600080fd5b50600154610178906001600160a01b031681565b34801561029757600080fd5b50600254610178906001600160a01b031681565b3480156102b757600080fd5b506101406102c63660046115ba565b6108dc565b3480156102d757600080fd5b5060055460405190815260200161018c565b3480156102f557600080fd5b5061014061030436600461147d565b610a14565b34801561031557600080fd5b506101406103243660046115ba565b610afe565b6000546001600160a01b0316331461035c5760405162461bcd60e51b815260040161035390611806565b60405180910390fd5b6001600160a01b03928316600090815260046020908152604080832080549487166001600160a01b0319958616179055600390915290208054929093169116179055565b6000546001600160a01b0316156103b657600080fd5b6001600160a01b038916158015906103d657506001600160a01b03881615155b6103df57600080fd5b600280546001600160a01b03808c166001600160a01b03199283161790925560018054928b169290911691909117905560005b818110156105325784848281811061042c5761042c611931565b9050602002016020810190610441919061147d565b6004600085858581811061045757610457611931565b905060200201602081019061046c919061147d565b6001600160a01b039081168252602082019290925260400160002080546001600160a01b031916929091169190911790558686828181106104af576104af611931565b90506020020160208101906104c4919061147d565b600360008585858181106104da576104da611931565b90506020020160208101906104ef919061147d565b6001600160a01b039081168252602082019290925260400160002080546001600160a01b031916929091169190911790558061052a81611900565b915050610412565b506005879055600080546001600160a01b0319166001600160a01b038c1690811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350505050505050505050565b6000546001600160a01b031633146105b65760405162461bcd60e51b815260040161035390611806565b600555565b604051631a66e79360e11b815233600482015282906001600160a01b038216906334cdcf2690602401602060405180830381600087803b1580156105fe57600080fd5b505af1158015610612573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061063691906116e2565b6106525760405162461bcd60e51b8152600401610353906117cf565b6002546001600160a01b038481166000818152600360209081526040808320546004928390529281902054905163850853fd60e01b81529585169186019190915290831660248501529091166044830152606482018490529063850853fd90608401602060405180830381600087803b1580156106ce57600080fd5b505af11580156106e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070691906116e2565b50505050565b604051631a66e79360e11b81523360048201528a906001600160a01b038216906334cdcf2690602401602060405180830381600087803b15801561074f57600080fd5b505af1158015610763573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078791906116e2565b6107a35760405162461bcd60e51b8152600401610353906117cf565b8960055410156107ea5760405162461bcd60e51b8152602060048201526012602482015271119959481b1a5b5a5d08195e18d95959195960721b6044820152606401610353565b6001600160a01b038b8116600090815260046020526040902054166108435760405162461bcd60e51b815260206004820152600f60248201526e057726f6e6720736d6172745377617608c1b6044820152606401610353565b896005600082825461085591906118e9565b90915550508551875114801561086c575083518551145b8015610879575084518651145b6108b45760405162461bcd60e51b815260206004820152600c60248201526b0aee4dedcce40d8cadccee8d60a31b6044820152606401610353565b6108bf8b8a8c610b53565b6108cf8b89898989898989610f5e565b5050505050505050505050565b604051631a66e79360e11b815233600482015282906001600160a01b038216906334cdcf2690602401602060405180830381600087803b15801561091f57600080fd5b505af1158015610933573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095791906116e2565b6109735760405162461bcd60e51b8152600401610353906117cf565b6001600160a01b03838116600090815260046020526040902054166109cc5760405162461bcd60e51b815260206004820152600f60248201526e057726f6e6720736d6172745377617608c1b6044820152606401610353565b6002546001600160a01b031660098110156109fc576001546109f7906001600160a01b0316846110f9565b610706565b6001546107069082906001600160a01b0316856111b1565b6000546001600160a01b03163314610a3e5760405162461bcd60e51b815260040161035390611806565b6001600160a01b038116610aa35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610353565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610b285760405162461bcd60e51b815260040161035390611806565b60096001600160a01b0383161015610b4857610b4433826110f9565b5050565b610b448233836111b1565b6000836001600160a01b031663de1881a86040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610b9057600080fd5b505af1158015610ba4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc8919061171d565b60025490915060096001600160a01b039091161115610d295760025460405163095ea7b360e01b81526001600160a01b0386811660048301526001600160801b03861660248301529091169063095ea7b390604401602060405180830381600087803b158015610c3757600080fd5b505af1158015610c4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6f91906116e2565b506002546001600160a01b038086166000818152600360209081526040808320546004928390528184205491516370722f8760e11b8152949663e0e45f0e968996610cd1969282169593821694909116928c9291829182918291829101611771565b6020604051808303818588803b158015610cea57600080fd5b505af1158015610cfe573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d2391906116e2565b50610ea1565b6000612710856001600160a01b031663a27a88596040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610d6957600080fd5b505af1158015610d7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da1919061171d565b610db4906001600160801b0387166118ca565b610dbe91906118a8565b9050610dca8282611890565b91506001600160a01b03851663e0e45f0e610dee846001600160801b038816611890565b6002546001600160a01b038981166000908152600360209081526040808320546004928390528184205491516001600160e01b031960e08a901b168152610e4c968616959182169492909116928d92918291829182918e9101611771565b6020604051808303818588803b158015610e6557600080fd5b505af1158015610e79573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e9e91906116e2565b50505b81811115610ee35760405162461bcd60e51b815260206004820152600f60248201526e496e737566696369616e742066656560881b6044820152606401610353565b610eed81836118e9565b9150811561070657604051339083156108fc029084906000818181858888f19350505050158015610f22573d6000803e3d6000fd5b5060405182815233907f41a4b099d16420f275b83ab9bcb5571fa53e7b424a4f7177e0a6e6bce42575a29060200160405180910390a250505050565b6001600160a01b03808916600090815260036020526040812054909116905b87518110156110ed57896001600160a01b031663569f6f5783600260009054906101000a90046001600160a01b0316898581518110610fbe57610fbe611931565b6020026020010151898681518110610fd857610fd8611931565b60200260200101518d8781518110610ff257610ff2611931565b60200260200101518f8e898151811061100d5761100d611931565b60209081029190910101516040516001600160e01b031960e08a901b1681526001600160a01b039788166004820152958716602487015293861660448601529490911660648401526001600160801b03908116608484015290921660a482015260c481019190915260e48101879052610104810186905261012401602060405180830381600087803b1580156110a257600080fd5b505af11580156110b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110da91906116e2565b50806110e581611900565b915050610f7d565b50505050505050505050565b604080516000808252602082019092526001600160a01b0384169083906040516111239190611736565b60006040518083038185875af1925050503d8060008114611160576040519150601f19603f3d011682016040523d82523d6000602084013e611165565b606091505b50509050806111ac5760405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606401610353565b505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b179052915160009283929087169161120d9190611736565b6000604051808303816000865af19150503d806000811461124a576040519150601f19603f3d011682016040523d82523d6000602084013e61124f565b606091505b509150915081801561127957508051158061127957508080602001905181019061127991906116e2565b6112b75760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606401610353565b5050505050565b80356001600160a01b03811681146112d557600080fd5b919050565b60008083601f8401126112ec57600080fd5b50813567ffffffffffffffff81111561130457600080fd5b6020830191508360208260051b850101111561131f57600080fd5b9250929050565b600082601f83011261133757600080fd5b8135602061134c6113478361186c565b61183b565b80838252828201915082860187848660051b890101111561136c57600080fd5b60005b8581101561139257611380826112be565b8452928401929084019060010161136f565b5090979650505050505050565b600082601f8301126113b057600080fd5b813560206113c06113478361186c565b80838252828201915082860187848660051b89010111156113e057600080fd5b60005b85811015611392576113f482611466565b845292840192908401906001016113e3565b600082601f83011261141757600080fd5b813560206114276113478361186c565b80838252828201915082860187848660051b890101111561144757600080fd5b60005b858110156113925781358452928401929084019060010161144a565b80356001600160801b03811681146112d557600080fd5b60006020828403121561148f57600080fd5b611498826112be565b9392505050565b6000806000606084860312156114b457600080fd5b6114bd846112be565b92506114cb602085016112be565b91506114d9604085016112be565b90509250925092565b60008060008060008060008060008060e08b8d03121561150157600080fd5b61150a8b6112be565b995061151860208c016112be565b985061152660408c016112be565b975060608b0135965060808b013567ffffffffffffffff8082111561154a57600080fd5b6115568e838f016112da565b909850965060a08d013591508082111561156f57600080fd5b61157b8e838f016112da565b909650945060c08d013591508082111561159457600080fd5b506115a18d828e016112da565b915080935050809150509295989b9194979a5092959850565b600080604083850312156115cd57600080fd5b6115d6836112be565b946020939093013593505050565b6000806000806000806000806000806101408b8d03121561160457600080fd5b61160d8b6112be565b995060208b0135985061162260408c01611466565b975061163060608c01611466565b965060808b013567ffffffffffffffff8082111561164d57600080fd5b6116598e838f0161139f565b975060a08d013591508082111561166f57600080fd5b61167b8e838f01611406565b965060c08d013591508082111561169157600080fd5b61169d8e838f01611326565b955060e08d01359150808211156116b357600080fd5b506116c08d828e01611326565b9350506101008b013591506101208b013590509295989b9194979a5092959850565b6000602082840312156116f457600080fd5b8151801515811461149857600080fd5b60006020828403121561171657600080fd5b5035919050565b60006020828403121561172f57600080fd5b5051919050565b6000825160005b81811015611757576020818601810151858301520161173d565b81811115611766576000828501525b509190910192915050565b6001600160a01b03998a168152978916602089015295881660408801526001600160801b039485166060880152929096166080860152151560a085015293811660c08401529290921660e08201526101008101919091526101200190565b60208082526018908201527f43616c6c6572206973206e6f74207468652073797374656d0000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b604051601f8201601f1916810167ffffffffffffffff8111828210171561186457611864611947565b604052919050565b600067ffffffffffffffff82111561188657611886611947565b5060051b60200190565b600082198211156118a3576118a361191b565b500190565b6000826118c557634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156118e4576118e461191b565b500290565b6000828210156118fb576118fb61191b565b500390565b60006000198214156119145761191461191b565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220dd60a932416784d81ab45cd5351973a348a422515773f427d696835a3f55568164736f6c63430008070033
Deployed Bytecode
0x6080604052600436106100e15760003560e01c8063d27bd7411161007f578063e17eaa4e11610059578063e17eaa4e146102ab578063e2097298146102cb578063f2fde38b146102e9578063f3fef3a31461030957600080fd5b8063d27bd74114610235578063d2a63e5c1461026b578063e1758bd81461028b57600080fd5b80638c90c121116100bb5780638c90c121146101b55780638da5cb5b146101d557806398590ef9146101f5578063d0d39e481461021557600080fd5b80631aad8a65146101205780633e55e99d1461014257806381ffc6281461019557600080fd5b3661011b576040513481527f4d6ce1e535dbade1c23defba91e23b8f791ce5edc0cc320257a2b364e4e384269060200160405180910390a1005b600080fd5b34801561012c57600080fd5b5061014061013b36600461149f565b610329565b005b34801561014e57600080fd5b5061017861015d36600461147d565b6004602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101a157600080fd5b506101406101b03660046114e2565b6103a0565b3480156101c157600080fd5b506101406101d0366004611704565b61058c565b3480156101e157600080fd5b50600054610178906001600160a01b031681565b34801561020157600080fd5b506101406102103660046115ba565b6105bb565b34801561022157600080fd5b506101406102303660046115e4565b61070c565b34801561024157600080fd5b5061017861025036600461147d565b6003602052600090815260409020546001600160a01b031681565b34801561027757600080fd5b50600154610178906001600160a01b031681565b34801561029757600080fd5b50600254610178906001600160a01b031681565b3480156102b757600080fd5b506101406102c63660046115ba565b6108dc565b3480156102d757600080fd5b5060055460405190815260200161018c565b3480156102f557600080fd5b5061014061030436600461147d565b610a14565b34801561031557600080fd5b506101406103243660046115ba565b610afe565b6000546001600160a01b0316331461035c5760405162461bcd60e51b815260040161035390611806565b60405180910390fd5b6001600160a01b03928316600090815260046020908152604080832080549487166001600160a01b0319958616179055600390915290208054929093169116179055565b6000546001600160a01b0316156103b657600080fd5b6001600160a01b038916158015906103d657506001600160a01b03881615155b6103df57600080fd5b600280546001600160a01b03808c166001600160a01b03199283161790925560018054928b169290911691909117905560005b818110156105325784848281811061042c5761042c611931565b9050602002016020810190610441919061147d565b6004600085858581811061045757610457611931565b905060200201602081019061046c919061147d565b6001600160a01b039081168252602082019290925260400160002080546001600160a01b031916929091169190911790558686828181106104af576104af611931565b90506020020160208101906104c4919061147d565b600360008585858181106104da576104da611931565b90506020020160208101906104ef919061147d565b6001600160a01b039081168252602082019290925260400160002080546001600160a01b031916929091169190911790558061052a81611900565b915050610412565b506005879055600080546001600160a01b0319166001600160a01b038c1690811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350505050505050505050565b6000546001600160a01b031633146105b65760405162461bcd60e51b815260040161035390611806565b600555565b604051631a66e79360e11b815233600482015282906001600160a01b038216906334cdcf2690602401602060405180830381600087803b1580156105fe57600080fd5b505af1158015610612573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061063691906116e2565b6106525760405162461bcd60e51b8152600401610353906117cf565b6002546001600160a01b038481166000818152600360209081526040808320546004928390529281902054905163850853fd60e01b81529585169186019190915290831660248501529091166044830152606482018490529063850853fd90608401602060405180830381600087803b1580156106ce57600080fd5b505af11580156106e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070691906116e2565b50505050565b604051631a66e79360e11b81523360048201528a906001600160a01b038216906334cdcf2690602401602060405180830381600087803b15801561074f57600080fd5b505af1158015610763573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078791906116e2565b6107a35760405162461bcd60e51b8152600401610353906117cf565b8960055410156107ea5760405162461bcd60e51b8152602060048201526012602482015271119959481b1a5b5a5d08195e18d95959195960721b6044820152606401610353565b6001600160a01b038b8116600090815260046020526040902054166108435760405162461bcd60e51b815260206004820152600f60248201526e057726f6e6720736d6172745377617608c1b6044820152606401610353565b896005600082825461085591906118e9565b90915550508551875114801561086c575083518551145b8015610879575084518651145b6108b45760405162461bcd60e51b815260206004820152600c60248201526b0aee4dedcce40d8cadccee8d60a31b6044820152606401610353565b6108bf8b8a8c610b53565b6108cf8b89898989898989610f5e565b5050505050505050505050565b604051631a66e79360e11b815233600482015282906001600160a01b038216906334cdcf2690602401602060405180830381600087803b15801561091f57600080fd5b505af1158015610933573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095791906116e2565b6109735760405162461bcd60e51b8152600401610353906117cf565b6001600160a01b03838116600090815260046020526040902054166109cc5760405162461bcd60e51b815260206004820152600f60248201526e057726f6e6720736d6172745377617608c1b6044820152606401610353565b6002546001600160a01b031660098110156109fc576001546109f7906001600160a01b0316846110f9565b610706565b6001546107069082906001600160a01b0316856111b1565b6000546001600160a01b03163314610a3e5760405162461bcd60e51b815260040161035390611806565b6001600160a01b038116610aa35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610353565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610b285760405162461bcd60e51b815260040161035390611806565b60096001600160a01b0383161015610b4857610b4433826110f9565b5050565b610b448233836111b1565b6000836001600160a01b031663de1881a86040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610b9057600080fd5b505af1158015610ba4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc8919061171d565b60025490915060096001600160a01b039091161115610d295760025460405163095ea7b360e01b81526001600160a01b0386811660048301526001600160801b03861660248301529091169063095ea7b390604401602060405180830381600087803b158015610c3757600080fd5b505af1158015610c4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6f91906116e2565b506002546001600160a01b038086166000818152600360209081526040808320546004928390528184205491516370722f8760e11b8152949663e0e45f0e968996610cd1969282169593821694909116928c9291829182918291829101611771565b6020604051808303818588803b158015610cea57600080fd5b505af1158015610cfe573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d2391906116e2565b50610ea1565b6000612710856001600160a01b031663a27a88596040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610d6957600080fd5b505af1158015610d7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da1919061171d565b610db4906001600160801b0387166118ca565b610dbe91906118a8565b9050610dca8282611890565b91506001600160a01b03851663e0e45f0e610dee846001600160801b038816611890565b6002546001600160a01b038981166000908152600360209081526040808320546004928390528184205491516001600160e01b031960e08a901b168152610e4c968616959182169492909116928d92918291829182918e9101611771565b6020604051808303818588803b158015610e6557600080fd5b505af1158015610e79573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e9e91906116e2565b50505b81811115610ee35760405162461bcd60e51b815260206004820152600f60248201526e496e737566696369616e742066656560881b6044820152606401610353565b610eed81836118e9565b9150811561070657604051339083156108fc029084906000818181858888f19350505050158015610f22573d6000803e3d6000fd5b5060405182815233907f41a4b099d16420f275b83ab9bcb5571fa53e7b424a4f7177e0a6e6bce42575a29060200160405180910390a250505050565b6001600160a01b03808916600090815260036020526040812054909116905b87518110156110ed57896001600160a01b031663569f6f5783600260009054906101000a90046001600160a01b0316898581518110610fbe57610fbe611931565b6020026020010151898681518110610fd857610fd8611931565b60200260200101518d8781518110610ff257610ff2611931565b60200260200101518f8e898151811061100d5761100d611931565b60209081029190910101516040516001600160e01b031960e08a901b1681526001600160a01b039788166004820152958716602487015293861660448601529490911660648401526001600160801b03908116608484015290921660a482015260c481019190915260e48101879052610104810186905261012401602060405180830381600087803b1580156110a257600080fd5b505af11580156110b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110da91906116e2565b50806110e581611900565b915050610f7d565b50505050505050505050565b604080516000808252602082019092526001600160a01b0384169083906040516111239190611736565b60006040518083038185875af1925050503d8060008114611160576040519150601f19603f3d011682016040523d82523d6000602084013e611165565b606091505b50509050806111ac5760405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606401610353565b505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b179052915160009283929087169161120d9190611736565b6000604051808303816000865af19150503d806000811461124a576040519150601f19603f3d011682016040523d82523d6000602084013e61124f565b606091505b509150915081801561127957508051158061127957508080602001905181019061127991906116e2565b6112b75760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606401610353565b5050505050565b80356001600160a01b03811681146112d557600080fd5b919050565b60008083601f8401126112ec57600080fd5b50813567ffffffffffffffff81111561130457600080fd5b6020830191508360208260051b850101111561131f57600080fd5b9250929050565b600082601f83011261133757600080fd5b8135602061134c6113478361186c565b61183b565b80838252828201915082860187848660051b890101111561136c57600080fd5b60005b8581101561139257611380826112be565b8452928401929084019060010161136f565b5090979650505050505050565b600082601f8301126113b057600080fd5b813560206113c06113478361186c565b80838252828201915082860187848660051b89010111156113e057600080fd5b60005b85811015611392576113f482611466565b845292840192908401906001016113e3565b600082601f83011261141757600080fd5b813560206114276113478361186c565b80838252828201915082860187848660051b890101111561144757600080fd5b60005b858110156113925781358452928401929084019060010161144a565b80356001600160801b03811681146112d557600080fd5b60006020828403121561148f57600080fd5b611498826112be565b9392505050565b6000806000606084860312156114b457600080fd5b6114bd846112be565b92506114cb602085016112be565b91506114d9604085016112be565b90509250925092565b60008060008060008060008060008060e08b8d03121561150157600080fd5b61150a8b6112be565b995061151860208c016112be565b985061152660408c016112be565b975060608b0135965060808b013567ffffffffffffffff8082111561154a57600080fd5b6115568e838f016112da565b909850965060a08d013591508082111561156f57600080fd5b61157b8e838f016112da565b909650945060c08d013591508082111561159457600080fd5b506115a18d828e016112da565b915080935050809150509295989b9194979a5092959850565b600080604083850312156115cd57600080fd5b6115d6836112be565b946020939093013593505050565b6000806000806000806000806000806101408b8d03121561160457600080fd5b61160d8b6112be565b995060208b0135985061162260408c01611466565b975061163060608c01611466565b965060808b013567ffffffffffffffff8082111561164d57600080fd5b6116598e838f0161139f565b975060a08d013591508082111561166f57600080fd5b61167b8e838f01611406565b965060c08d013591508082111561169157600080fd5b61169d8e838f01611326565b955060e08d01359150808211156116b357600080fd5b506116c08d828e01611326565b9350506101008b013591506101208b013590509295989b9194979a5092959850565b6000602082840312156116f457600080fd5b8151801515811461149857600080fd5b60006020828403121561171657600080fd5b5035919050565b60006020828403121561172f57600080fd5b5051919050565b6000825160005b81811015611757576020818601810151858301520161173d565b81811115611766576000828501525b509190910192915050565b6001600160a01b03998a168152978916602089015295881660408801526001600160801b039485166060880152929096166080860152151560a085015293811660c08401529290921660e08201526101008101919091526101200190565b60208082526018908201527f43616c6c6572206973206e6f74207468652073797374656d0000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b604051601f8201601f1916810167ffffffffffffffff8111828210171561186457611864611947565b604052919050565b600067ffffffffffffffff82111561188657611886611947565b5060051b60200190565b600082198211156118a3576118a361191b565b500190565b6000826118c557634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156118e4576118e461191b565b500290565b6000828210156118fb576118fb61191b565b500390565b60006000198214156119145761191461191b565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220dd60a932416784d81ab45cd5351973a348a422515773f427d696835a3f55568164736f6c63430008070033
Deployed Bytecode Sourcemap
2214:9962:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4348:18;;4356:9;14615:25:1;;4348:18:0;;14603:2:1;14588:18;4348::0;;;;;;;2214:9962;;;;;5487:259;;;;;;;;;;-1:-1:-1;5487:259:0;;;;;:::i;:::-;;:::i;:::-;;2438:55;;;;;;;;;;-1:-1:-1;2438:55:0;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;2438:55:0;;;;;;-1:-1:-1;;;;;7715:32:1;;;7697:51;;7685:2;7670:18;2438:55:0;;;;;;;;2981:1316;;;;;;;;;;-1:-1:-1;2981:1316:0;;;;;:::i;:::-;;:::i;5302:104::-;;;;;;;;;;-1:-1:-1;5302:104:0;;;;;:::i;:::-;;:::i;2250:20::-;;;;;;;;;;-1:-1:-1;2250:20:0;;;;-1:-1:-1;;;;;2250:20:0;;;5933:208;;;;;;;;;;-1:-1:-1;5933:208:0;;;;;:::i;:::-;;:::i;6928:1677::-;;;;;;;;;;-1:-1:-1;6928:1677:0;;;;;:::i;:::-;;:::i;2351:47::-;;;;;;;;;;-1:-1:-1;2351:47:0;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;2351:47:0;;;2277:34;;;;;;;;;;-1:-1:-1;2277:34:0;;;;-1:-1:-1;;;;;2277:34:0;;;2318:26;;;;;;;;;;-1:-1:-1;2318:26:0;;;;-1:-1:-1;;;;;2318:26:0;;;6484:389;;;;;;;;;;-1:-1:-1;6484:389:0;;;;;:::i;:::-;;:::i;5825:100::-;;;;;;;;;;-1:-1:-1;5903:14:0;;5825:100;;14615:25:1;;;14603:2;14588:18;5825:100:0;14469:177:1;4981:242:0;;;;;;;;;;-1:-1:-1;4981:242:0;;;;;:::i;:::-;;:::i;6199:227::-;;;;;;;;;;-1:-1:-1;6199:227:0;;;;;:::i;:::-;;:::i;5487:259::-;4750:5;;-1:-1:-1;;;;;4750:5:0;4759:10;4750:19;4742:64;;;;-1:-1:-1;;;4742:64:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;5621:37:0;;::::1;;::::0;;;:20:::1;:37;::::0;;;;;;;:61;;;;::::1;-1:-1:-1::0;;;;;;5621:61:0;;::::1;;::::0;;5693:12:::1;:29:::0;;;;;:45;;;;;::::1;::::0;::::1;;::::0;;5487:259::o;2981:1316::-;3683:1;3666:5;-1:-1:-1;;;;;3666:5:0;:19;3658:28;;;;;;-1:-1:-1;;;;;3736:26:0;;;;;;:77;;-1:-1:-1;;;;;;3779:34:0;;;;3736:77;3714:110;;;;;;3835:11;:26;;-1:-1:-1;;;;;3835:26:0;;;-1:-1:-1;;;;;;3835:26:0;;;;;;;;3872:42;;;;;;;;;;;;;;;3835:11;3925:191;3938:21;;;3925:191;;;4019:21;;4041:1;4019:24;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;3981:20;:35;4002:10;;4013:1;4002:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3981:35:0;;;;;;;;;;;;;;-1:-1:-1;3981:35:0;:62;;-1:-1:-1;;;;;;3981:62:0;;;;;;;;;;;4088:13;;4102:1;4088:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;4058:12;:27;4071:10;;4082:1;4071:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4058:27:0;;;;;;;;;;;;;;-1:-1:-1;4058:27:0;:46;;-1:-1:-1;;;;;;4058:46:0;;;;;;;;;;;3961:3;;;;:::i;:::-;;;;3925:191;;;-1:-1:-1;4126:14:0;:32;;;4219:5;:14;;-1:-1:-1;;;;;;4219:14:0;-1:-1:-1;;;;;4219:14:0;;;;;;;4249:40;;4219:14;;:5;4249:40;;4219:5;;4249:40;2981:1316;;;;;;;;;;:::o;5302:104::-;4750:5;;-1:-1:-1;;;;;4750:5:0;4759:10;4750:19;4742:64;;;;-1:-1:-1;;;4742:64:0;;;;;;;:::i;:::-;5375:14:::1;:23:::0;5302:104::o;5933:208::-;4525:43;;-1:-1:-1;;;4525:43:0;;4557:10;4525:43;;;7697:51:1;6004:9:0;;-1:-1:-1;;;;;4525:31:0;;;;;7670:18:1;;4525:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4517:80;;;;-1:-1:-1;;;4517:80:0;;;;;;;:::i;:::-;6055:11:::1;::::0;-1:-1:-1;;;;;6026:28:0;;::::1;6055:11;6068:23:::0;;;:12:::1;:23;::::0;;;;;;;;6093:20:::1;:31:::0;;;;;;;;;6026:107;;-1:-1:-1;;;6026:107:0;;6055:11;;::::1;6026:107:::0;;::::1;10809:34:1::0;;;;6068:23:0;;::::1;10859:18:1::0;;;10852:43;6093:31:0;;::::1;10911:18:1::0;;;10904:43;10963:18;;;10956:34;;;6026:28:0;::::1;::::0;10743:19:1;;6026:107:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5933:208:::0;;;:::o;6928:1677::-;4525:43;;-1:-1:-1;;;4525:43:0;;4557:10;4525:43;;;7697:51:1;7883:9:0;;-1:-1:-1;;;;;4525:31:0;;;;;7670:18:1;;4525:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4517:80;;;;-1:-1:-1;;;4517:80:0;;;;;;;:::i;:::-;7937:9:::1;7919:14;;:27;;7911:58;;;::::0;-1:-1:-1;;;7911:58:0;;11889:2:1;7911:58:0::1;::::0;::::1;11871:21:1::0;11928:2;11908:18;;;11901:30;-1:-1:-1;;;11947:18:1;;;11940:48;12005:18;;7911:58:0::1;11687:342:1::0;7911:58:0::1;-1:-1:-1::0;;;;;7988:31:0;;::::1;8031:1;7988:31:::0;;;:20:::1;:31;::::0;;;;;::::1;7980:73;;;::::0;-1:-1:-1;;;7980:73:0;;12589:2:1;7980:73:0::1;::::0;::::1;12571:21:1::0;12628:2;12608:18;;;12601:30;-1:-1:-1;;;12647:18:1;;;12640:45;12702:18;;7980:73:0::1;12387:339:1::0;7980:73:0::1;8084:9;8066:14;;:27;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;8134:21:0;;8112:18;;:43:::1;:116:::0;::::1;;;;8201:20;:27;8172:18;:25;:56;8112:116;:183;;;;;8270:18;:25;8245:14;:21;:50;8112:183;8104:231;;;::::0;-1:-1:-1;;;8104:231:0;;12933:2:1;8104:231:0::1;::::0;::::1;12915:21:1::0;12972:2;12952:18;;;12945:30;-1:-1:-1;;;12991:18:1;;;12984:42;13043:18;;8104:231:0::1;12731:336:1::0;8104:231:0::1;8376:34;8381:9;8392:6;8400:9;8376:4;:34::i;:::-;8462:135;8474:9;8485:11;8498;8511:14;8527:18;8547:20;8569:12;8583:13;8462:11;:135::i;:::-;6928:1677:::0;;;;;;;;;;;:::o;6484:389::-;4525:43;;-1:-1:-1;;;4525:43:0;;4557:10;4525:43;;;7697:51:1;6563:9:0;;-1:-1:-1;;;;;4525:31:0;;;;;7670:18:1;;4525:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4517:80;;;;-1:-1:-1;;;4517:80:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6593:31:0;;::::1;6636:1;6593:31:::0;;;:20:::1;:31;::::0;;;;;::::1;6585:73;;;::::0;-1:-1:-1;;;6585:73:0;;12589:2:1;6585:73:0::1;::::0;::::1;12571:21:1::0;12628:2;12608:18;;;12601:30;-1:-1:-1;;;12647:18:1;;;12640:45;12702:18;;6585:73:0::1;12387:339:1::0;6585:73:0::1;6685:11;::::0;-1:-1:-1;;;;;6685:11:0::1;6727:1;6711:18:::0;::::1;6707:158;;;6760:19;::::0;6744:44:::1;::::0;-1:-1:-1;;;;;6760:19:0::1;6781:6:::0;6744:15:::1;:44::i;:::-;6707:158;;;6837:19;::::0;6817:48:::1;::::0;6830:5;;-1:-1:-1;;;;;6837:19:0::1;6858:6:::0;6817:12:::1;:48::i;4981:242::-:0;4750:5;;-1:-1:-1;;;;;4750:5:0;4759:10;4750:19;4742:64;;;;-1:-1:-1;;;4742:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5070:22:0;::::1;5062:73;;;::::0;-1:-1:-1;;;5062:73:0;;11482:2:1;5062:73:0::1;::::0;::::1;11464:21:1::0;11521:2;11501:18;;;11494:30;11560:34;11540:18;;;11533:62;-1:-1:-1;;;11611:18:1;;;11604:36;11657:19;;5062:73:0::1;11280:402:1::0;5062:73:0::1;5172:5;::::0;;5151:37:::1;::::0;-1:-1:-1;;;;;5151:37:0;;::::1;::::0;5172:5;::::1;::::0;5151:37:::1;::::0;::::1;5199:5;:16:::0;;-1:-1:-1;;;;;;5199:16:0::1;-1:-1:-1::0;;;;;5199:16:0;;;::::1;::::0;;;::::1;::::0;;4981:242::o;6199:227::-;4750:5;;-1:-1:-1;;;;;4750:5:0;4759:10;4750:19;4742:64;;;;-1:-1:-1;;;4742:64:0;;;;;;;:::i;:::-;6298:1:::1;-1:-1:-1::0;;;;;6282:18:0;::::1;;6278:140;;;6315:35;6331:10;6343:6;6315:15;:35::i;:::-;6199:227:::0;;:::o;6278:140::-:1;6379:39;6392:5;6399:10;6411:6;6379:12;:39::i;10070:1563::-:0;10158:21;10193:9;-1:-1:-1;;;;;10182:35:0;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10234:11;;10158:61;;-1:-1:-1;10256:1:0;-1:-1:-1;;;;;10234:11:0;;;:24;10230:1080;;;10327:11;;10320:64;;-1:-1:-1;;;10320:64:0;;-1:-1:-1;;;;;11193:32:1;;;10320:64:0;;;11175:51:1;-1:-1:-1;;;;;10368:15:0;;11242:18:1;;;11235:34;10327:11:0;;;;10320:27;;11148:18:1;;10320:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;10466:11:0;;-1:-1:-1;;;;;10399:26:0;;;10466:11;10497:23;;;:12;:23;;;;;;;;;10539:20;:31;;;;;;;;10399:327;;-1:-1:-1;;;10399:327:0;;:26;;;;10433:13;;10399:327;;10466:11;;;;10497:23;;;;10539:31;;;;10590:6;;10466:11;;;;;;;;;10399:327;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10230:1080;;;10800:11;10865:5;10841:9;-1:-1:-1;;;;;10830:32:0;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10814:50;;-1:-1:-1;;;;;10814:15:0;;:50;:::i;:::-;:56;;;;:::i;:::-;10800:70;-1:-1:-1;10917:19:0;10923:13;10800:70;10917:19;:::i;:::-;10901:35;-1:-1:-1;;;;;;10951:26:0;;;10985:31;10901:35;-1:-1:-1;;;;;10985:15:0;;:31;:::i;:::-;11036:11;;-1:-1:-1;;;;;11067:23:0;;;11036:11;11067:23;;;:12;:23;;;;;;;;;11109:20;:31;;;;;;;;10951:347;;-1:-1:-1;;;;;;10951:347:0;;;;;;;;;11036:11;;;11067:23;;;;11109:31;;;;;11160:6;;11036:11;;;;;;;11280:3;;10951:347;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10756:554;10230:1080;11345:9;11328:13;:26;;11320:54;;;;-1:-1:-1;;;11320:54:0;;13979:2:1;11320:54:0;;;13961:21:1;14018:2;13998:18;;;13991:30;-1:-1:-1;;;14037:18:1;;;14030:45;14092:18;;11320:54:0;13777:339:1;11320:54:0;11385:26;11398:13;11385:26;;:::i;:::-;;-1:-1:-1;11482:14:0;;11478:140;;11513:39;;11521:10;;11513:39;;;;;11542:9;;11513:39;;;;11542:9;11521:10;11513:39;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11572:34:0;;14615:25:1;;;11584:10:0;;11572:34;;14603:2:1;14588:18;11572:34:0;;;;;;;10147:1486;10070:1563;;;:::o;8613:1449::-;-1:-1:-1;;;;;9409:23:0;;;9385:21;9409:23;;;:12;:23;;;;;;;;;;9443:476;9467:11;:18;9463:1;:22;9443:476;;;9564:9;-1:-1:-1;;;;;9553:32:0;;9604:13;9636:11;;;;;;;;;-1:-1:-1;;;;;9636:11:0;9666:18;9685:1;9666:21;;;;;;;;:::i;:::-;;;;;;;9706:20;9727:1;9706:23;;;;;;;;:::i;:::-;;;;;;;9748:11;9760:1;9748:14;;;;;;;;:::i;:::-;;;;;;;9781:11;9812:14;9827:1;9812:17;;;;;;;;:::i;:::-;;;;;;;;;;;9553:354;;-1:-1:-1;;;;;;9553:354:0;;;;;;;-1:-1:-1;;;;;8186:15:1;;;9553:354:0;;;8168:34:1;8238:15;;;8218:18;;;8211:43;8290:15;;;8270:18;;;8263:43;8342:15;;;;8322:18;;;8315:43;-1:-1:-1;;;;;8448:15:1;;;8427:19;;;8420:44;8501:15;;;8480:19;;;8473:44;8533:19;;;8526:35;;;;8577:19;;;8570:35;;;8621:19;;;8614:35;;;8102:19;;9553:354:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;9487:3:0;;;;:::i;:::-;;;;9443:476;;;;9342:720;8613:1449;;;;;;;;:::o;11994:179::-;12102:12;;;12064;12102;;;;;;;;;-1:-1:-1;;;;;12081:7:0;;;12095:5;;12081:34;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12063:52;;;12134:7;12126:39;;;;-1:-1:-1;;;12126:39:0;;14323:2:1;12126:39:0;;;14305:21:1;14362:2;14342:18;;;14335:30;-1:-1:-1;;;14381:18:1;;;14374:49;14440:18;;12126:39:0;14121:343:1;12126:39:0;12052:121;11994:179;;:::o;11641:345::-;11836:45;;;-1:-1:-1;;;;;11193:32:1;;;11836:45:0;;;11175:51:1;11242:18;;;;11235:34;;;11836:45:0;;;;;;;;;;11148:18:1;;;;11836:45:0;;;;;;;-1:-1:-1;;;;;11836:45:0;-1:-1:-1;;;11836:45:0;;;11825:57;;-1:-1:-1;;;;11825:10:0;;;;:57;;11836:45;11825:57;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11789:93;;;;11901:7;:57;;;;-1:-1:-1;11913:11:0;;:16;;:44;;;11944:4;11933:24;;;;;;;;;;;;:::i;:::-;11893:85;;;;-1:-1:-1;;;11893:85:0;;13274:2:1;11893:85:0;;;13256:21:1;13313:2;13293:18;;;13286:30;-1:-1:-1;;;13332:18:1;;;13325:45;13387:18;;11893:85:0;13072:339:1;11893:85:0;11711:275;;11641:345;;;:::o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:367::-;255:8;265:6;319:3;312:4;304:6;300:17;296:27;286:55;;337:1;334;327:12;286:55;-1:-1:-1;360:20:1;;403:18;392:30;;389:50;;;435:1;432;425:12;389:50;472:4;464:6;460:17;448:29;;532:3;525:4;515:6;512:1;508:14;500:6;496:27;492:38;489:47;486:67;;;549:1;546;539:12;486:67;192:367;;;;;:::o;564:679::-;618:5;671:3;664:4;656:6;652:17;648:27;638:55;;689:1;686;679:12;638:55;725:6;712:20;751:4;775:60;791:43;831:2;791:43;:::i;:::-;775:60;:::i;:::-;857:3;881:2;876:3;869:15;909:2;904:3;900:12;893:19;;944:2;936:6;932:15;996:3;991:2;985;982:1;978:10;970:6;966:23;962:32;959:41;956:61;;;1013:1;1010;1003:12;956:61;1035:1;1045:169;1059:2;1056:1;1053:9;1045:169;;;1116:23;1135:3;1116:23;:::i;:::-;1104:36;;1160:12;;;;1192;;;;1077:1;1070:9;1045:169;;;-1:-1:-1;1232:5:1;;564:679;-1:-1:-1;;;;;;;564:679:1:o;1248:::-;1302:5;1355:3;1348:4;1340:6;1336:17;1332:27;1322:55;;1373:1;1370;1363:12;1322:55;1409:6;1396:20;1435:4;1459:60;1475:43;1515:2;1475:43;:::i;1459:60::-;1541:3;1565:2;1560:3;1553:15;1593:2;1588:3;1584:12;1577:19;;1628:2;1620:6;1616:15;1680:3;1675:2;1669;1666:1;1662:10;1654:6;1650:23;1646:32;1643:41;1640:61;;;1697:1;1694;1687:12;1640:61;1719:1;1729:169;1743:2;1740:1;1737:9;1729:169;;;1800:23;1819:3;1800:23;:::i;:::-;1788:36;;1844:12;;;;1876;;;;1761:1;1754:9;1729:169;;1932:673;1986:5;2039:3;2032:4;2024:6;2020:17;2016:27;2006:55;;2057:1;2054;2047:12;2006:55;2093:6;2080:20;2119:4;2143:60;2159:43;2199:2;2159:43;:::i;2143:60::-;2225:3;2249:2;2244:3;2237:15;2277:2;2272:3;2268:12;2261:19;;2312:2;2304:6;2300:15;2364:3;2359:2;2353;2350:1;2346:10;2338:6;2334:23;2330:32;2327:41;2324:61;;;2381:1;2378;2371:12;2324:61;2403:1;2413:163;2427:2;2424:1;2421:9;2413:163;;;2484:17;;2472:30;;2522:12;;;;2554;;;;2445:1;2438:9;2413:163;;2610:188;2678:20;;-1:-1:-1;;;;;2727:46:1;;2717:57;;2707:85;;2788:1;2785;2778:12;2803:186;2862:6;2915:2;2903:9;2894:7;2890:23;2886:32;2883:52;;;2931:1;2928;2921:12;2883:52;2954:29;2973:9;2954:29;:::i;:::-;2944:39;2803:186;-1:-1:-1;;;2803:186:1:o;2994:334::-;3071:6;3079;3087;3140:2;3128:9;3119:7;3115:23;3111:32;3108:52;;;3156:1;3153;3146:12;3108:52;3179:29;3198:9;3179:29;:::i;:::-;3169:39;;3227:38;3261:2;3250:9;3246:18;3227:38;:::i;:::-;3217:48;;3284:38;3318:2;3307:9;3303:18;3284:38;:::i;:::-;3274:48;;2994:334;;;;;:::o;3333:1382::-;3527:6;3535;3543;3551;3559;3567;3575;3583;3591;3599;3652:3;3640:9;3631:7;3627:23;3623:33;3620:53;;;3669:1;3666;3659:12;3620:53;3692:29;3711:9;3692:29;:::i;:::-;3682:39;;3740:38;3774:2;3763:9;3759:18;3740:38;:::i;:::-;3730:48;;3797:38;3831:2;3820:9;3816:18;3797:38;:::i;:::-;3787:48;;3882:2;3871:9;3867:18;3854:32;3844:42;;3937:3;3926:9;3922:19;3909:33;3961:18;4002:2;3994:6;3991:14;3988:34;;;4018:1;4015;4008:12;3988:34;4057:70;4119:7;4110:6;4099:9;4095:22;4057:70;:::i;:::-;4146:8;;-1:-1:-1;4031:96:1;-1:-1:-1;4234:3:1;4219:19;;4206:33;;-1:-1:-1;4251:16:1;;;4248:36;;;4280:1;4277;4270:12;4248:36;4319:72;4383:7;4372:8;4361:9;4357:24;4319:72;:::i;:::-;4410:8;;-1:-1:-1;4293:98:1;-1:-1:-1;4498:3:1;4483:19;;4470:33;;-1:-1:-1;4515:16:1;;;4512:36;;;4544:1;4541;4534:12;4512:36;;4583:72;4647:7;4636:8;4625:9;4621:24;4583:72;:::i;:::-;4557:98;;4674:8;4664:18;;;4701:8;4691:18;;;3333:1382;;;;;;;;;;;;;:::o;4720:254::-;4788:6;4796;4849:2;4837:9;4828:7;4824:23;4820:32;4817:52;;;4865:1;4862;4855:12;4817:52;4888:29;4907:9;4888:29;:::i;:::-;4878:39;4964:2;4949:18;;;;4936:32;;-1:-1:-1;;;4720:254:1:o;4979:1480::-;5219:6;5227;5235;5243;5251;5259;5267;5275;5283;5291;5344:3;5332:9;5323:7;5319:23;5315:33;5312:53;;;5361:1;5358;5351:12;5312:53;5384:29;5403:9;5384:29;:::i;:::-;5374:39;;5460:2;5449:9;5445:18;5432:32;5422:42;;5483:38;5517:2;5506:9;5502:18;5483:38;:::i;:::-;5473:48;;5540:38;5574:2;5563:9;5559:18;5540:38;:::i;:::-;5530:48;;5629:3;5618:9;5614:19;5601:33;5653:18;5694:2;5686:6;5683:14;5680:34;;;5710:1;5707;5700:12;5680:34;5733:61;5786:7;5777:6;5766:9;5762:22;5733:61;:::i;:::-;5723:71;;5847:3;5836:9;5832:19;5819:33;5803:49;;5877:2;5867:8;5864:16;5861:36;;;5893:1;5890;5883:12;5861:36;5916:63;5971:7;5960:8;5949:9;5945:24;5916:63;:::i;:::-;5906:73;;6032:3;6021:9;6017:19;6004:33;5988:49;;6062:2;6052:8;6049:16;6046:36;;;6078:1;6075;6068:12;6046:36;6101:63;6156:7;6145:8;6134:9;6130:24;6101:63;:::i;:::-;6091:73;;6217:3;6206:9;6202:19;6189:33;6173:49;;6247:2;6237:8;6234:16;6231:36;;;6263:1;6260;6253:12;6231:36;;6286:63;6341:7;6330:8;6319:9;6315:24;6286:63;:::i;:::-;6276:73;;;6396:3;6385:9;6381:19;6368:33;6358:43;;6448:3;6437:9;6433:19;6420:33;6410:43;;4979:1480;;;;;;;;;;;;;:::o;6464:277::-;6531:6;6584:2;6572:9;6563:7;6559:23;6555:32;6552:52;;;6600:1;6597;6590:12;6552:52;6632:9;6626:16;6685:5;6678:13;6671:21;6664:5;6661:32;6651:60;;6707:1;6704;6697:12;6746:180;6805:6;6858:2;6846:9;6837:7;6833:23;6829:32;6826:52;;;6874:1;6871;6864:12;6826:52;-1:-1:-1;6897:23:1;;6746:180;-1:-1:-1;6746:180:1:o;6931:184::-;7001:6;7054:2;7042:9;7033:7;7029:23;7025:32;7022:52;;;7070:1;7067;7060:12;7022:52;-1:-1:-1;7093:16:1;;6931:184;-1:-1:-1;6931:184:1:o;7120:426::-;7249:3;7287:6;7281:13;7312:1;7322:129;7336:6;7333:1;7330:13;7322:129;;;7434:4;7418:14;;;7414:25;;7408:32;7395:11;;;7388:53;7351:12;7322:129;;;7469:6;7466:1;7463:13;7460:48;;;7504:1;7495:6;7490:3;7486:16;7479:27;7460:48;-1:-1:-1;7524:16:1;;;;;7120:426;-1:-1:-1;;7120:426:1:o;8660:939::-;-1:-1:-1;;;;;9105:15:1;;;9087:34;;9157:15;;;9152:2;9137:18;;9130:43;9209:15;;;9204:2;9189:18;;9182:43;-1:-1:-1;;;;;9314:15:1;;;9309:2;9294:18;;9287:43;9367:15;;;;9361:3;9346:19;;9339:44;9427:14;9420:22;9067:3;9399:19;;9392:51;9480:15;;;9474:3;9459:19;;9452:44;9533:15;;;;9527:3;9512:19;;9505:44;9580:3;9565:19;;9558:35;;;;9036:3;9021:19;;8660:939::o;12034:348::-;12236:2;12218:21;;;12275:2;12255:18;;;12248:30;12314:26;12309:2;12294:18;;12287:54;12373:2;12358:18;;12034:348::o;13416:356::-;13618:2;13600:21;;;13637:18;;;13630:30;13696:34;13691:2;13676:18;;13669:62;13763:2;13748:18;;13416:356::o;14651:275::-;14722:2;14716:9;14787:2;14768:13;;-1:-1:-1;;14764:27:1;14752:40;;14822:18;14807:34;;14843:22;;;14804:62;14801:88;;;14869:18;;:::i;:::-;14905:2;14898:22;14651:275;;-1:-1:-1;14651:275:1:o;14931:183::-;14991:4;15024:18;15016:6;15013:30;15010:56;;;15046:18;;:::i;:::-;-1:-1:-1;15091:1:1;15087:14;15103:4;15083:25;;14931:183::o;15119:128::-;15159:3;15190:1;15186:6;15183:1;15180:13;15177:39;;;15196:18;;:::i;:::-;-1:-1:-1;15232:9:1;;15119:128::o;15252:217::-;15292:1;15318;15308:132;;15362:10;15357:3;15353:20;15350:1;15343:31;15397:4;15394:1;15387:15;15425:4;15422:1;15415:15;15308:132;-1:-1:-1;15454:9:1;;15252:217::o;15474:168::-;15514:7;15580:1;15576;15572:6;15568:14;15565:1;15562:21;15557:1;15550:9;15543:17;15539:45;15536:71;;;15587:18;;:::i;:::-;-1:-1:-1;15627:9:1;;15474:168::o;15647:125::-;15687:4;15715:1;15712;15709:8;15706:34;;;15720:18;;:::i;:::-;-1:-1:-1;15757:9:1;;15647:125::o;15777:135::-;15816:3;-1:-1:-1;;15837:17:1;;15834:43;;;15857:18;;:::i;:::-;-1:-1:-1;15904:1:1;15893:13;;15777:135::o;15917:127::-;15978:10;15973:3;15969:20;15966:1;15959:31;16009:4;16006:1;15999:15;16033:4;16030:1;16023:15;16049:127;16110:10;16105:3;16101:20;16098:1;16091:31;16141:4;16138:1;16131:15;16165:4;16162:1;16155:15;16181:127;16242:10;16237:3;16233:20;16230:1;16223:31;16273:4;16270:1;16263:15;16297:4;16294:1;16287:15
Swarm Source
ipfs://dd60a932416784d81ab45cd5351973a348a422515773f427d696835a3f555681
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.