@verified-network/verified-sdk 0.7.3 → 0.7.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -839,6 +839,26 @@
|
|
|
839
839
|
"stateMutability": "nonpayable",
|
|
840
840
|
"type": "function"
|
|
841
841
|
},
|
|
842
|
+
{
|
|
843
|
+
"inputs": [
|
|
844
|
+
{
|
|
845
|
+
"internalType": "address",
|
|
846
|
+
"name": "investor",
|
|
847
|
+
"type": "address"
|
|
848
|
+
}
|
|
849
|
+
],
|
|
850
|
+
"name": "balance",
|
|
851
|
+
"outputs": [
|
|
852
|
+
{
|
|
853
|
+
"internalType": "uint256",
|
|
854
|
+
"name": "investorBalance",
|
|
855
|
+
"type": "uint256"
|
|
856
|
+
}
|
|
857
|
+
],
|
|
858
|
+
"stateMutability": "view",
|
|
859
|
+
"type": "function",
|
|
860
|
+
"constant": true
|
|
861
|
+
},
|
|
842
862
|
{
|
|
843
863
|
"inputs": [],
|
|
844
864
|
"name": "pause",
|
|
@@ -854,9 +874,9 @@
|
|
|
854
874
|
"type": "function"
|
|
855
875
|
}
|
|
856
876
|
],
|
|
857
|
-
"metadata": "{\"compiler\":{\"version\":\"0.8.0+commit.c7dfd78e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_supply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_cap\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_limit\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"investor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"tokenName\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenAmount\",\"type\":\"uint256\"}],\"name\":\"RequestIssue\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_platform\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_manager\",\"type\":\"address\"}],\"name\":\"addManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"buy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"checkSupportForToken\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_supply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_cap\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_limit\",\"type\":\"uint256\"}],\"name\":\"createSupply\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_distribution\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_manager\",\"type\":\"address\"}],\"name\":\"distribute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_investor\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_tokenName\",\"type\":\"string\"}],\"name\":\"getInvestment\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInvestors\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"assetInvested\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"investorAddress\",\"type\":\"address\"}],\"internalType\":\"struct ILiquidity.provider[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_platform\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_manager\",\"type\":\"address\"}],\"name\":\"getManagerPerformance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"managerLiquidityProvided\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"managerCommissionsEarned\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_platform\",\"type\":\"address\"}],\"name\":\"getManagers\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_platform\",\"type\":\"address\"}],\"name\":\"getPlatformPerformance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"unstakedLiquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balancePlatformLiquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"platformLiquidityProvided\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"platformCommissionsEarned\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPlatforms\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"platformName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"platformAddress\",\"type\":\"address\"}],\"internalType\":\"struct ILiquidity.platform[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSupportedTokens\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"tokenName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"internalType\":\"struct ILiquidity.token[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_investor\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_tokenName\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"_tokenAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_LPToIssue\",\"type\":\"uint256\"}],\"name\":\"issue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_distribution\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_platform\",\"type\":\"address\"}],\"name\":\"payOut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_platform\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_manager\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_liquidity\",\"type\":\"uint256\"}],\"name\":\"provideLiquidity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_liquidityPlatform\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_platformName\",\"type\":\"bytes32\"}],\"name\":\"registerPlatform\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_platform\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_manager\",\"type\":\"address\"}],\"name\":\"removeManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_name\",\"type\":\"bytes32\"}],\"name\":\"supportTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"addManager(address,address)\":{\"params\":{\"_manager\":\"address of asset manager\",\"_platform\":\"address of market making platform (eg, Balancer)\"}},\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"buy(address,uint256)\":{\"params\":{\"_amount\":\"amount of token that is transferred from investor to this VITTA issuing contract's account for the investor\",\"_token\":\"address of token used by investor to buy the VITTA\"}},\"checkSupportForToken(address)\":{\"params\":{\"_token\":\"token that is supported for investment\"}},\"constructor\":{\"params\":{\"_cap\":\"investment limit for each investor\",\"_limit\":\"time limit for issue close\",\"_supply\":\"total supply of VITTA\"}},\"createSupply(uint256,uint256,uint256)\":{\"params\":{\"_cap\":\"investment limit for each investor\",\"_limit\":\"time limit for issue close \",\"_supply\":\"total supply of VITTA\"}},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"distribute(uint256,address,address)\":{\"params\":{\"_distribution\":\"amount of VITTA to mint and distribute pro rata to liquidity providers\",\"_manager\":\"address of asset manager earning the paid out return on investment \",\"_token\":\"address of token in which distribution is made by market maker \"}},\"getInvestment(address,string)\":{\"params\":{\"_investor\":\"address of investor\",\"_tokenName\":\"name of token invested by investor\"}},\"getManagerPerformance(address,address,address)\":{\"params\":{\"_manager\":\"address of asset manager on platform\",\"_platform\":\"address of platform\",\"_token\":\"address of token\"}},\"getManagers(address)\":{\"params\":{\"_platform\":\"address of market making platform\"}},\"getPlatformPerformance(address)\":{\"params\":{\"_platform\":\"address of market making platform\"}},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"issue(address,string,uint256,uint256)\":{\"params\":{\"_LPToIssue\":\"amount of VITTA to issue to investor\",\"_investor\":\"address of investor\",\"_tokenAmount\":\"amount of token invested in VITTA\",\"_tokenName\":\"name of token invested in VITTA\"}},\"name()\":{\"details\":\"Returns the name of the token.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"payOut(uint256,address)\":{\"params\":{\"_distribution\":\"amount of VITTA token to pay out \",\"_platform\":\"amount of VITTA to mint and distribute pro rata to liquidity providers\"}},\"provideLiquidity(address,address,uint256)\":{\"params\":{\"_liquidity\":\"amount of VITTA tokens to allot to an asset manager\",\"_manager\":\"address of asset manager to whom liquidity has to be provided\",\"_platform\":\"address of platform on which liquidity has to be provided\"}},\"registerPlatform(address,bytes32)\":{\"params\":{\"_liquidityPlatform\":\"address of the market making platform\",\"_platformName\":\"name of market making platform\"}},\"removeManager(address,address)\":{\"params\":{\"_manager\":\"address of asset manager\",\"_platform\":\"address of market making platform\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"supportTokens(address,bytes32)\":{\"params\":{\"_name\":\"name of token supported\",\"_token\":\"address of token supported\"}},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for ``sender``'s tokens of at least `amount`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addManager(address,address)\":{\"notice\":\"Adds asset manager for managing liquidity\"},\"buy(address,uint256)\":{\"notice\":\"Used by external apps (eg, exchange, wallet) to buy Verified Liquidity token \"},\"checkSupportForToken(address)\":{\"notice\":\"Checks if a specified token is supported for investing in the Verified Liquidity token\"},\"constructor\":{\"notice\":\"Constructor for the Verified Liquidity token\"},\"createSupply(uint256,uint256,uint256)\":{\"notice\":\"Creates supply of the Verified Liquidity token after initial issue with constructor defined parameters\"},\"distribute(uint256,address,address)\":{\"notice\":\"Pay out of income by Market maker contracts to VITTA Liquidity providers\"},\"getInvestment(address,string)\":{\"notice\":\"Fetches investment detail for specific investor in VITTA\"},\"getInvestors()\":{\"notice\":\"Fetches investors in VITTA\"},\"getManagerPerformance(address,address,address)\":{\"notice\":\"Fetches performance of asset managers\"},\"getManagers(address)\":{\"notice\":\"Gets asset managers for managing liquidity\"},\"getPlatformPerformance(address)\":{\"notice\":\"Fetches performance of market platform platform\"},\"getPlatforms()\":{\"notice\":\"Gets list of registered platforms\"},\"getSupportedTokens()\":{\"notice\":\"Returns list of supported tokens\"},\"issue(address,string,uint256,uint256)\":{\"notice\":\"Used by admin to issue VITTA to investors or refund paid in tokens to investors if investment cap is breached\"},\"pause()\":{\"notice\":\"Pauses this contract\"},\"payOut(uint256,address)\":{\"notice\":\"Pay out income to VITTA Liquidity providers\"},\"provideLiquidity(address,address,uint256)\":{\"notice\":\"Provides staked VITTA to asset managers based on prior liquidity consumed and commission earned \"},\"registerPlatform(address,bytes32)\":{\"notice\":\"Registers a liquidity platform (eg, DEX) where Verified Liquidity tokens can be used to underwrite investments\"},\"removeManager(address,address)\":{\"notice\":\"Removes asset manager for managing liquidity on platform\"},\"supportTokens(address,bytes32)\":{\"notice\":\"Specifies list of supported tokens that can be invested in the Verified Liquidity token\"},\"unpause()\":{\"notice\":\"Unpauses this contract\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/Liquidity.sol\":\"Liquidity\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x6bb804a310218875e89d12c053e94a13a4607cdf7cc2052f3e52bd32a0dc50a1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2ebbbe6d0011175bd9e7268b83de3f9c2f9d8d4cbfbaef12aff977d7d727163\",\"dweb:/ipfs/Qmd5c7Vxtis9wzkDNhxwc6A2QT5H9xn9kfjhx7qx44vpro\"]},\"@openzeppelin/contracts/security/Pausable.sol\":{\"keccak256\":\"0xa35b1f2a670cd2a701a52c398032c9fed72df1909fe394d77ceacbf074e8937b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72b957861691ebdaa78c52834465c4f8296480fe4f1a12ba72dc6c0c8ac076dd\",\"dweb:/ipfs/QmVz1sHCwgEivHPRDswdt9tdvky7EnWqFmbuk1wFE55VMG\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xb03df8481a954604ad0c9125680893b2e3f7ff770fe470e38b89ac61b84e8072\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b34655953d18ba3a45b762fb6bdbb6549af69a27435e10ece178742bf70baf45\",\"dweb:/ipfs/QmcqjUoFLLMyx7dbwSHUnDBH6aphkVHXWQvQRRev5EAWEh\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x027b891937d20ccf213fdb9c31531574256de774bda99d3a70ecef6e1913ed2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://087318b21c528119f649899f5b5580566dd8d7b0303d4904bd0e8580c3545f14\",\"dweb:/ipfs/Qmbn5Mj7aUn8hJuQ8VrQjjEXRsXyJKykgnjR9p4C3nfLtL\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x83fe24f5c04a56091e50f4a345ff504c8bff658a76d4c43b16878c8f940c53b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4c3df1a7ca104b633a7d81c6c6f5192367d150cd5a32cba81f7f27012729013\",\"dweb:/ipfs/QmSim72e3ZVsfgZt8UceCvbiSuMRHR6WDsiamqNzZahGSY\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x90565a39ae45c80f0468dc96c7b20d0afc3055f344c8203a0c9258239f350b9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26e8b38a7ac8e7b4463af00cf7fff1bf48ae9875765bf4f7751e100124d0bc8c\",\"dweb:/ipfs/QmWcsmkVr24xmmjfnBQZoemFniXjj3vwT78Cz6uqZW1Hux\"]},\"@openzeppelin/contracts/utils/math/SafeMath.sol\":{\"keccak256\":\"0x8666f020bd8fc9dc14f07e2ebc52b5f236ab4cdde7c77679b08cb2f94730043b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://163776cbf565c722232393aa2d62cbe8a2ffb5805986abf4906c00e1e07450a6\",\"dweb:/ipfs/QmPZoN9T3cb6o8bGhjBPZcz7im8T8DWhpr3tjLwhJJHx9N\"]},\"project:/contracts/Liquidity.sol\":{\"keccak256\":\"0x2f7ec7991ee499a90cebbc80ce45277f091dc4c4481073ab205de0ba495989c1\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b06c24ff2545667c1f5f856498edfcb42435293a5001baac59c17f7b62f0f6ff\",\"dweb:/ipfs/Qmayp8rQedFw6sk21qi1Q2GLfVo95MZtavZRsN1dSYksvC\"]},\"project:/contracts/interfaces/ILiquidity.sol\":{\"keccak256\":\"0xa9189e5f0c7a314da094d5c15ad81abe57272d19f9ebfe4a76acfcecba624f08\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0cd26434a452d21c57f62870bcfacf9c005bafce767612e436cc6d20bac393fe\",\"dweb:/ipfs/QmUvKZw9oMgZ932XSMcAZDYeW3Z9PuYEUwJUtLtxzUGG5q\"]},\"project:/contracts/interfaces/IMarketMaker.sol\":{\"keccak256\":\"0x1e928695c9df740b3946a736fbd58e44afdef3521524b15672840f2d3db8e9af\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ad62516ec2f5ffd9a9495f4af6802befaae90e5c92251b8c535e8c261204b0c8\",\"dweb:/ipfs/QmNPb9winib67Bk7z5zK9U6ai9Rxarh5KAJgchN3wWAvzU\"]}},\"version\":1}",
|
|
858
|
-
"bytecode": "0x60806040526000600b556000600c556000600d556000600e556000600f553480156200002a57600080fd5b5060405162003c0738038062003c078339810160408190526200004d91620002fa565b604080518082018252600881526715995c9a599a595960c21b602080830191825283518085019094526005845264564954544160d81b9084015281519192916200009a9160039162000254565b508051620000b090600490602084019062000254565b505050620000cd620000c76200011760201b60201c565b6200011b565b6005805460ff60a01b19169055620000e633846200016d565b601080546001600160a01b03191633179055600b91909155600c55506000600f556017805460ff19169055620003ca565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166200019f5760405162461bcd60e51b8152600401620001969062000328565b60405180910390fd5b620001ad600083836200024f565b8060026000828254620001c1919062000368565b90915550506001600160a01b03821660009081526020819052604081208054839290620001f090849062000368565b90915550506040516001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620002359085906200035f565b60405180910390a36200024b600083836200024f565b5050565b505050565b82805462000262906200038d565b90600052602060002090601f016020900481019282620002865760008555620002d1565b82601f10620002a157805160ff1916838001178555620002d1565b82800160010185558215620002d1579182015b82811115620002d1578251825591602001919060010190620002b4565b50620002df929150620002e3565b5090565b5b80821115620002df5760008155600101620002e4565b6000806000606084860312156200030f578283fd5b8351925060208401519150604084015190509250925092565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b600082198211156200038857634e487b7160e01b81526011600452602481fd5b500190565b600281046001821680620003a257607f821691505b60208210811415620003c457634e487b7160e01b600052602260045260246000fd5b50919050565b61382d80620003da6000396000f3fe6080604052600436106102085760003560e01c806370a0823111610118578063a9059cbb116100a0578063dd62ed3e1161006f578063dd62ed3e146107fb578063e5cc74401461081b578063f2fde38b1461083b578063f81f3ee71461085b578063f85771b21461087b5761041c565b8063a9059cbb14610777578063b2f5a54c14610797578063cce7ec13146107b9578063d3c7c2c7146107d95761041c565b80638da5cb5b116100e75780638da5cb5b146106e057806395ce0af81461070257806395d89b41146107225780639e8b6b7f14610737578063a457c2d7146107575761041c565b806370a0823114610676578063715018a6146106965780638456cb59146106ab5780638513c619146106c05761041c565b8063313ce5671161019b578063451353f11161016a578063451353f1146105d357806356abb19b146105f35780635c975abb146106215780635d4f5b1c146106365780636ceb48b7146106565761041c565b8063313ce5671461054f5780633306022614610571578063395093511461059e5780633f4ba83a146105be5761041c565b80631fbe552e116101d75780631fbe552e146104bd57806323b872dd146104df57806324ef84ec146104ff5780632ceafc271461052f5761041c565b8063050616161461042157806306fdde0314610443578063095ea7b31461046e57806318160ddd1461049b5761041c565b3661041c57600c541561023f5742600c541161023f5760405162461bcd60e51b8152600401610236906134c6565b60405180910390fd5b3461025c5760405162461bcd60e51b81526004016102369061349f565b61026461089b565b156102815760405162461bcd60e51b8152600401610236906133c1565b60175460ff161561029157600080fd5b6017805460ff191660011790556040517f5a903c0a34c24eaba92e7ae11cc1c39d622c4d146d5dcb777537881f0dac3599906102d090339034906130d8565b60405180910390a1336000908152601160205260409081902090516102f49061305b565b908152604051908190036020019020546103ad576040805160808101825260059181019182526432ba3432b960d91b606082015290815233602080830191909152600a805460018101825560009190915282518051849360029093027fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80192610381928492910190612c5c565b5060209190910151600190910180546001600160a01b0319166001600160a01b03909216919091179055505b336000908152601160205260409081902090516103e491906103ce9061305b565b90815260405190819003602001902054346108ab565b336000908152601160205260409081902090516104009061305b565b908152604051908190036020019020556017805460ff19169055005b600080fd5b34801561042d57600080fd5b5061044161043c366004612f8a565b6108be565b005b34801561044f57600080fd5b50610458610a2e565b604051610465919061326f565b60405180910390f35b34801561047a57600080fd5b5061048e610489366004612e26565b610ac0565b6040516104659190613264565b3480156104a757600080fd5b506104b0610add565b6040516104659190613632565b3480156104c957600080fd5b506104d2610ae3565b604051610465919061315b565b3480156104eb57600080fd5b5061048e6104fa366004612deb565b610b97565b34801561050b57600080fd5b5061051f61051a366004612d5d565b610c27565b6040516104659493929190613660565b34801561053b57600080fd5b5061044161054a366004612e26565b610cdc565b34801561055b57600080fd5b50610564610de2565b604051610465919061367b565b34801561057d57600080fd5b5061059161058c366004612d5d565b610de7565b604051610465919061310e565b3480156105aa57600080fd5b5061048e6105b9366004612e26565b610e9d565b3480156105ca57600080fd5b50610441610ef1565b3480156105df57600080fd5b506104416105ee366004612fac565b610f3a565b3480156105ff57600080fd5b5061061361060e366004612da9565b611069565b604051610465929190613652565b34801561062d57600080fd5b5061048e61089b565b34801561064257600080fd5b5061048e610651366004612d5d565b6110fe565b34801561066257600080fd5b506104b0610671366004612e4f565b61112c565b34801561068257600080fd5b506104b0610691366004612d5d565b6111ac565b3480156106a257600080fd5b506104416111c7565b3480156106b757600080fd5b50610441611210565b3480156106cc57600080fd5b506104416106db366004612d77565b611257565b3480156106ec57600080fd5b506106f5611318565b604051610465919061306c565b34801561070e57600080fd5b5061044161071d366004612fd0565b611327565b34801561072e57600080fd5b5061045861137c565b34801561074357600080fd5b50610441610752366004612deb565b61138b565b34801561076357600080fd5b5061048e610772366004612e26565b611573565b34801561078357600080fd5b5061048e610792366004612e26565b6115ec565b3480156107a357600080fd5b506107ac611600565b60405161046591906131a8565b3480156107c557600080fd5b506104416107d4366004612e26565b61173a565b3480156107e557600080fd5b506107ee611ce0565b6040516104659190613224565b34801561080757600080fd5b506104b0610816366004612d77565b611d4b565b34801561082757600080fd5b50610441610836366004612e9b565b611d76565b34801561084757600080fd5b50610441610856366004612d5d565b612195565b34801561086757600080fd5b50610441610876366004612e26565b612206565b34801561088757600080fd5b50610441610896366004612d77565b612308565b600554600160a01b900460ff1690565b60006108b782846136db565b9392505050565b6108c6612870565b6001600160a01b03166108d7611318565b6001600160a01b0316146108fd5760405162461bcd60e51b81526004016102369061346a565b61090e610908611318565b83612874565b6001600160a01b03811660009081526016602052604090206001015461093490836108ab565b6001600160a01b0382166000908152601660205260408120600101919091555b600a54811015610a295760006109bf60126000600a858154811061098857634e487b7160e01b600052603260045260246000fd5b6000918252602080832060016002909302018201546001600160a01b03168452830193909352604090910190200154600d5461293c565b9050610a146109cc611318565b600a84815481106109ed57634e487b7160e01b600052603260045260246000fd5b60009182526020909120600160029092020101546001600160a01b03166104fa8488612948565b50508080610a21906137b0565b915050610954565b505050565b606060038054610a3d90613775565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6990613775565b8015610ab65780601f10610a8b57610100808354040283529160200191610ab6565b820191906000526020600020905b815481529060010190602001808311610a9957829003601f168201915b5050505050905090565b6000610ad4610acd612870565b8484612954565b50600192915050565b60025490565b6060610aed612870565b6001600160a01b0316610afe611318565b6001600160a01b031614610b245760405162461bcd60e51b81526004016102369061346a565b6006805480602002602001604051908101604052809291908181526020016000905b82821015610b8e5760008481526020908190206040805180820190915260028502909101805482526001908101546001600160a01b0316828401529083529092019101610b46565b50505050905090565b6000610ba4848484612a08565b6001600160a01b038416600090815260016020526040812081610bc5612870565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905082811015610c085760405162461bcd60e51b815260040161023690613422565b610c1c85610c14612870565b858403612954565b506001949350505050565b600080600080610c35612870565b6001600160a01b0316610c46611318565b6001600160a01b031614610c6c5760405162461bcd60e51b81526004016102369061346a565b6000610c7c600d54600e54612b2c565b6001600160a01b03871660009081526016602052604081205491925090610cab90610ca6896111ac565b612b2c565b6001600160a01b03979097166000908152601660205260409020805460019091015492989096509194509092505050565b610ce4612870565b6001600160a01b0316610cf5611318565b6001600160a01b031614610d1b5760405162461bcd60e51b81526004016102369061346a565b6001600160a01b038216600090815260096020526040902054610dde576040805180820182528281526001600160a01b03848116602080840182815260088054600181018255600082815296517ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee360029092029182015591517ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee490920180546001600160a01b031916929095169190911790935591549083526009909152919020555b5050565b601290565b6060610df1612870565b6001600160a01b0316610e02611318565b6001600160a01b031614610e285760405162461bcd60e51b81526004016102369061346a565b6001600160a01b03821660009081526013602090815260409182902080548351818402810184019094528084529091830182828015610e9057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e72575b505050505090505b919050565b6000610ad4610eaa612870565b848460016000610eb8612870565b6001600160a01b03908116825260208083019390935260409182016000908120918b1681529252902054610eec91906136db565b612954565b610ef9612870565b6001600160a01b0316610f0a611318565b6001600160a01b031614610f305760405162461bcd60e51b81526004016102369061346a565b610f38612b38565b565b33600090815260076020526040902054610f5357600080fd5b6001600160a01b038216600090815260096020526040902054610f7557600080fd5b610f7d61089b565b15610f9a5760405162461bcd60e51b8152600401610236906133c1565b60175460ff1615610faa57600080fd5b6017805460ff191660011790553360009081526014602090815260408083206001600160a01b0385168452909152902054600d5415801590610feb57508015155b15611059573360009081526015602090815260408083206001600160a01b0387168452825280832084845290915290206001015461102990856108ab565b3360009081526015602090815260408083206001600160a01b038816845282528083208584529091529020600101555b50506017805460ff191690555050565b600080611074612870565b6001600160a01b0316611085611318565b6001600160a01b0316146110ab5760405162461bcd60e51b81526004016102369061346a565b50506001600160a01b039283166000818152601460209081526040808320948716835293815283822054928252601581528382209490951681529284528183209083529092522080546001909101549091565b6001600160a01b0381166000908152600960205260408120541561112457506001610e98565b506000610e98565b6000611136612870565b6001600160a01b0316611147611318565b6001600160a01b03161461116d5760405162461bcd60e51b81526004016102369061346a565b6001600160a01b03831660009081526011602052604090819020905161119490849061303f565b90815260405190819003602001902054905092915050565b6001600160a01b031660009081526020819052604090205490565b6111cf612870565b6001600160a01b03166111e0611318565b6001600160a01b0316146112065760405162461bcd60e51b81526004016102369061346a565b610f386000612ba9565b611218612870565b6001600160a01b0316611229611318565b6001600160a01b03161461124f5760405162461bcd60e51b81526004016102369061346a565b610f38612bfb565b61125f612870565b6001600160a01b0316611270611318565b6001600160a01b0316146112965760405162461bcd60e51b81526004016102369061346a565b6001600160a01b03808316600090815260146020908152604080832093851683529290522054610dde576001600160a01b03808316600081815260136020908152604080832080546001810182558185528385200180549688166001600160a01b03199097168717905593835292546014825283832094835293905220555050565b6005546001600160a01b031690565b61132f612870565b6001600160a01b0316611340611318565b6001600160a01b0316146113665760405162461bcd60e51b81526004016102369061346a565b6113703384612874565b600b91909155600c5550565b606060048054610a3d90613775565b611393612870565b6001600160a01b03166113a4611318565b6001600160a01b0316146113ca5760405162461bcd60e51b81526004016102369061346a565b6113d261089b565b156113ef5760405162461bcd60e51b8152600401610236906133c1565b6001600160a01b038084166000908152601460209081526040808320938616835292905220546114315760405162461bcd60e51b8152600401610236906135cb565b604051637acb775760e01b81526001600160a01b03841690637acb77579061145f908490869060040161363b565b600060405180830381600087803b15801561147957600080fd5b505af115801561148d573d6000803e3d6000fd5b505050506114a261149c611318565b82612874565b6114b46114ad611318565b8483610b97565b506114c1600e54826108ab565b600e556001600160a01b0383166000908152601660205260409020546114e790826108ab565b6001600160a01b03808516600081815260166020908152604080832095909555601481528482209387168252928352838120549181526015835283812030825283528381208282529092529190205461154090836108ab565b6001600160a01b039094166000908152601560209081526040808320308452825280832093835292905220929092555050565b60008060016000611582612870565b6001600160a01b03908116825260208083019390935260409182016000908120918816815292529020549050828110156115ce5760405162461bcd60e51b815260040161023690613586565b6115e26115d9612870565b85858403612954565b5060019392505050565b6000610ad46115f9612870565b8484612a08565b606061160a612870565b6001600160a01b031661161b611318565b6001600160a01b0316146116415760405162461bcd60e51b81526004016102369061346a565b600a805480602002602001604051908101604052809291908181526020016000905b82821015610b8e578382906000526020600020906002020160405180604001604052908160008201805461169690613775565b80601f01602080910402602001604051908101604052809291908181526020018280546116c290613775565b801561170f5780601f106116e45761010080835404028352916020019161170f565b820191906000526020600020905b8154815290600101906020018083116116f257829003601f168201915b50505091835250506001918201546001600160a01b0316602091820152918352929092019101611663565b600c54156117635742600c54116117635760405162461bcd60e51b8152600401610236906134c6565b61176b61089b565b156117885760405162461bcd60e51b8152600401610236906133c1565b6001600160a01b038216600090815260096020526040812054156117aa575060015b8015610a295760175460ff16156117c057600080fd5b6017805460ff191660011790556040516323b872dd60e01b81526001600160a01b038416906323b872dd906117fd90339030908790600401613080565b602060405180830381600087803b15801561181757600080fd5b505af115801561182b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184f9190612ef7565b15611cd1577f5a903c0a34c24eaba92e7ae11cc1c39d622c4d146d5dcb777537881f0dac359933846001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b1580156118af57600080fd5b505afa1580156118c3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118eb9190810190612f17565b846040516118fb939291906130a4565b60405180910390a13360009081526011602052604080822081516306fdde0360e01b8152915190926001600160a01b038716926306fdde039260048083019392829003018186803b15801561194f57600080fd5b505afa158015611963573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261198b9190810190612f17565b604051611998919061303f565b90815260405190819003602001902054611ab35760006040518060400160405280856001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b1580156119f257600080fd5b505afa158015611a06573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a2e9190810190612f17565b815233602091820152600a805460018101825560009190915282518051939450849360029092027fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80192611a8792849290910190612c5c565b5060209190910151600190910180546001600160a01b0319166001600160a01b03909216919091179055505b3360009081526011602052604080822081516306fdde0360e01b81529151611b619391926001600160a01b038816926306fdde0392600480840193829003018186803b158015611b0257600080fd5b505afa158015611b16573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b3e9190810190612f17565b604051611b4b919061303f565b90815260405190819003602001902054836108ab565b3360009081526011602052604080822081516306fdde0360e01b8152915190926001600160a01b038816926306fdde039260048083019392829003018186803b158015611bad57600080fd5b505afa158015611bc1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611be99190810190612f17565b604051611bf6919061303f565b9081526040805191829003602090810183209390935533600090815260119093528083206306fdde0360e01b83529051869391926001600160a01b038516926306fdde0392600480840193829003018186803b158015611c5557600080fd5b505afa158015611c69573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c919190810190612f17565b604051611c9e919061303f565b90815260405190819003602001902060010180546001600160a01b03929092166001600160a01b03199092169190911790555b6017805460ff19169055505050565b606060088054806020026020016040519081016040528092919081815260200160009082821015610b8e5760008481526020908190206040805180820190915260028502909101805482526001908101546001600160a01b0316828401529083529092019101610b46565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b611d7e612870565b6001600160a01b0316611d8f611318565b6001600160a01b031614611db55760405162461bcd60e51b81526004016102369061346a565b60175460ff1615611dc557600080fd5b6017805460ff19166001179055600b54811180611df35750611df0611de8610add565b600f54612b2c565b81115b15611fa0576001600160a01b038416600090815260116020526040908190209051611e3a9190611e2490869061303f565b9081526040519081900360200190205483612b2c565b6001600160a01b038516600090815260116020526040908190209051611e6190869061303f565b9081526040516020918190038201812092909255611e819185910161303f565b604051602081830303815290604052805190602001206432ba3432b960d91b14611f63576001600160a01b038416600090815260116020526040908190209051611ecc90859061303f565b908152604051908190036020018120600101546323b872dd60e01b82526001600160a01b0316906323b872dd90611f0b90309088908790600401613080565b602060405180830381600087803b158015611f2557600080fd5b505af1158015611f39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f5d9190612ef7565b50611f9b565b6040516001600160a01b0385169083156108fc029084906000818181858888f19350505050158015611f99573d6000803e3d6000fd5b505b611059565b611fb2611fab611318565b8583610b97565b50611fbf600f54826108ab565b600f556001600160a01b038416600090815260126020526040902054611fe590826108ab565b6001600160a01b038516600090815260126020526040902055600d5461200b90826108ab565b600d556001600160a01b03841660009081526012602052604090206001015461203490826108ab565b6001600160a01b03851660009081526012602090815260409182902060010192909255516120649185910161303f565b604051602081830303815290604052805190602001206432ba3432b960d91b1461214a576001600160a01b0384166000908152601160205260409081902090516120af90859061303f565b908152604051908190036020019020600101546001600160a01b03166323b872dd306120d9611318565b856040518463ffffffff1660e01b81526004016120f893929190613080565b602060405180830381600087803b15801561211257600080fd5b505af1158015612126573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f999190612ef7565b6010546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015612184573d6000803e3d6000fd5b5050506017805460ff191690555050565b61219d612870565b6001600160a01b03166121ae611318565b6001600160a01b0316146121d45760405162461bcd60e51b81526004016102369061346a565b6001600160a01b0381166121fa5760405162461bcd60e51b8152600401610236906132f3565b61220381612ba9565b50565b61220e612870565b6001600160a01b031661221f611318565b6001600160a01b0316146122455760405162461bcd60e51b81526004016102369061346a565b6001600160a01b038216600090815260076020526040902054610dde576040805180820182529182526001600160a01b03928316602080840182815260068054600181018255600082815296517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f60029092029182015591517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4090920180546001600160a01b031916929097169190911790955593549083526007909352902055565b612310612870565b6001600160a01b0316612321611318565b6001600160a01b0316146123475760405162461bcd60e51b81526004016102369061346a565b6001600160a01b03808316600090815260146020908152604080832093851683529290529081205415610a295760005b6001600160a01b03841660009081526013602052604090205481101561286a576001600160a01b038481166000908152601360205260409020805491851691839081106123d457634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03161415612625576001600160a01b03841660009081526013602052604090205461241490600190613732565b811415612493576001600160a01b038416600090815260136020526040902080548290811061245357634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910180546001600160a01b03191690556001600160a01b0386811683526014825260408084209187168452915281205561261c565b6001600160a01b03841660009081526013602052604090206124b68260016136db565b815481106124d457634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0387811684526013909252604090922080549190921691908390811061251f57634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b0394851617905591861681526014825260408082206013909352812080546001939291908590811061258257634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020546125b19190613732565b6001600160a01b0385166000908152601460209081526040808320601390925282208054919291859081106125f657634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020555b60019150612858565b8115612858576001600160a01b03841660009081526013602052604090205461265090600190613732565b8114156126cf576001600160a01b038416600090815260136020526040902080548290811061268f57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910180546001600160a01b03191690556001600160a01b03868116835260148252604080842091871684529152812055612858565b6001600160a01b03841660009081526013602052604090206126f28260016136db565b8154811061271057634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0387811684526013909252604090922080549190921691908390811061275b57634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559186168152601482526040808220601390935281208054600193929190859081106127be57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020546127ed9190613732565b6001600160a01b03851660009081526014602090815260408083206013909252822080549192918590811061283257634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020555b80612862816137b0565b915050612377565b50505050565b3390565b6001600160a01b03821661289a5760405162461bcd60e51b8152600401610236906135fb565b6128a660008383610a29565b80600260008282546128b891906136db565b90915550506001600160a01b038216600090815260208190526040812080548392906128e59084906136db565b90915550506040516001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612928908590613632565b60405180910390a3610dde60008383610a29565b60006108b782846136f3565b60006108b78284613713565b6001600160a01b03831661297a5760405162461bcd60e51b815260040161023690613542565b6001600160a01b0382166129a05760405162461bcd60e51b815260040161023690613339565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906129fb908590613632565b60405180910390a3505050565b6001600160a01b038316612a2e5760405162461bcd60e51b8152600401610236906134fd565b6001600160a01b038216612a545760405162461bcd60e51b815260040161023690613282565b612a5f838383610a29565b6001600160a01b03831660009081526020819052604090205481811015612a985760405162461bcd60e51b81526004016102369061337b565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290612acf9084906136db565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b199190613632565b60405180910390a361286a848484610a29565b60006108b78284613732565b612b4061089b565b612b5c5760405162461bcd60e51b8152600401610236906132c5565b6005805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa612b92612870565b604051612b9f919061306c565b60405180910390a1565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b612c0361089b565b15612c205760405162461bcd60e51b8152600401610236906133f8565b6005805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612b92612870565b828054612c6890613775565b90600052602060002090601f016020900481019282612c8a5760008555612cd0565b82601f10612ca357805160ff1916838001178555612cd0565b82800160010185558215612cd0579182015b82811115612cd0578251825591602001919060010190612cb5565b50612cdc929150612ce0565b5090565b5b80821115612cdc5760008155600101612ce1565b80356001600160a01b0381168114610e9857600080fd5b600082601f830112612d1c578081fd5b8135612d2f612d2a826136b3565b613689565b818152846020838601011115612d43578283fd5b816020850160208301379081016020019190915292915050565b600060208284031215612d6e578081fd5b6108b782612cf5565b60008060408385031215612d89578081fd5b612d9283612cf5565b9150612da060208401612cf5565b90509250929050565b600080600060608486031215612dbd578081fd5b612dc684612cf5565b9250612dd460208501612cf5565b9150612de260408501612cf5565b90509250925092565b600080600060608486031215612dff578283fd5b612e0884612cf5565b9250612e1660208501612cf5565b9150604084013590509250925092565b60008060408385031215612e38578182fd5b612e4183612cf5565b946020939093013593505050565b60008060408385031215612e61578182fd5b612e6a83612cf5565b9150602083013567ffffffffffffffff811115612e85578182fd5b612e9185828601612d0c565b9150509250929050565b60008060008060808587031215612eb0578081fd5b612eb985612cf5565b9350602085013567ffffffffffffffff811115612ed4578182fd5b612ee087828801612d0c565b949794965050505060408301359260600135919050565b600060208284031215612f08578081fd5b815180151581146108b7578182fd5b600060208284031215612f28578081fd5b815167ffffffffffffffff811115612f3e578182fd5b8201601f81018413612f4e578182fd5b8051612f5c612d2a826136b3565b818152856020838501011115612f70578384fd5b612f81826020830160208601613749565b95945050505050565b60008060408385031215612f9c578182fd5b82359150612da060208401612cf5565b600080600060608486031215612fc0578283fd5b83359250612dd460208501612cf5565b600080600060608486031215612fe4578283fd5b505081359360208301359350604090920135919050565b60008151808452613013816020860160208601613749565b601f01601f19169290920160200192915050565b805182526020908101516001600160a01b0316910152565b60008251613051818460208701613749565b9190910192915050565b6432ba3432b960d91b815260050190565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03841681526060602082018190526000906130c890830185612ffb565b9050826040830152949350505050565b6001600160a01b039290921682526060602083018190526005908301526432ba3432b960d91b6080830152604082015260a00190565b6020808252825182820181905260009190848201906040850190845b8181101561314f5783516001600160a01b03168352928401929184019160010161312a565b50909695505050505050565b602080825282518282018190526000919060409081850190868401855b8281101561319b5761318b848351613027565b9284019290850190600101613178565b5091979650505050505050565b60208082528251828201819052600091906040908185019080840286018301878501865b8381101561321657888303603f19018552815180518785526131f088860182612ffb565b918901516001600160a01b031694890194909452948701949250908601906001016131cc565b509098975050505050505050565b602080825282518282018190526000919060409081850190868401855b8281101561319b57613254848351613027565b9284019290850190600101613241565b901515815260200190565b6000602082526108b76020830184612ffb565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b60208082526018908201527f436f6e747261637420696e207061757365642073746174650000000000000000604082015260600190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252600d908201526c16995c9bc8195d1a081cd95b9d609a1b604082015260600190565b6020808252601c908201527f537562736372697074696f6e2077696e646f7720627265616368656400000000604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b60208082526016908201527513585b9859d95c88191bd95cc81b9bdd08195e1a5cdd60521b604082015260600190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b9182526001600160a01b0316602082015260400190565b918252602082015260400190565b93845260208401929092526040830152606082015260800190565b60ff91909116815260200190565b60405181810167ffffffffffffffff811182821017156136ab576136ab6137e1565b604052919050565b600067ffffffffffffffff8211156136cd576136cd6137e1565b50601f01601f191660200190565b600082198211156136ee576136ee6137cb565b500190565b60008261370e57634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561372d5761372d6137cb565b500290565b600082821015613744576137446137cb565b500390565b60005b8381101561376457818101518382015260200161374c565b8381111561286a5750506000910152565b60028104600182168061378957607f821691505b602082108114156137aa57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156137c4576137c46137cb565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220db62fb5fba3fd9ffa268d31654bcfa1b5fc116cbd7e55b2302196130f3d80d5664736f6c63430008000033",
|
|
859
|
-
"deployedBytecode": "0x6080604052600436106102085760003560e01c806370a0823111610118578063a9059cbb116100a0578063dd62ed3e1161006f578063dd62ed3e146107fb578063e5cc74401461081b578063f2fde38b1461083b578063f81f3ee71461085b578063f85771b21461087b5761041c565b8063a9059cbb14610777578063b2f5a54c14610797578063cce7ec13146107b9578063d3c7c2c7146107d95761041c565b80638da5cb5b116100e75780638da5cb5b146106e057806395ce0af81461070257806395d89b41146107225780639e8b6b7f14610737578063a457c2d7146107575761041c565b806370a0823114610676578063715018a6146106965780638456cb59146106ab5780638513c619146106c05761041c565b8063313ce5671161019b578063451353f11161016a578063451353f1146105d357806356abb19b146105f35780635c975abb146106215780635d4f5b1c146106365780636ceb48b7146106565761041c565b8063313ce5671461054f5780633306022614610571578063395093511461059e5780633f4ba83a146105be5761041c565b80631fbe552e116101d75780631fbe552e146104bd57806323b872dd146104df57806324ef84ec146104ff5780632ceafc271461052f5761041c565b8063050616161461042157806306fdde0314610443578063095ea7b31461046e57806318160ddd1461049b5761041c565b3661041c57600c541561023f5742600c541161023f5760405162461bcd60e51b8152600401610236906134c6565b60405180910390fd5b3461025c5760405162461bcd60e51b81526004016102369061349f565b61026461089b565b156102815760405162461bcd60e51b8152600401610236906133c1565b60175460ff161561029157600080fd5b6017805460ff191660011790556040517f5a903c0a34c24eaba92e7ae11cc1c39d622c4d146d5dcb777537881f0dac3599906102d090339034906130d8565b60405180910390a1336000908152601160205260409081902090516102f49061305b565b908152604051908190036020019020546103ad576040805160808101825260059181019182526432ba3432b960d91b606082015290815233602080830191909152600a805460018101825560009190915282518051849360029093027fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80192610381928492910190612c5c565b5060209190910151600190910180546001600160a01b0319166001600160a01b03909216919091179055505b336000908152601160205260409081902090516103e491906103ce9061305b565b90815260405190819003602001902054346108ab565b336000908152601160205260409081902090516104009061305b565b908152604051908190036020019020556017805460ff19169055005b600080fd5b34801561042d57600080fd5b5061044161043c366004612f8a565b6108be565b005b34801561044f57600080fd5b50610458610a2e565b604051610465919061326f565b60405180910390f35b34801561047a57600080fd5b5061048e610489366004612e26565b610ac0565b6040516104659190613264565b3480156104a757600080fd5b506104b0610add565b6040516104659190613632565b3480156104c957600080fd5b506104d2610ae3565b604051610465919061315b565b3480156104eb57600080fd5b5061048e6104fa366004612deb565b610b97565b34801561050b57600080fd5b5061051f61051a366004612d5d565b610c27565b6040516104659493929190613660565b34801561053b57600080fd5b5061044161054a366004612e26565b610cdc565b34801561055b57600080fd5b50610564610de2565b604051610465919061367b565b34801561057d57600080fd5b5061059161058c366004612d5d565b610de7565b604051610465919061310e565b3480156105aa57600080fd5b5061048e6105b9366004612e26565b610e9d565b3480156105ca57600080fd5b50610441610ef1565b3480156105df57600080fd5b506104416105ee366004612fac565b610f3a565b3480156105ff57600080fd5b5061061361060e366004612da9565b611069565b604051610465929190613652565b34801561062d57600080fd5b5061048e61089b565b34801561064257600080fd5b5061048e610651366004612d5d565b6110fe565b34801561066257600080fd5b506104b0610671366004612e4f565b61112c565b34801561068257600080fd5b506104b0610691366004612d5d565b6111ac565b3480156106a257600080fd5b506104416111c7565b3480156106b757600080fd5b50610441611210565b3480156106cc57600080fd5b506104416106db366004612d77565b611257565b3480156106ec57600080fd5b506106f5611318565b604051610465919061306c565b34801561070e57600080fd5b5061044161071d366004612fd0565b611327565b34801561072e57600080fd5b5061045861137c565b34801561074357600080fd5b50610441610752366004612deb565b61138b565b34801561076357600080fd5b5061048e610772366004612e26565b611573565b34801561078357600080fd5b5061048e610792366004612e26565b6115ec565b3480156107a357600080fd5b506107ac611600565b60405161046591906131a8565b3480156107c557600080fd5b506104416107d4366004612e26565b61173a565b3480156107e557600080fd5b506107ee611ce0565b6040516104659190613224565b34801561080757600080fd5b506104b0610816366004612d77565b611d4b565b34801561082757600080fd5b50610441610836366004612e9b565b611d76565b34801561084757600080fd5b50610441610856366004612d5d565b612195565b34801561086757600080fd5b50610441610876366004612e26565b612206565b34801561088757600080fd5b50610441610896366004612d77565b612308565b600554600160a01b900460ff1690565b60006108b782846136db565b9392505050565b6108c6612870565b6001600160a01b03166108d7611318565b6001600160a01b0316146108fd5760405162461bcd60e51b81526004016102369061346a565b61090e610908611318565b83612874565b6001600160a01b03811660009081526016602052604090206001015461093490836108ab565b6001600160a01b0382166000908152601660205260408120600101919091555b600a54811015610a295760006109bf60126000600a858154811061098857634e487b7160e01b600052603260045260246000fd5b6000918252602080832060016002909302018201546001600160a01b03168452830193909352604090910190200154600d5461293c565b9050610a146109cc611318565b600a84815481106109ed57634e487b7160e01b600052603260045260246000fd5b60009182526020909120600160029092020101546001600160a01b03166104fa8488612948565b50508080610a21906137b0565b915050610954565b505050565b606060038054610a3d90613775565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6990613775565b8015610ab65780601f10610a8b57610100808354040283529160200191610ab6565b820191906000526020600020905b815481529060010190602001808311610a9957829003601f168201915b5050505050905090565b6000610ad4610acd612870565b8484612954565b50600192915050565b60025490565b6060610aed612870565b6001600160a01b0316610afe611318565b6001600160a01b031614610b245760405162461bcd60e51b81526004016102369061346a565b6006805480602002602001604051908101604052809291908181526020016000905b82821015610b8e5760008481526020908190206040805180820190915260028502909101805482526001908101546001600160a01b0316828401529083529092019101610b46565b50505050905090565b6000610ba4848484612a08565b6001600160a01b038416600090815260016020526040812081610bc5612870565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905082811015610c085760405162461bcd60e51b815260040161023690613422565b610c1c85610c14612870565b858403612954565b506001949350505050565b600080600080610c35612870565b6001600160a01b0316610c46611318565b6001600160a01b031614610c6c5760405162461bcd60e51b81526004016102369061346a565b6000610c7c600d54600e54612b2c565b6001600160a01b03871660009081526016602052604081205491925090610cab90610ca6896111ac565b612b2c565b6001600160a01b03979097166000908152601660205260409020805460019091015492989096509194509092505050565b610ce4612870565b6001600160a01b0316610cf5611318565b6001600160a01b031614610d1b5760405162461bcd60e51b81526004016102369061346a565b6001600160a01b038216600090815260096020526040902054610dde576040805180820182528281526001600160a01b03848116602080840182815260088054600181018255600082815296517ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee360029092029182015591517ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee490920180546001600160a01b031916929095169190911790935591549083526009909152919020555b5050565b601290565b6060610df1612870565b6001600160a01b0316610e02611318565b6001600160a01b031614610e285760405162461bcd60e51b81526004016102369061346a565b6001600160a01b03821660009081526013602090815260409182902080548351818402810184019094528084529091830182828015610e9057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e72575b505050505090505b919050565b6000610ad4610eaa612870565b848460016000610eb8612870565b6001600160a01b03908116825260208083019390935260409182016000908120918b1681529252902054610eec91906136db565b612954565b610ef9612870565b6001600160a01b0316610f0a611318565b6001600160a01b031614610f305760405162461bcd60e51b81526004016102369061346a565b610f38612b38565b565b33600090815260076020526040902054610f5357600080fd5b6001600160a01b038216600090815260096020526040902054610f7557600080fd5b610f7d61089b565b15610f9a5760405162461bcd60e51b8152600401610236906133c1565b60175460ff1615610faa57600080fd5b6017805460ff191660011790553360009081526014602090815260408083206001600160a01b0385168452909152902054600d5415801590610feb57508015155b15611059573360009081526015602090815260408083206001600160a01b0387168452825280832084845290915290206001015461102990856108ab565b3360009081526015602090815260408083206001600160a01b038816845282528083208584529091529020600101555b50506017805460ff191690555050565b600080611074612870565b6001600160a01b0316611085611318565b6001600160a01b0316146110ab5760405162461bcd60e51b81526004016102369061346a565b50506001600160a01b039283166000818152601460209081526040808320948716835293815283822054928252601581528382209490951681529284528183209083529092522080546001909101549091565b6001600160a01b0381166000908152600960205260408120541561112457506001610e98565b506000610e98565b6000611136612870565b6001600160a01b0316611147611318565b6001600160a01b03161461116d5760405162461bcd60e51b81526004016102369061346a565b6001600160a01b03831660009081526011602052604090819020905161119490849061303f565b90815260405190819003602001902054905092915050565b6001600160a01b031660009081526020819052604090205490565b6111cf612870565b6001600160a01b03166111e0611318565b6001600160a01b0316146112065760405162461bcd60e51b81526004016102369061346a565b610f386000612ba9565b611218612870565b6001600160a01b0316611229611318565b6001600160a01b03161461124f5760405162461bcd60e51b81526004016102369061346a565b610f38612bfb565b61125f612870565b6001600160a01b0316611270611318565b6001600160a01b0316146112965760405162461bcd60e51b81526004016102369061346a565b6001600160a01b03808316600090815260146020908152604080832093851683529290522054610dde576001600160a01b03808316600081815260136020908152604080832080546001810182558185528385200180549688166001600160a01b03199097168717905593835292546014825283832094835293905220555050565b6005546001600160a01b031690565b61132f612870565b6001600160a01b0316611340611318565b6001600160a01b0316146113665760405162461bcd60e51b81526004016102369061346a565b6113703384612874565b600b91909155600c5550565b606060048054610a3d90613775565b611393612870565b6001600160a01b03166113a4611318565b6001600160a01b0316146113ca5760405162461bcd60e51b81526004016102369061346a565b6113d261089b565b156113ef5760405162461bcd60e51b8152600401610236906133c1565b6001600160a01b038084166000908152601460209081526040808320938616835292905220546114315760405162461bcd60e51b8152600401610236906135cb565b604051637acb775760e01b81526001600160a01b03841690637acb77579061145f908490869060040161363b565b600060405180830381600087803b15801561147957600080fd5b505af115801561148d573d6000803e3d6000fd5b505050506114a261149c611318565b82612874565b6114b46114ad611318565b8483610b97565b506114c1600e54826108ab565b600e556001600160a01b0383166000908152601660205260409020546114e790826108ab565b6001600160a01b03808516600081815260166020908152604080832095909555601481528482209387168252928352838120549181526015835283812030825283528381208282529092529190205461154090836108ab565b6001600160a01b039094166000908152601560209081526040808320308452825280832093835292905220929092555050565b60008060016000611582612870565b6001600160a01b03908116825260208083019390935260409182016000908120918816815292529020549050828110156115ce5760405162461bcd60e51b815260040161023690613586565b6115e26115d9612870565b85858403612954565b5060019392505050565b6000610ad46115f9612870565b8484612a08565b606061160a612870565b6001600160a01b031661161b611318565b6001600160a01b0316146116415760405162461bcd60e51b81526004016102369061346a565b600a805480602002602001604051908101604052809291908181526020016000905b82821015610b8e578382906000526020600020906002020160405180604001604052908160008201805461169690613775565b80601f01602080910402602001604051908101604052809291908181526020018280546116c290613775565b801561170f5780601f106116e45761010080835404028352916020019161170f565b820191906000526020600020905b8154815290600101906020018083116116f257829003601f168201915b50505091835250506001918201546001600160a01b0316602091820152918352929092019101611663565b600c54156117635742600c54116117635760405162461bcd60e51b8152600401610236906134c6565b61176b61089b565b156117885760405162461bcd60e51b8152600401610236906133c1565b6001600160a01b038216600090815260096020526040812054156117aa575060015b8015610a295760175460ff16156117c057600080fd5b6017805460ff191660011790556040516323b872dd60e01b81526001600160a01b038416906323b872dd906117fd90339030908790600401613080565b602060405180830381600087803b15801561181757600080fd5b505af115801561182b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184f9190612ef7565b15611cd1577f5a903c0a34c24eaba92e7ae11cc1c39d622c4d146d5dcb777537881f0dac359933846001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b1580156118af57600080fd5b505afa1580156118c3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118eb9190810190612f17565b846040516118fb939291906130a4565b60405180910390a13360009081526011602052604080822081516306fdde0360e01b8152915190926001600160a01b038716926306fdde039260048083019392829003018186803b15801561194f57600080fd5b505afa158015611963573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261198b9190810190612f17565b604051611998919061303f565b90815260405190819003602001902054611ab35760006040518060400160405280856001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b1580156119f257600080fd5b505afa158015611a06573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a2e9190810190612f17565b815233602091820152600a805460018101825560009190915282518051939450849360029092027fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80192611a8792849290910190612c5c565b5060209190910151600190910180546001600160a01b0319166001600160a01b03909216919091179055505b3360009081526011602052604080822081516306fdde0360e01b81529151611b619391926001600160a01b038816926306fdde0392600480840193829003018186803b158015611b0257600080fd5b505afa158015611b16573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b3e9190810190612f17565b604051611b4b919061303f565b90815260405190819003602001902054836108ab565b3360009081526011602052604080822081516306fdde0360e01b8152915190926001600160a01b038816926306fdde039260048083019392829003018186803b158015611bad57600080fd5b505afa158015611bc1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611be99190810190612f17565b604051611bf6919061303f565b9081526040805191829003602090810183209390935533600090815260119093528083206306fdde0360e01b83529051869391926001600160a01b038516926306fdde0392600480840193829003018186803b158015611c5557600080fd5b505afa158015611c69573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c919190810190612f17565b604051611c9e919061303f565b90815260405190819003602001902060010180546001600160a01b03929092166001600160a01b03199092169190911790555b6017805460ff19169055505050565b606060088054806020026020016040519081016040528092919081815260200160009082821015610b8e5760008481526020908190206040805180820190915260028502909101805482526001908101546001600160a01b0316828401529083529092019101610b46565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b611d7e612870565b6001600160a01b0316611d8f611318565b6001600160a01b031614611db55760405162461bcd60e51b81526004016102369061346a565b60175460ff1615611dc557600080fd5b6017805460ff19166001179055600b54811180611df35750611df0611de8610add565b600f54612b2c565b81115b15611fa0576001600160a01b038416600090815260116020526040908190209051611e3a9190611e2490869061303f565b9081526040519081900360200190205483612b2c565b6001600160a01b038516600090815260116020526040908190209051611e6190869061303f565b9081526040516020918190038201812092909255611e819185910161303f565b604051602081830303815290604052805190602001206432ba3432b960d91b14611f63576001600160a01b038416600090815260116020526040908190209051611ecc90859061303f565b908152604051908190036020018120600101546323b872dd60e01b82526001600160a01b0316906323b872dd90611f0b90309088908790600401613080565b602060405180830381600087803b158015611f2557600080fd5b505af1158015611f39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f5d9190612ef7565b50611f9b565b6040516001600160a01b0385169083156108fc029084906000818181858888f19350505050158015611f99573d6000803e3d6000fd5b505b611059565b611fb2611fab611318565b8583610b97565b50611fbf600f54826108ab565b600f556001600160a01b038416600090815260126020526040902054611fe590826108ab565b6001600160a01b038516600090815260126020526040902055600d5461200b90826108ab565b600d556001600160a01b03841660009081526012602052604090206001015461203490826108ab565b6001600160a01b03851660009081526012602090815260409182902060010192909255516120649185910161303f565b604051602081830303815290604052805190602001206432ba3432b960d91b1461214a576001600160a01b0384166000908152601160205260409081902090516120af90859061303f565b908152604051908190036020019020600101546001600160a01b03166323b872dd306120d9611318565b856040518463ffffffff1660e01b81526004016120f893929190613080565b602060405180830381600087803b15801561211257600080fd5b505af1158015612126573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f999190612ef7565b6010546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015612184573d6000803e3d6000fd5b5050506017805460ff191690555050565b61219d612870565b6001600160a01b03166121ae611318565b6001600160a01b0316146121d45760405162461bcd60e51b81526004016102369061346a565b6001600160a01b0381166121fa5760405162461bcd60e51b8152600401610236906132f3565b61220381612ba9565b50565b61220e612870565b6001600160a01b031661221f611318565b6001600160a01b0316146122455760405162461bcd60e51b81526004016102369061346a565b6001600160a01b038216600090815260076020526040902054610dde576040805180820182529182526001600160a01b03928316602080840182815260068054600181018255600082815296517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f60029092029182015591517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4090920180546001600160a01b031916929097169190911790955593549083526007909352902055565b612310612870565b6001600160a01b0316612321611318565b6001600160a01b0316146123475760405162461bcd60e51b81526004016102369061346a565b6001600160a01b03808316600090815260146020908152604080832093851683529290529081205415610a295760005b6001600160a01b03841660009081526013602052604090205481101561286a576001600160a01b038481166000908152601360205260409020805491851691839081106123d457634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03161415612625576001600160a01b03841660009081526013602052604090205461241490600190613732565b811415612493576001600160a01b038416600090815260136020526040902080548290811061245357634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910180546001600160a01b03191690556001600160a01b0386811683526014825260408084209187168452915281205561261c565b6001600160a01b03841660009081526013602052604090206124b68260016136db565b815481106124d457634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0387811684526013909252604090922080549190921691908390811061251f57634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b0394851617905591861681526014825260408082206013909352812080546001939291908590811061258257634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020546125b19190613732565b6001600160a01b0385166000908152601460209081526040808320601390925282208054919291859081106125f657634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020555b60019150612858565b8115612858576001600160a01b03841660009081526013602052604090205461265090600190613732565b8114156126cf576001600160a01b038416600090815260136020526040902080548290811061268f57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910180546001600160a01b03191690556001600160a01b03868116835260148252604080842091871684529152812055612858565b6001600160a01b03841660009081526013602052604090206126f28260016136db565b8154811061271057634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0387811684526013909252604090922080549190921691908390811061275b57634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559186168152601482526040808220601390935281208054600193929190859081106127be57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020546127ed9190613732565b6001600160a01b03851660009081526014602090815260408083206013909252822080549192918590811061283257634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020555b80612862816137b0565b915050612377565b50505050565b3390565b6001600160a01b03821661289a5760405162461bcd60e51b8152600401610236906135fb565b6128a660008383610a29565b80600260008282546128b891906136db565b90915550506001600160a01b038216600090815260208190526040812080548392906128e59084906136db565b90915550506040516001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612928908590613632565b60405180910390a3610dde60008383610a29565b60006108b782846136f3565b60006108b78284613713565b6001600160a01b03831661297a5760405162461bcd60e51b815260040161023690613542565b6001600160a01b0382166129a05760405162461bcd60e51b815260040161023690613339565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906129fb908590613632565b60405180910390a3505050565b6001600160a01b038316612a2e5760405162461bcd60e51b8152600401610236906134fd565b6001600160a01b038216612a545760405162461bcd60e51b815260040161023690613282565b612a5f838383610a29565b6001600160a01b03831660009081526020819052604090205481811015612a985760405162461bcd60e51b81526004016102369061337b565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290612acf9084906136db565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b199190613632565b60405180910390a361286a848484610a29565b60006108b78284613732565b612b4061089b565b612b5c5760405162461bcd60e51b8152600401610236906132c5565b6005805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa612b92612870565b604051612b9f919061306c565b60405180910390a1565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b612c0361089b565b15612c205760405162461bcd60e51b8152600401610236906133f8565b6005805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612b92612870565b828054612c6890613775565b90600052602060002090601f016020900481019282612c8a5760008555612cd0565b82601f10612ca357805160ff1916838001178555612cd0565b82800160010185558215612cd0579182015b82811115612cd0578251825591602001919060010190612cb5565b50612cdc929150612ce0565b5090565b5b80821115612cdc5760008155600101612ce1565b80356001600160a01b0381168114610e9857600080fd5b600082601f830112612d1c578081fd5b8135612d2f612d2a826136b3565b613689565b818152846020838601011115612d43578283fd5b816020850160208301379081016020019190915292915050565b600060208284031215612d6e578081fd5b6108b782612cf5565b60008060408385031215612d89578081fd5b612d9283612cf5565b9150612da060208401612cf5565b90509250929050565b600080600060608486031215612dbd578081fd5b612dc684612cf5565b9250612dd460208501612cf5565b9150612de260408501612cf5565b90509250925092565b600080600060608486031215612dff578283fd5b612e0884612cf5565b9250612e1660208501612cf5565b9150604084013590509250925092565b60008060408385031215612e38578182fd5b612e4183612cf5565b946020939093013593505050565b60008060408385031215612e61578182fd5b612e6a83612cf5565b9150602083013567ffffffffffffffff811115612e85578182fd5b612e9185828601612d0c565b9150509250929050565b60008060008060808587031215612eb0578081fd5b612eb985612cf5565b9350602085013567ffffffffffffffff811115612ed4578182fd5b612ee087828801612d0c565b949794965050505060408301359260600135919050565b600060208284031215612f08578081fd5b815180151581146108b7578182fd5b600060208284031215612f28578081fd5b815167ffffffffffffffff811115612f3e578182fd5b8201601f81018413612f4e578182fd5b8051612f5c612d2a826136b3565b818152856020838501011115612f70578384fd5b612f81826020830160208601613749565b95945050505050565b60008060408385031215612f9c578182fd5b82359150612da060208401612cf5565b600080600060608486031215612fc0578283fd5b83359250612dd460208501612cf5565b600080600060608486031215612fe4578283fd5b505081359360208301359350604090920135919050565b60008151808452613013816020860160208601613749565b601f01601f19169290920160200192915050565b805182526020908101516001600160a01b0316910152565b60008251613051818460208701613749565b9190910192915050565b6432ba3432b960d91b815260050190565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03841681526060602082018190526000906130c890830185612ffb565b9050826040830152949350505050565b6001600160a01b039290921682526060602083018190526005908301526432ba3432b960d91b6080830152604082015260a00190565b6020808252825182820181905260009190848201906040850190845b8181101561314f5783516001600160a01b03168352928401929184019160010161312a565b50909695505050505050565b602080825282518282018190526000919060409081850190868401855b8281101561319b5761318b848351613027565b9284019290850190600101613178565b5091979650505050505050565b60208082528251828201819052600091906040908185019080840286018301878501865b8381101561321657888303603f19018552815180518785526131f088860182612ffb565b918901516001600160a01b031694890194909452948701949250908601906001016131cc565b509098975050505050505050565b602080825282518282018190526000919060409081850190868401855b8281101561319b57613254848351613027565b9284019290850190600101613241565b901515815260200190565b6000602082526108b76020830184612ffb565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b60208082526018908201527f436f6e747261637420696e207061757365642073746174650000000000000000604082015260600190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252600d908201526c16995c9bc8195d1a081cd95b9d609a1b604082015260600190565b6020808252601c908201527f537562736372697074696f6e2077696e646f7720627265616368656400000000604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b60208082526016908201527513585b9859d95c88191bd95cc81b9bdd08195e1a5cdd60521b604082015260600190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b9182526001600160a01b0316602082015260400190565b918252602082015260400190565b93845260208401929092526040830152606082015260800190565b60ff91909116815260200190565b60405181810167ffffffffffffffff811182821017156136ab576136ab6137e1565b604052919050565b600067ffffffffffffffff8211156136cd576136cd6137e1565b50601f01601f191660200190565b600082198211156136ee576136ee6137cb565b500190565b60008261370e57634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561372d5761372d6137cb565b500290565b600082821015613744576137446137cb565b500390565b60005b8381101561376457818101518382015260200161374c565b8381111561286a5750506000910152565b60028104600182168061378957607f821691505b602082108114156137aa57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156137c4576137c46137cb565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220db62fb5fba3fd9ffa268d31654bcfa1b5fc116cbd7e55b2302196130f3d80d5664736f6c63430008000033",
|
|
877
|
+
"metadata": "{\"compiler\":{\"version\":\"0.8.0+commit.c7dfd78e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_supply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_cap\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_limit\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"investor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"tokenName\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenAmount\",\"type\":\"uint256\"}],\"name\":\"RequestIssue\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_platform\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_manager\",\"type\":\"address\"}],\"name\":\"addManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"investor\",\"type\":\"address\"}],\"name\":\"balance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"investorBalance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"buy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"checkSupportForToken\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_supply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_cap\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_limit\",\"type\":\"uint256\"}],\"name\":\"createSupply\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_distribution\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_manager\",\"type\":\"address\"}],\"name\":\"distribute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_investor\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_tokenName\",\"type\":\"string\"}],\"name\":\"getInvestment\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInvestors\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"assetInvested\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"investorAddress\",\"type\":\"address\"}],\"internalType\":\"struct ILiquidity.provider[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_platform\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_manager\",\"type\":\"address\"}],\"name\":\"getManagerPerformance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"managerLiquidityProvided\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"managerCommissionsEarned\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_platform\",\"type\":\"address\"}],\"name\":\"getManagers\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_platform\",\"type\":\"address\"}],\"name\":\"getPlatformPerformance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"unstakedLiquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balancePlatformLiquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"platformLiquidityProvided\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"platformCommissionsEarned\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPlatforms\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"platformName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"platformAddress\",\"type\":\"address\"}],\"internalType\":\"struct ILiquidity.platform[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSupportedTokens\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"tokenName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"internalType\":\"struct ILiquidity.token[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_investor\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_tokenName\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"_tokenAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_LPToIssue\",\"type\":\"uint256\"}],\"name\":\"issue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_distribution\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_platform\",\"type\":\"address\"}],\"name\":\"payOut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_platform\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_manager\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_liquidity\",\"type\":\"uint256\"}],\"name\":\"provideLiquidity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_liquidityPlatform\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_platformName\",\"type\":\"bytes32\"}],\"name\":\"registerPlatform\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_platform\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_manager\",\"type\":\"address\"}],\"name\":\"removeManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_name\",\"type\":\"bytes32\"}],\"name\":\"supportTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"addManager(address,address)\":{\"params\":{\"_manager\":\"address of asset manager\",\"_platform\":\"address of market making platform (eg, Balancer)\"}},\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"buy(address,uint256)\":{\"params\":{\"_amount\":\"amount of token that is transferred from investor to this VITTA issuing contract's account for the investor\",\"_token\":\"address of token used by investor to buy the VITTA\"}},\"checkSupportForToken(address)\":{\"params\":{\"_token\":\"token that is supported for investment\"}},\"constructor\":{\"params\":{\"_cap\":\"investment limit for each investor\",\"_limit\":\"time limit for issue close\",\"_supply\":\"total supply of VITTA\"}},\"createSupply(uint256,uint256,uint256)\":{\"params\":{\"_cap\":\"investment limit for each investor\",\"_limit\":\"time limit for issue close \",\"_supply\":\"total supply of VITTA\"}},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"distribute(uint256,address,address)\":{\"params\":{\"_distribution\":\"amount of VITTA to mint and distribute pro rata to liquidity providers\",\"_manager\":\"address of asset manager earning the paid out return on investment \",\"_token\":\"address of token in which distribution is made by market maker \"}},\"getInvestment(address,string)\":{\"params\":{\"_investor\":\"address of investor\",\"_tokenName\":\"name of token invested by investor\"}},\"getManagerPerformance(address,address,address)\":{\"params\":{\"_manager\":\"address of asset manager on platform\",\"_platform\":\"address of platform\",\"_token\":\"address of token\"}},\"getManagers(address)\":{\"params\":{\"_platform\":\"address of market making platform\"}},\"getPlatformPerformance(address)\":{\"params\":{\"_platform\":\"address of market making platform\"}},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"issue(address,string,uint256,uint256)\":{\"params\":{\"_LPToIssue\":\"amount of VITTA to issue to investor\",\"_investor\":\"address of investor\",\"_tokenAmount\":\"amount of token invested in VITTA\",\"_tokenName\":\"name of token invested in VITTA\"}},\"name()\":{\"details\":\"Returns the name of the token.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"payOut(uint256,address)\":{\"params\":{\"_distribution\":\"amount of VITTA token to pay out \",\"_platform\":\"amount of VITTA to mint and distribute pro rata to liquidity providers\"}},\"provideLiquidity(address,address,uint256)\":{\"params\":{\"_liquidity\":\"amount of VITTA tokens to allot to an asset manager\",\"_manager\":\"address of asset manager to whom liquidity has to be provided\",\"_platform\":\"address of platform on which liquidity has to be provided\"}},\"registerPlatform(address,bytes32)\":{\"params\":{\"_liquidityPlatform\":\"address of the market making platform\",\"_platformName\":\"name of market making platform\"}},\"removeManager(address,address)\":{\"params\":{\"_manager\":\"address of asset manager\",\"_platform\":\"address of market making platform\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"supportTokens(address,bytes32)\":{\"params\":{\"_name\":\"name of token supported\",\"_token\":\"address of token supported\"}},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for ``sender``'s tokens of at least `amount`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addManager(address,address)\":{\"notice\":\"Adds asset manager for managing liquidity\"},\"buy(address,uint256)\":{\"notice\":\"Used by external apps (eg, exchange, wallet) to buy Verified Liquidity token \"},\"checkSupportForToken(address)\":{\"notice\":\"Checks if a specified token is supported for investing in the Verified Liquidity token\"},\"constructor\":{\"notice\":\"Constructor for the Verified Liquidity token\"},\"createSupply(uint256,uint256,uint256)\":{\"notice\":\"Creates supply of the Verified Liquidity token after initial issue with constructor defined parameters\"},\"distribute(uint256,address,address)\":{\"notice\":\"Pay out of income by Market maker contracts to VITTA Liquidity providers\"},\"getInvestment(address,string)\":{\"notice\":\"Fetches investment detail for specific investor in VITTA\"},\"getInvestors()\":{\"notice\":\"Fetches investors in VITTA\"},\"getManagerPerformance(address,address,address)\":{\"notice\":\"Fetches performance of asset managers\"},\"getManagers(address)\":{\"notice\":\"Gets asset managers for managing liquidity\"},\"getPlatformPerformance(address)\":{\"notice\":\"Fetches performance of market platform platform\"},\"getPlatforms()\":{\"notice\":\"Gets list of registered platforms\"},\"getSupportedTokens()\":{\"notice\":\"Returns list of supported tokens\"},\"issue(address,string,uint256,uint256)\":{\"notice\":\"Used by admin to issue VITTA to investors or refund paid in tokens to investors if investment cap is breached\"},\"pause()\":{\"notice\":\"Pauses this contract\"},\"payOut(uint256,address)\":{\"notice\":\"Pay out income to VITTA Liquidity providers\"},\"provideLiquidity(address,address,uint256)\":{\"notice\":\"Provides staked VITTA to asset managers based on prior liquidity consumed and commission earned \"},\"registerPlatform(address,bytes32)\":{\"notice\":\"Registers a liquidity platform (eg, DEX) where Verified Liquidity tokens can be used to underwrite investments\"},\"removeManager(address,address)\":{\"notice\":\"Removes asset manager for managing liquidity on platform\"},\"supportTokens(address,bytes32)\":{\"notice\":\"Specifies list of supported tokens that can be invested in the Verified Liquidity token\"},\"unpause()\":{\"notice\":\"Unpauses this contract\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/Liquidity.sol\":\"Liquidity\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x6bb804a310218875e89d12c053e94a13a4607cdf7cc2052f3e52bd32a0dc50a1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2ebbbe6d0011175bd9e7268b83de3f9c2f9d8d4cbfbaef12aff977d7d727163\",\"dweb:/ipfs/Qmd5c7Vxtis9wzkDNhxwc6A2QT5H9xn9kfjhx7qx44vpro\"]},\"@openzeppelin/contracts/security/Pausable.sol\":{\"keccak256\":\"0xa35b1f2a670cd2a701a52c398032c9fed72df1909fe394d77ceacbf074e8937b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72b957861691ebdaa78c52834465c4f8296480fe4f1a12ba72dc6c0c8ac076dd\",\"dweb:/ipfs/QmVz1sHCwgEivHPRDswdt9tdvky7EnWqFmbuk1wFE55VMG\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xb03df8481a954604ad0c9125680893b2e3f7ff770fe470e38b89ac61b84e8072\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b34655953d18ba3a45b762fb6bdbb6549af69a27435e10ece178742bf70baf45\",\"dweb:/ipfs/QmcqjUoFLLMyx7dbwSHUnDBH6aphkVHXWQvQRRev5EAWEh\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x027b891937d20ccf213fdb9c31531574256de774bda99d3a70ecef6e1913ed2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://087318b21c528119f649899f5b5580566dd8d7b0303d4904bd0e8580c3545f14\",\"dweb:/ipfs/Qmbn5Mj7aUn8hJuQ8VrQjjEXRsXyJKykgnjR9p4C3nfLtL\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x83fe24f5c04a56091e50f4a345ff504c8bff658a76d4c43b16878c8f940c53b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4c3df1a7ca104b633a7d81c6c6f5192367d150cd5a32cba81f7f27012729013\",\"dweb:/ipfs/QmSim72e3ZVsfgZt8UceCvbiSuMRHR6WDsiamqNzZahGSY\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x90565a39ae45c80f0468dc96c7b20d0afc3055f344c8203a0c9258239f350b9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26e8b38a7ac8e7b4463af00cf7fff1bf48ae9875765bf4f7751e100124d0bc8c\",\"dweb:/ipfs/QmWcsmkVr24xmmjfnBQZoemFniXjj3vwT78Cz6uqZW1Hux\"]},\"@openzeppelin/contracts/utils/math/SafeMath.sol\":{\"keccak256\":\"0x8666f020bd8fc9dc14f07e2ebc52b5f236ab4cdde7c77679b08cb2f94730043b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://163776cbf565c722232393aa2d62cbe8a2ffb5805986abf4906c00e1e07450a6\",\"dweb:/ipfs/QmPZoN9T3cb6o8bGhjBPZcz7im8T8DWhpr3tjLwhJJHx9N\"]},\"project:/contracts/Liquidity.sol\":{\"keccak256\":\"0xef1c59c9dcd54ae99dc5540ebf72312355990a44af99f44c982ee3f19d46b98d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bf81ba0cf8ff772a1e4af31b807a84f831caa716426ebeb72d00ff1b3a7d96c6\",\"dweb:/ipfs/QmUWWScVJiC4pPKjYHbhWp1SArGbpqdhk8AXwerjYA7JYq\"]},\"project:/contracts/interfaces/ILiquidity.sol\":{\"keccak256\":\"0x757bbbaf780098c52c19bf862050596dc24ddc7880216504b4052b5a33167d59\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4ac498d91ac2a524b251030d48dc996c8488524eba3a845feea956e3036b6606\",\"dweb:/ipfs/QmYBVF73cqeMaYRhh3H476XbkNAZyCZZxJbCBUpxUcQ2zG\"]},\"project:/contracts/interfaces/IMarketMaker.sol\":{\"keccak256\":\"0x1e928695c9df740b3946a736fbd58e44afdef3521524b15672840f2d3db8e9af\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ad62516ec2f5ffd9a9495f4af6802befaae90e5c92251b8c535e8c261204b0c8\",\"dweb:/ipfs/QmNPb9winib67Bk7z5zK9U6ai9Rxarh5KAJgchN3wWAvzU\"]}},\"version\":1}",
|
|
878
|
+
"bytecode": "0x60806040526000600b556000600c556000600d556000600e556000600f553480156200002a57600080fd5b5060405162003c4338038062003c438339810160408190526200004d91620002fa565b604080518082018252600881526715995c9a599a595960c21b602080830191825283518085019094526005845264564954544160d81b9084015281519192916200009a9160039162000254565b508051620000b090600490602084019062000254565b505050620000cd620000c76200011760201b60201c565b6200011b565b6005805460ff60a01b19169055620000e633846200016d565b601080546001600160a01b03191633179055600b91909155600c55506000600f556017805460ff19169055620003ca565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166200019f5760405162461bcd60e51b8152600401620001969062000328565b60405180910390fd5b620001ad600083836200024f565b8060026000828254620001c1919062000368565b90915550506001600160a01b03821660009081526020819052604081208054839290620001f090849062000368565b90915550506040516001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620002359085906200035f565b60405180910390a36200024b600083836200024f565b5050565b505050565b82805462000262906200038d565b90600052602060002090601f016020900481019282620002865760008555620002d1565b82601f10620002a157805160ff1916838001178555620002d1565b82800160010185558215620002d1579182015b82811115620002d1578251825591602001919060010190620002b4565b50620002df929150620002e3565b5090565b5b80821115620002df5760008155600101620002e4565b6000806000606084860312156200030f578283fd5b8351925060208401519150604084015190509250925092565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b600082198211156200038857634e487b7160e01b81526011600452602481fd5b500190565b600281046001821680620003a257607f821691505b60208210811415620003c457634e487b7160e01b600052602260045260246000fd5b50919050565b61386980620003da6000396000f3fe6080604052600436106102135760003560e01c8063715018a611610118578063b2f5a54c116100a0578063e3d670d71161006f578063e3d670d714610826578063e5cc744014610846578063f2fde38b14610866578063f81f3ee714610886578063f85771b2146108a657610427565b8063b2f5a54c146107a2578063cce7ec13146107c4578063d3c7c2c7146107e4578063dd62ed3e1461080657610427565b806395ce0af8116100e757806395ce0af81461070d57806395d89b411461072d5780639e8b6b7f14610742578063a457c2d714610762578063a9059cbb1461078257610427565b8063715018a6146106a15780638456cb59146106b65780638513c619146106cb5780638da5cb5b146106eb57610427565b8063330602261161019b57806356abb19b1161016a57806356abb19b146105fe5780635c975abb1461062c5780635d4f5b1c146106415780636ceb48b71461066157806370a082311461068157610427565b8063330602261461057c57806339509351146105a95780633f4ba83a146105c9578063451353f1146105de57610427565b80631fbe552e116101e25780631fbe552e146104c857806323b872dd146104ea57806324ef84ec1461050a5780632ceafc271461053a578063313ce5671461055a57610427565b8063050616161461042c57806306fdde031461044e578063095ea7b31461047957806318160ddd146104a657610427565b3661042757600c541561024a5742600c541161024a5760405162461bcd60e51b815260040161024190613502565b60405180910390fd5b346102675760405162461bcd60e51b8152600401610241906134db565b61026f6108c6565b1561028c5760405162461bcd60e51b8152600401610241906133fd565b60175460ff161561029c57600080fd5b6017805460ff191660011790556040517f5a903c0a34c24eaba92e7ae11cc1c39d622c4d146d5dcb777537881f0dac3599906102db9033903490613114565b60405180910390a1336000908152601160205260409081902090516102ff90613097565b908152604051908190036020019020546103b8576040805160808101825260059181019182526432ba3432b960d91b606082015290815233602080830191909152600a805460018101825560009190915282518051849360029093027fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8019261038c928492910190612c98565b5060209190910151600190910180546001600160a01b0319166001600160a01b03909216919091179055505b336000908152601160205260409081902090516103ef91906103d990613097565b90815260405190819003602001902054346108d6565b3360009081526011602052604090819020905161040b90613097565b908152604051908190036020019020556017805460ff19169055005b600080fd5b34801561043857600080fd5b5061044c610447366004612fc6565b6108e9565b005b34801561045a57600080fd5b50610463610a59565b60405161047091906132ab565b60405180910390f35b34801561048557600080fd5b50610499610494366004612e62565b610aeb565b60405161047091906132a0565b3480156104b257600080fd5b506104bb610b08565b604051610470919061366e565b3480156104d457600080fd5b506104dd610b0e565b6040516104709190613197565b3480156104f657600080fd5b50610499610505366004612e27565b610bc2565b34801561051657600080fd5b5061052a610525366004612d99565b610c52565b604051610470949392919061369c565b34801561054657600080fd5b5061044c610555366004612e62565b610d07565b34801561056657600080fd5b5061056f610e0d565b60405161047091906136b7565b34801561058857600080fd5b5061059c610597366004612d99565b610e12565b604051610470919061314a565b3480156105b557600080fd5b506104996105c4366004612e62565b610ec8565b3480156105d557600080fd5b5061044c610f1c565b3480156105ea57600080fd5b5061044c6105f9366004612fe8565b610f65565b34801561060a57600080fd5b5061061e610619366004612de5565b611094565b60405161047092919061368e565b34801561063857600080fd5b506104996108c6565b34801561064d57600080fd5b5061049961065c366004612d99565b611129565b34801561066d57600080fd5b506104bb61067c366004612e8b565b611157565b34801561068d57600080fd5b506104bb61069c366004612d99565b6111d7565b3480156106ad57600080fd5b5061044c6111f2565b3480156106c257600080fd5b5061044c61123b565b3480156106d757600080fd5b5061044c6106e6366004612db3565b611282565b3480156106f757600080fd5b50610700611343565b60405161047091906130a8565b34801561071957600080fd5b5061044c61072836600461300c565b611352565b34801561073957600080fd5b506104636113a7565b34801561074e57600080fd5b5061044c61075d366004612e27565b6113b6565b34801561076e57600080fd5b5061049961077d366004612e62565b61159e565b34801561078e57600080fd5b5061049961079d366004612e62565b611617565b3480156107ae57600080fd5b506107b761162b565b60405161047091906131e4565b3480156107d057600080fd5b5061044c6107df366004612e62565b611765565b3480156107f057600080fd5b506107f9611d0b565b6040516104709190613260565b34801561081257600080fd5b506104bb610821366004612db3565b611d76565b34801561083257600080fd5b506104bb610841366004612d99565b611da1565b34801561085257600080fd5b5061044c610861366004612ed7565b611db2565b34801561087257600080fd5b5061044c610881366004612d99565b6121d1565b34801561089257600080fd5b5061044c6108a1366004612e62565b612242565b3480156108b257600080fd5b5061044c6108c1366004612db3565b612344565b600554600160a01b900460ff1690565b60006108e28284613717565b9392505050565b6108f16128ac565b6001600160a01b0316610902611343565b6001600160a01b0316146109285760405162461bcd60e51b8152600401610241906134a6565b610939610933611343565b836128b0565b6001600160a01b03811660009081526016602052604090206001015461095f90836108d6565b6001600160a01b0382166000908152601660205260408120600101919091555b600a54811015610a545760006109ea60126000600a85815481106109b357634e487b7160e01b600052603260045260246000fd5b6000918252602080832060016002909302018201546001600160a01b03168452830193909352604090910190200154600d54612978565b9050610a3f6109f7611343565b600a8481548110610a1857634e487b7160e01b600052603260045260246000fd5b60009182526020909120600160029092020101546001600160a01b03166105058488612984565b50508080610a4c906137ec565b91505061097f565b505050565b606060038054610a68906137b1565b80601f0160208091040260200160405190810160405280929190818152602001828054610a94906137b1565b8015610ae15780601f10610ab657610100808354040283529160200191610ae1565b820191906000526020600020905b815481529060010190602001808311610ac457829003601f168201915b5050505050905090565b6000610aff610af86128ac565b8484612990565b50600192915050565b60025490565b6060610b186128ac565b6001600160a01b0316610b29611343565b6001600160a01b031614610b4f5760405162461bcd60e51b8152600401610241906134a6565b6006805480602002602001604051908101604052809291908181526020016000905b82821015610bb95760008481526020908190206040805180820190915260028502909101805482526001908101546001600160a01b0316828401529083529092019101610b71565b50505050905090565b6000610bcf848484612a44565b6001600160a01b038416600090815260016020526040812081610bf06128ac565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905082811015610c335760405162461bcd60e51b81526004016102419061345e565b610c4785610c3f6128ac565b858403612990565b506001949350505050565b600080600080610c606128ac565b6001600160a01b0316610c71611343565b6001600160a01b031614610c975760405162461bcd60e51b8152600401610241906134a6565b6000610ca7600d54600e54612b68565b6001600160a01b03871660009081526016602052604081205491925090610cd690610cd1896111d7565b612b68565b6001600160a01b03979097166000908152601660205260409020805460019091015492989096509194509092505050565b610d0f6128ac565b6001600160a01b0316610d20611343565b6001600160a01b031614610d465760405162461bcd60e51b8152600401610241906134a6565b6001600160a01b038216600090815260096020526040902054610e09576040805180820182528281526001600160a01b03848116602080840182815260088054600181018255600082815296517ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee360029092029182015591517ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee490920180546001600160a01b031916929095169190911790935591549083526009909152919020555b5050565b601290565b6060610e1c6128ac565b6001600160a01b0316610e2d611343565b6001600160a01b031614610e535760405162461bcd60e51b8152600401610241906134a6565b6001600160a01b03821660009081526013602090815260409182902080548351818402810184019094528084529091830182828015610ebb57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e9d575b505050505090505b919050565b6000610aff610ed56128ac565b848460016000610ee36128ac565b6001600160a01b03908116825260208083019390935260409182016000908120918b1681529252902054610f179190613717565b612990565b610f246128ac565b6001600160a01b0316610f35611343565b6001600160a01b031614610f5b5760405162461bcd60e51b8152600401610241906134a6565b610f63612b74565b565b33600090815260076020526040902054610f7e57600080fd5b6001600160a01b038216600090815260096020526040902054610fa057600080fd5b610fa86108c6565b15610fc55760405162461bcd60e51b8152600401610241906133fd565b60175460ff1615610fd557600080fd5b6017805460ff191660011790553360009081526014602090815260408083206001600160a01b0385168452909152902054600d541580159061101657508015155b15611084573360009081526015602090815260408083206001600160a01b0387168452825280832084845290915290206001015461105490856108d6565b3360009081526015602090815260408083206001600160a01b038816845282528083208584529091529020600101555b50506017805460ff191690555050565b60008061109f6128ac565b6001600160a01b03166110b0611343565b6001600160a01b0316146110d65760405162461bcd60e51b8152600401610241906134a6565b50506001600160a01b039283166000818152601460209081526040808320948716835293815283822054928252601581528382209490951681529284528183209083529092522080546001909101549091565b6001600160a01b0381166000908152600960205260408120541561114f57506001610ec3565b506000610ec3565b60006111616128ac565b6001600160a01b0316611172611343565b6001600160a01b0316146111985760405162461bcd60e51b8152600401610241906134a6565b6001600160a01b0383166000908152601160205260409081902090516111bf90849061307b565b90815260405190819003602001902054905092915050565b6001600160a01b031660009081526020819052604090205490565b6111fa6128ac565b6001600160a01b031661120b611343565b6001600160a01b0316146112315760405162461bcd60e51b8152600401610241906134a6565b610f636000612be5565b6112436128ac565b6001600160a01b0316611254611343565b6001600160a01b03161461127a5760405162461bcd60e51b8152600401610241906134a6565b610f63612c37565b61128a6128ac565b6001600160a01b031661129b611343565b6001600160a01b0316146112c15760405162461bcd60e51b8152600401610241906134a6565b6001600160a01b03808316600090815260146020908152604080832093851683529290522054610e09576001600160a01b03808316600081815260136020908152604080832080546001810182558185528385200180549688166001600160a01b03199097168717905593835292546014825283832094835293905220555050565b6005546001600160a01b031690565b61135a6128ac565b6001600160a01b031661136b611343565b6001600160a01b0316146113915760405162461bcd60e51b8152600401610241906134a6565b61139b33846128b0565b600b91909155600c5550565b606060048054610a68906137b1565b6113be6128ac565b6001600160a01b03166113cf611343565b6001600160a01b0316146113f55760405162461bcd60e51b8152600401610241906134a6565b6113fd6108c6565b1561141a5760405162461bcd60e51b8152600401610241906133fd565b6001600160a01b0380841660009081526014602090815260408083209386168352929052205461145c5760405162461bcd60e51b815260040161024190613607565b604051637acb775760e01b81526001600160a01b03841690637acb77579061148a9084908690600401613677565b600060405180830381600087803b1580156114a457600080fd5b505af11580156114b8573d6000803e3d6000fd5b505050506114cd6114c7611343565b826128b0565b6114df6114d8611343565b8483610bc2565b506114ec600e54826108d6565b600e556001600160a01b03831660009081526016602052604090205461151290826108d6565b6001600160a01b03808516600081815260166020908152604080832095909555601481528482209387168252928352838120549181526015835283812030825283528381208282529092529190205461156b90836108d6565b6001600160a01b039094166000908152601560209081526040808320308452825280832093835292905220929092555050565b600080600160006115ad6128ac565b6001600160a01b03908116825260208083019390935260409182016000908120918816815292529020549050828110156115f95760405162461bcd60e51b8152600401610241906135c2565b61160d6116046128ac565b85858403612990565b5060019392505050565b6000610aff6116246128ac565b8484612a44565b60606116356128ac565b6001600160a01b0316611646611343565b6001600160a01b03161461166c5760405162461bcd60e51b8152600401610241906134a6565b600a805480602002602001604051908101604052809291908181526020016000905b82821015610bb957838290600052602060002090600202016040518060400160405290816000820180546116c1906137b1565b80601f01602080910402602001604051908101604052809291908181526020018280546116ed906137b1565b801561173a5780601f1061170f5761010080835404028352916020019161173a565b820191906000526020600020905b81548152906001019060200180831161171d57829003601f168201915b50505091835250506001918201546001600160a01b031660209182015291835292909201910161168e565b600c541561178e5742600c541161178e5760405162461bcd60e51b815260040161024190613502565b6117966108c6565b156117b35760405162461bcd60e51b8152600401610241906133fd565b6001600160a01b038216600090815260096020526040812054156117d5575060015b8015610a545760175460ff16156117eb57600080fd5b6017805460ff191660011790556040516323b872dd60e01b81526001600160a01b038416906323b872dd90611828903390309087906004016130bc565b602060405180830381600087803b15801561184257600080fd5b505af1158015611856573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187a9190612f33565b15611cfc577f5a903c0a34c24eaba92e7ae11cc1c39d622c4d146d5dcb777537881f0dac359933846001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b1580156118da57600080fd5b505afa1580156118ee573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119169190810190612f53565b84604051611926939291906130e0565b60405180910390a13360009081526011602052604080822081516306fdde0360e01b8152915190926001600160a01b038716926306fdde039260048083019392829003018186803b15801561197a57600080fd5b505afa15801561198e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119b69190810190612f53565b6040516119c3919061307b565b90815260405190819003602001902054611ade5760006040518060400160405280856001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b158015611a1d57600080fd5b505afa158015611a31573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a599190810190612f53565b815233602091820152600a805460018101825560009190915282518051939450849360029092027fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80192611ab292849290910190612c98565b5060209190910151600190910180546001600160a01b0319166001600160a01b03909216919091179055505b3360009081526011602052604080822081516306fdde0360e01b81529151611b8c9391926001600160a01b038816926306fdde0392600480840193829003018186803b158015611b2d57600080fd5b505afa158015611b41573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b699190810190612f53565b604051611b76919061307b565b90815260405190819003602001902054836108d6565b3360009081526011602052604080822081516306fdde0360e01b8152915190926001600160a01b038816926306fdde039260048083019392829003018186803b158015611bd857600080fd5b505afa158015611bec573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c149190810190612f53565b604051611c21919061307b565b9081526040805191829003602090810183209390935533600090815260119093528083206306fdde0360e01b83529051869391926001600160a01b038516926306fdde0392600480840193829003018186803b158015611c8057600080fd5b505afa158015611c94573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cbc9190810190612f53565b604051611cc9919061307b565b90815260405190819003602001902060010180546001600160a01b03929092166001600160a01b03199092169190911790555b6017805460ff19169055505050565b606060088054806020026020016040519081016040528092919081815260200160009082821015610bb95760008481526020908190206040805180820190915260028502909101805482526001908101546001600160a01b0316828401529083529092019101610b71565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6000611dac826111d7565b92915050565b611dba6128ac565b6001600160a01b0316611dcb611343565b6001600160a01b031614611df15760405162461bcd60e51b8152600401610241906134a6565b60175460ff1615611e0157600080fd5b6017805460ff19166001179055600b54811180611e2f5750611e2c611e24610b08565b600f54612b68565b81115b15611fdc576001600160a01b038416600090815260116020526040908190209051611e769190611e6090869061307b565b9081526040519081900360200190205483612b68565b6001600160a01b038516600090815260116020526040908190209051611e9d90869061307b565b9081526040516020918190038201812092909255611ebd9185910161307b565b604051602081830303815290604052805190602001206432ba3432b960d91b14611f9f576001600160a01b038416600090815260116020526040908190209051611f0890859061307b565b908152604051908190036020018120600101546323b872dd60e01b82526001600160a01b0316906323b872dd90611f47903090889087906004016130bc565b602060405180830381600087803b158015611f6157600080fd5b505af1158015611f75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f999190612f33565b50611fd7565b6040516001600160a01b0385169083156108fc029084906000818181858888f19350505050158015611fd5573d6000803e3d6000fd5b505b611084565b611fee611fe7611343565b8583610bc2565b50611ffb600f54826108d6565b600f556001600160a01b03841660009081526012602052604090205461202190826108d6565b6001600160a01b038516600090815260126020526040902055600d5461204790826108d6565b600d556001600160a01b03841660009081526012602052604090206001015461207090826108d6565b6001600160a01b03851660009081526012602090815260409182902060010192909255516120a09185910161307b565b604051602081830303815290604052805190602001206432ba3432b960d91b14612186576001600160a01b0384166000908152601160205260409081902090516120eb90859061307b565b908152604051908190036020019020600101546001600160a01b03166323b872dd30612115611343565b856040518463ffffffff1660e01b8152600401612134939291906130bc565b602060405180830381600087803b15801561214e57600080fd5b505af1158015612162573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd59190612f33565b6010546040516001600160a01b039091169083156108fc029084906000818181858888f193505050501580156121c0573d6000803e3d6000fd5b5050506017805460ff191690555050565b6121d96128ac565b6001600160a01b03166121ea611343565b6001600160a01b0316146122105760405162461bcd60e51b8152600401610241906134a6565b6001600160a01b0381166122365760405162461bcd60e51b81526004016102419061332f565b61223f81612be5565b50565b61224a6128ac565b6001600160a01b031661225b611343565b6001600160a01b0316146122815760405162461bcd60e51b8152600401610241906134a6565b6001600160a01b038216600090815260076020526040902054610e09576040805180820182529182526001600160a01b03928316602080840182815260068054600181018255600082815296517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f60029092029182015591517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4090920180546001600160a01b031916929097169190911790955593549083526007909352902055565b61234c6128ac565b6001600160a01b031661235d611343565b6001600160a01b0316146123835760405162461bcd60e51b8152600401610241906134a6565b6001600160a01b03808316600090815260146020908152604080832093851683529290529081205415610a545760005b6001600160a01b0384166000908152601360205260409020548110156128a6576001600160a01b0384811660009081526013602052604090208054918516918390811061241057634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03161415612661576001600160a01b0384166000908152601360205260409020546124509060019061376e565b8114156124cf576001600160a01b038416600090815260136020526040902080548290811061248f57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910180546001600160a01b03191690556001600160a01b03868116835260148252604080842091871684529152812055612658565b6001600160a01b03841660009081526013602052604090206124f2826001613717565b8154811061251057634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0387811684526013909252604090922080549190921691908390811061255b57634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559186168152601482526040808220601390935281208054600193929190859081106125be57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020546125ed919061376e565b6001600160a01b03851660009081526014602090815260408083206013909252822080549192918590811061263257634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020555b60019150612894565b8115612894576001600160a01b03841660009081526013602052604090205461268c9060019061376e565b81141561270b576001600160a01b03841660009081526013602052604090208054829081106126cb57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910180546001600160a01b03191690556001600160a01b03868116835260148252604080842091871684529152812055612894565b6001600160a01b038416600090815260136020526040902061272e826001613717565b8154811061274c57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0387811684526013909252604090922080549190921691908390811061279757634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559186168152601482526040808220601390935281208054600193929190859081106127fa57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054612829919061376e565b6001600160a01b03851660009081526014602090815260408083206013909252822080549192918590811061286e57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020555b8061289e816137ec565b9150506123b3565b50505050565b3390565b6001600160a01b0382166128d65760405162461bcd60e51b815260040161024190613637565b6128e260008383610a54565b80600260008282546128f49190613717565b90915550506001600160a01b03821660009081526020819052604081208054839290612921908490613717565b90915550506040516001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061296490859061366e565b60405180910390a3610e0960008383610a54565b60006108e2828461372f565b60006108e2828461374f565b6001600160a01b0383166129b65760405162461bcd60e51b81526004016102419061357e565b6001600160a01b0382166129dc5760405162461bcd60e51b815260040161024190613375565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590612a3790859061366e565b60405180910390a3505050565b6001600160a01b038316612a6a5760405162461bcd60e51b815260040161024190613539565b6001600160a01b038216612a905760405162461bcd60e51b8152600401610241906132be565b612a9b838383610a54565b6001600160a01b03831660009081526020819052604090205481811015612ad45760405162461bcd60e51b8152600401610241906133b7565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290612b0b908490613717565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b55919061366e565b60405180910390a36128a6848484610a54565b60006108e2828461376e565b612b7c6108c6565b612b985760405162461bcd60e51b815260040161024190613301565b6005805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa612bce6128ac565b604051612bdb91906130a8565b60405180910390a1565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b612c3f6108c6565b15612c5c5760405162461bcd60e51b815260040161024190613434565b6005805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612bce6128ac565b828054612ca4906137b1565b90600052602060002090601f016020900481019282612cc65760008555612d0c565b82601f10612cdf57805160ff1916838001178555612d0c565b82800160010185558215612d0c579182015b82811115612d0c578251825591602001919060010190612cf1565b50612d18929150612d1c565b5090565b5b80821115612d185760008155600101612d1d565b80356001600160a01b0381168114610ec357600080fd5b600082601f830112612d58578081fd5b8135612d6b612d66826136ef565b6136c5565b818152846020838601011115612d7f578283fd5b816020850160208301379081016020019190915292915050565b600060208284031215612daa578081fd5b6108e282612d31565b60008060408385031215612dc5578081fd5b612dce83612d31565b9150612ddc60208401612d31565b90509250929050565b600080600060608486031215612df9578081fd5b612e0284612d31565b9250612e1060208501612d31565b9150612e1e60408501612d31565b90509250925092565b600080600060608486031215612e3b578283fd5b612e4484612d31565b9250612e5260208501612d31565b9150604084013590509250925092565b60008060408385031215612e74578182fd5b612e7d83612d31565b946020939093013593505050565b60008060408385031215612e9d578182fd5b612ea683612d31565b9150602083013567ffffffffffffffff811115612ec1578182fd5b612ecd85828601612d48565b9150509250929050565b60008060008060808587031215612eec578081fd5b612ef585612d31565b9350602085013567ffffffffffffffff811115612f10578182fd5b612f1c87828801612d48565b949794965050505060408301359260600135919050565b600060208284031215612f44578081fd5b815180151581146108e2578182fd5b600060208284031215612f64578081fd5b815167ffffffffffffffff811115612f7a578182fd5b8201601f81018413612f8a578182fd5b8051612f98612d66826136ef565b818152856020838501011115612fac578384fd5b612fbd826020830160208601613785565b95945050505050565b60008060408385031215612fd8578182fd5b82359150612ddc60208401612d31565b600080600060608486031215612ffc578283fd5b83359250612e1060208501612d31565b600080600060608486031215613020578283fd5b505081359360208301359350604090920135919050565b6000815180845261304f816020860160208601613785565b601f01601f19169290920160200192915050565b805182526020908101516001600160a01b0316910152565b6000825161308d818460208701613785565b9190910192915050565b6432ba3432b960d91b815260050190565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b038416815260606020820181905260009061310490830185613037565b9050826040830152949350505050565b6001600160a01b039290921682526060602083018190526005908301526432ba3432b960d91b6080830152604082015260a00190565b6020808252825182820181905260009190848201906040850190845b8181101561318b5783516001600160a01b031683529284019291840191600101613166565b50909695505050505050565b602080825282518282018190526000919060409081850190868401855b828110156131d7576131c7848351613063565b92840192908501906001016131b4565b5091979650505050505050565b60208082528251828201819052600091906040908185019080840286018301878501865b8381101561325257888303603f190185528151805187855261322c88860182613037565b918901516001600160a01b03169489019490945294870194925090860190600101613208565b509098975050505050505050565b602080825282518282018190526000919060409081850190868401855b828110156131d757613290848351613063565b928401929085019060010161327d565b901515815260200190565b6000602082526108e26020830184613037565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b60208082526018908201527f436f6e747261637420696e207061757365642073746174650000000000000000604082015260600190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252600d908201526c16995c9bc8195d1a081cd95b9d609a1b604082015260600190565b6020808252601c908201527f537562736372697074696f6e2077696e646f7720627265616368656400000000604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b60208082526016908201527513585b9859d95c88191bd95cc81b9bdd08195e1a5cdd60521b604082015260600190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b9182526001600160a01b0316602082015260400190565b918252602082015260400190565b93845260208401929092526040830152606082015260800190565b60ff91909116815260200190565b60405181810167ffffffffffffffff811182821017156136e7576136e761381d565b604052919050565b600067ffffffffffffffff8211156137095761370961381d565b50601f01601f191660200190565b6000821982111561372a5761372a613807565b500190565b60008261374a57634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561376957613769613807565b500290565b60008282101561378057613780613807565b500390565b60005b838110156137a0578181015183820152602001613788565b838111156128a65750506000910152565b6002810460018216806137c557607f821691505b602082108114156137e657634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561380057613800613807565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220b66a85ee48ef661edcb4d9f6fc67a275fc15f583867aec8636bcc54b40c8bbe264736f6c63430008000033",
|
|
879
|
+
"deployedBytecode": "0x6080604052600436106102135760003560e01c8063715018a611610118578063b2f5a54c116100a0578063e3d670d71161006f578063e3d670d714610826578063e5cc744014610846578063f2fde38b14610866578063f81f3ee714610886578063f85771b2146108a657610427565b8063b2f5a54c146107a2578063cce7ec13146107c4578063d3c7c2c7146107e4578063dd62ed3e1461080657610427565b806395ce0af8116100e757806395ce0af81461070d57806395d89b411461072d5780639e8b6b7f14610742578063a457c2d714610762578063a9059cbb1461078257610427565b8063715018a6146106a15780638456cb59146106b65780638513c619146106cb5780638da5cb5b146106eb57610427565b8063330602261161019b57806356abb19b1161016a57806356abb19b146105fe5780635c975abb1461062c5780635d4f5b1c146106415780636ceb48b71461066157806370a082311461068157610427565b8063330602261461057c57806339509351146105a95780633f4ba83a146105c9578063451353f1146105de57610427565b80631fbe552e116101e25780631fbe552e146104c857806323b872dd146104ea57806324ef84ec1461050a5780632ceafc271461053a578063313ce5671461055a57610427565b8063050616161461042c57806306fdde031461044e578063095ea7b31461047957806318160ddd146104a657610427565b3661042757600c541561024a5742600c541161024a5760405162461bcd60e51b815260040161024190613502565b60405180910390fd5b346102675760405162461bcd60e51b8152600401610241906134db565b61026f6108c6565b1561028c5760405162461bcd60e51b8152600401610241906133fd565b60175460ff161561029c57600080fd5b6017805460ff191660011790556040517f5a903c0a34c24eaba92e7ae11cc1c39d622c4d146d5dcb777537881f0dac3599906102db9033903490613114565b60405180910390a1336000908152601160205260409081902090516102ff90613097565b908152604051908190036020019020546103b8576040805160808101825260059181019182526432ba3432b960d91b606082015290815233602080830191909152600a805460018101825560009190915282518051849360029093027fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8019261038c928492910190612c98565b5060209190910151600190910180546001600160a01b0319166001600160a01b03909216919091179055505b336000908152601160205260409081902090516103ef91906103d990613097565b90815260405190819003602001902054346108d6565b3360009081526011602052604090819020905161040b90613097565b908152604051908190036020019020556017805460ff19169055005b600080fd5b34801561043857600080fd5b5061044c610447366004612fc6565b6108e9565b005b34801561045a57600080fd5b50610463610a59565b60405161047091906132ab565b60405180910390f35b34801561048557600080fd5b50610499610494366004612e62565b610aeb565b60405161047091906132a0565b3480156104b257600080fd5b506104bb610b08565b604051610470919061366e565b3480156104d457600080fd5b506104dd610b0e565b6040516104709190613197565b3480156104f657600080fd5b50610499610505366004612e27565b610bc2565b34801561051657600080fd5b5061052a610525366004612d99565b610c52565b604051610470949392919061369c565b34801561054657600080fd5b5061044c610555366004612e62565b610d07565b34801561056657600080fd5b5061056f610e0d565b60405161047091906136b7565b34801561058857600080fd5b5061059c610597366004612d99565b610e12565b604051610470919061314a565b3480156105b557600080fd5b506104996105c4366004612e62565b610ec8565b3480156105d557600080fd5b5061044c610f1c565b3480156105ea57600080fd5b5061044c6105f9366004612fe8565b610f65565b34801561060a57600080fd5b5061061e610619366004612de5565b611094565b60405161047092919061368e565b34801561063857600080fd5b506104996108c6565b34801561064d57600080fd5b5061049961065c366004612d99565b611129565b34801561066d57600080fd5b506104bb61067c366004612e8b565b611157565b34801561068d57600080fd5b506104bb61069c366004612d99565b6111d7565b3480156106ad57600080fd5b5061044c6111f2565b3480156106c257600080fd5b5061044c61123b565b3480156106d757600080fd5b5061044c6106e6366004612db3565b611282565b3480156106f757600080fd5b50610700611343565b60405161047091906130a8565b34801561071957600080fd5b5061044c61072836600461300c565b611352565b34801561073957600080fd5b506104636113a7565b34801561074e57600080fd5b5061044c61075d366004612e27565b6113b6565b34801561076e57600080fd5b5061049961077d366004612e62565b61159e565b34801561078e57600080fd5b5061049961079d366004612e62565b611617565b3480156107ae57600080fd5b506107b761162b565b60405161047091906131e4565b3480156107d057600080fd5b5061044c6107df366004612e62565b611765565b3480156107f057600080fd5b506107f9611d0b565b6040516104709190613260565b34801561081257600080fd5b506104bb610821366004612db3565b611d76565b34801561083257600080fd5b506104bb610841366004612d99565b611da1565b34801561085257600080fd5b5061044c610861366004612ed7565b611db2565b34801561087257600080fd5b5061044c610881366004612d99565b6121d1565b34801561089257600080fd5b5061044c6108a1366004612e62565b612242565b3480156108b257600080fd5b5061044c6108c1366004612db3565b612344565b600554600160a01b900460ff1690565b60006108e28284613717565b9392505050565b6108f16128ac565b6001600160a01b0316610902611343565b6001600160a01b0316146109285760405162461bcd60e51b8152600401610241906134a6565b610939610933611343565b836128b0565b6001600160a01b03811660009081526016602052604090206001015461095f90836108d6565b6001600160a01b0382166000908152601660205260408120600101919091555b600a54811015610a545760006109ea60126000600a85815481106109b357634e487b7160e01b600052603260045260246000fd5b6000918252602080832060016002909302018201546001600160a01b03168452830193909352604090910190200154600d54612978565b9050610a3f6109f7611343565b600a8481548110610a1857634e487b7160e01b600052603260045260246000fd5b60009182526020909120600160029092020101546001600160a01b03166105058488612984565b50508080610a4c906137ec565b91505061097f565b505050565b606060038054610a68906137b1565b80601f0160208091040260200160405190810160405280929190818152602001828054610a94906137b1565b8015610ae15780601f10610ab657610100808354040283529160200191610ae1565b820191906000526020600020905b815481529060010190602001808311610ac457829003601f168201915b5050505050905090565b6000610aff610af86128ac565b8484612990565b50600192915050565b60025490565b6060610b186128ac565b6001600160a01b0316610b29611343565b6001600160a01b031614610b4f5760405162461bcd60e51b8152600401610241906134a6565b6006805480602002602001604051908101604052809291908181526020016000905b82821015610bb95760008481526020908190206040805180820190915260028502909101805482526001908101546001600160a01b0316828401529083529092019101610b71565b50505050905090565b6000610bcf848484612a44565b6001600160a01b038416600090815260016020526040812081610bf06128ac565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905082811015610c335760405162461bcd60e51b81526004016102419061345e565b610c4785610c3f6128ac565b858403612990565b506001949350505050565b600080600080610c606128ac565b6001600160a01b0316610c71611343565b6001600160a01b031614610c975760405162461bcd60e51b8152600401610241906134a6565b6000610ca7600d54600e54612b68565b6001600160a01b03871660009081526016602052604081205491925090610cd690610cd1896111d7565b612b68565b6001600160a01b03979097166000908152601660205260409020805460019091015492989096509194509092505050565b610d0f6128ac565b6001600160a01b0316610d20611343565b6001600160a01b031614610d465760405162461bcd60e51b8152600401610241906134a6565b6001600160a01b038216600090815260096020526040902054610e09576040805180820182528281526001600160a01b03848116602080840182815260088054600181018255600082815296517ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee360029092029182015591517ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee490920180546001600160a01b031916929095169190911790935591549083526009909152919020555b5050565b601290565b6060610e1c6128ac565b6001600160a01b0316610e2d611343565b6001600160a01b031614610e535760405162461bcd60e51b8152600401610241906134a6565b6001600160a01b03821660009081526013602090815260409182902080548351818402810184019094528084529091830182828015610ebb57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e9d575b505050505090505b919050565b6000610aff610ed56128ac565b848460016000610ee36128ac565b6001600160a01b03908116825260208083019390935260409182016000908120918b1681529252902054610f179190613717565b612990565b610f246128ac565b6001600160a01b0316610f35611343565b6001600160a01b031614610f5b5760405162461bcd60e51b8152600401610241906134a6565b610f63612b74565b565b33600090815260076020526040902054610f7e57600080fd5b6001600160a01b038216600090815260096020526040902054610fa057600080fd5b610fa86108c6565b15610fc55760405162461bcd60e51b8152600401610241906133fd565b60175460ff1615610fd557600080fd5b6017805460ff191660011790553360009081526014602090815260408083206001600160a01b0385168452909152902054600d541580159061101657508015155b15611084573360009081526015602090815260408083206001600160a01b0387168452825280832084845290915290206001015461105490856108d6565b3360009081526015602090815260408083206001600160a01b038816845282528083208584529091529020600101555b50506017805460ff191690555050565b60008061109f6128ac565b6001600160a01b03166110b0611343565b6001600160a01b0316146110d65760405162461bcd60e51b8152600401610241906134a6565b50506001600160a01b039283166000818152601460209081526040808320948716835293815283822054928252601581528382209490951681529284528183209083529092522080546001909101549091565b6001600160a01b0381166000908152600960205260408120541561114f57506001610ec3565b506000610ec3565b60006111616128ac565b6001600160a01b0316611172611343565b6001600160a01b0316146111985760405162461bcd60e51b8152600401610241906134a6565b6001600160a01b0383166000908152601160205260409081902090516111bf90849061307b565b90815260405190819003602001902054905092915050565b6001600160a01b031660009081526020819052604090205490565b6111fa6128ac565b6001600160a01b031661120b611343565b6001600160a01b0316146112315760405162461bcd60e51b8152600401610241906134a6565b610f636000612be5565b6112436128ac565b6001600160a01b0316611254611343565b6001600160a01b03161461127a5760405162461bcd60e51b8152600401610241906134a6565b610f63612c37565b61128a6128ac565b6001600160a01b031661129b611343565b6001600160a01b0316146112c15760405162461bcd60e51b8152600401610241906134a6565b6001600160a01b03808316600090815260146020908152604080832093851683529290522054610e09576001600160a01b03808316600081815260136020908152604080832080546001810182558185528385200180549688166001600160a01b03199097168717905593835292546014825283832094835293905220555050565b6005546001600160a01b031690565b61135a6128ac565b6001600160a01b031661136b611343565b6001600160a01b0316146113915760405162461bcd60e51b8152600401610241906134a6565b61139b33846128b0565b600b91909155600c5550565b606060048054610a68906137b1565b6113be6128ac565b6001600160a01b03166113cf611343565b6001600160a01b0316146113f55760405162461bcd60e51b8152600401610241906134a6565b6113fd6108c6565b1561141a5760405162461bcd60e51b8152600401610241906133fd565b6001600160a01b0380841660009081526014602090815260408083209386168352929052205461145c5760405162461bcd60e51b815260040161024190613607565b604051637acb775760e01b81526001600160a01b03841690637acb77579061148a9084908690600401613677565b600060405180830381600087803b1580156114a457600080fd5b505af11580156114b8573d6000803e3d6000fd5b505050506114cd6114c7611343565b826128b0565b6114df6114d8611343565b8483610bc2565b506114ec600e54826108d6565b600e556001600160a01b03831660009081526016602052604090205461151290826108d6565b6001600160a01b03808516600081815260166020908152604080832095909555601481528482209387168252928352838120549181526015835283812030825283528381208282529092529190205461156b90836108d6565b6001600160a01b039094166000908152601560209081526040808320308452825280832093835292905220929092555050565b600080600160006115ad6128ac565b6001600160a01b03908116825260208083019390935260409182016000908120918816815292529020549050828110156115f95760405162461bcd60e51b8152600401610241906135c2565b61160d6116046128ac565b85858403612990565b5060019392505050565b6000610aff6116246128ac565b8484612a44565b60606116356128ac565b6001600160a01b0316611646611343565b6001600160a01b03161461166c5760405162461bcd60e51b8152600401610241906134a6565b600a805480602002602001604051908101604052809291908181526020016000905b82821015610bb957838290600052602060002090600202016040518060400160405290816000820180546116c1906137b1565b80601f01602080910402602001604051908101604052809291908181526020018280546116ed906137b1565b801561173a5780601f1061170f5761010080835404028352916020019161173a565b820191906000526020600020905b81548152906001019060200180831161171d57829003601f168201915b50505091835250506001918201546001600160a01b031660209182015291835292909201910161168e565b600c541561178e5742600c541161178e5760405162461bcd60e51b815260040161024190613502565b6117966108c6565b156117b35760405162461bcd60e51b8152600401610241906133fd565b6001600160a01b038216600090815260096020526040812054156117d5575060015b8015610a545760175460ff16156117eb57600080fd5b6017805460ff191660011790556040516323b872dd60e01b81526001600160a01b038416906323b872dd90611828903390309087906004016130bc565b602060405180830381600087803b15801561184257600080fd5b505af1158015611856573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187a9190612f33565b15611cfc577f5a903c0a34c24eaba92e7ae11cc1c39d622c4d146d5dcb777537881f0dac359933846001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b1580156118da57600080fd5b505afa1580156118ee573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119169190810190612f53565b84604051611926939291906130e0565b60405180910390a13360009081526011602052604080822081516306fdde0360e01b8152915190926001600160a01b038716926306fdde039260048083019392829003018186803b15801561197a57600080fd5b505afa15801561198e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119b69190810190612f53565b6040516119c3919061307b565b90815260405190819003602001902054611ade5760006040518060400160405280856001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b158015611a1d57600080fd5b505afa158015611a31573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a599190810190612f53565b815233602091820152600a805460018101825560009190915282518051939450849360029092027fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80192611ab292849290910190612c98565b5060209190910151600190910180546001600160a01b0319166001600160a01b03909216919091179055505b3360009081526011602052604080822081516306fdde0360e01b81529151611b8c9391926001600160a01b038816926306fdde0392600480840193829003018186803b158015611b2d57600080fd5b505afa158015611b41573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b699190810190612f53565b604051611b76919061307b565b90815260405190819003602001902054836108d6565b3360009081526011602052604080822081516306fdde0360e01b8152915190926001600160a01b038816926306fdde039260048083019392829003018186803b158015611bd857600080fd5b505afa158015611bec573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c149190810190612f53565b604051611c21919061307b565b9081526040805191829003602090810183209390935533600090815260119093528083206306fdde0360e01b83529051869391926001600160a01b038516926306fdde0392600480840193829003018186803b158015611c8057600080fd5b505afa158015611c94573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cbc9190810190612f53565b604051611cc9919061307b565b90815260405190819003602001902060010180546001600160a01b03929092166001600160a01b03199092169190911790555b6017805460ff19169055505050565b606060088054806020026020016040519081016040528092919081815260200160009082821015610bb95760008481526020908190206040805180820190915260028502909101805482526001908101546001600160a01b0316828401529083529092019101610b71565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6000611dac826111d7565b92915050565b611dba6128ac565b6001600160a01b0316611dcb611343565b6001600160a01b031614611df15760405162461bcd60e51b8152600401610241906134a6565b60175460ff1615611e0157600080fd5b6017805460ff19166001179055600b54811180611e2f5750611e2c611e24610b08565b600f54612b68565b81115b15611fdc576001600160a01b038416600090815260116020526040908190209051611e769190611e6090869061307b565b9081526040519081900360200190205483612b68565b6001600160a01b038516600090815260116020526040908190209051611e9d90869061307b565b9081526040516020918190038201812092909255611ebd9185910161307b565b604051602081830303815290604052805190602001206432ba3432b960d91b14611f9f576001600160a01b038416600090815260116020526040908190209051611f0890859061307b565b908152604051908190036020018120600101546323b872dd60e01b82526001600160a01b0316906323b872dd90611f47903090889087906004016130bc565b602060405180830381600087803b158015611f6157600080fd5b505af1158015611f75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f999190612f33565b50611fd7565b6040516001600160a01b0385169083156108fc029084906000818181858888f19350505050158015611fd5573d6000803e3d6000fd5b505b611084565b611fee611fe7611343565b8583610bc2565b50611ffb600f54826108d6565b600f556001600160a01b03841660009081526012602052604090205461202190826108d6565b6001600160a01b038516600090815260126020526040902055600d5461204790826108d6565b600d556001600160a01b03841660009081526012602052604090206001015461207090826108d6565b6001600160a01b03851660009081526012602090815260409182902060010192909255516120a09185910161307b565b604051602081830303815290604052805190602001206432ba3432b960d91b14612186576001600160a01b0384166000908152601160205260409081902090516120eb90859061307b565b908152604051908190036020019020600101546001600160a01b03166323b872dd30612115611343565b856040518463ffffffff1660e01b8152600401612134939291906130bc565b602060405180830381600087803b15801561214e57600080fd5b505af1158015612162573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd59190612f33565b6010546040516001600160a01b039091169083156108fc029084906000818181858888f193505050501580156121c0573d6000803e3d6000fd5b5050506017805460ff191690555050565b6121d96128ac565b6001600160a01b03166121ea611343565b6001600160a01b0316146122105760405162461bcd60e51b8152600401610241906134a6565b6001600160a01b0381166122365760405162461bcd60e51b81526004016102419061332f565b61223f81612be5565b50565b61224a6128ac565b6001600160a01b031661225b611343565b6001600160a01b0316146122815760405162461bcd60e51b8152600401610241906134a6565b6001600160a01b038216600090815260076020526040902054610e09576040805180820182529182526001600160a01b03928316602080840182815260068054600181018255600082815296517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f60029092029182015591517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4090920180546001600160a01b031916929097169190911790955593549083526007909352902055565b61234c6128ac565b6001600160a01b031661235d611343565b6001600160a01b0316146123835760405162461bcd60e51b8152600401610241906134a6565b6001600160a01b03808316600090815260146020908152604080832093851683529290529081205415610a545760005b6001600160a01b0384166000908152601360205260409020548110156128a6576001600160a01b0384811660009081526013602052604090208054918516918390811061241057634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03161415612661576001600160a01b0384166000908152601360205260409020546124509060019061376e565b8114156124cf576001600160a01b038416600090815260136020526040902080548290811061248f57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910180546001600160a01b03191690556001600160a01b03868116835260148252604080842091871684529152812055612658565b6001600160a01b03841660009081526013602052604090206124f2826001613717565b8154811061251057634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0387811684526013909252604090922080549190921691908390811061255b57634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559186168152601482526040808220601390935281208054600193929190859081106125be57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020546125ed919061376e565b6001600160a01b03851660009081526014602090815260408083206013909252822080549192918590811061263257634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020555b60019150612894565b8115612894576001600160a01b03841660009081526013602052604090205461268c9060019061376e565b81141561270b576001600160a01b03841660009081526013602052604090208054829081106126cb57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910180546001600160a01b03191690556001600160a01b03868116835260148252604080842091871684529152812055612894565b6001600160a01b038416600090815260136020526040902061272e826001613717565b8154811061274c57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0387811684526013909252604090922080549190921691908390811061279757634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559186168152601482526040808220601390935281208054600193929190859081106127fa57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054612829919061376e565b6001600160a01b03851660009081526014602090815260408083206013909252822080549192918590811061286e57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020555b8061289e816137ec565b9150506123b3565b50505050565b3390565b6001600160a01b0382166128d65760405162461bcd60e51b815260040161024190613637565b6128e260008383610a54565b80600260008282546128f49190613717565b90915550506001600160a01b03821660009081526020819052604081208054839290612921908490613717565b90915550506040516001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061296490859061366e565b60405180910390a3610e0960008383610a54565b60006108e2828461372f565b60006108e2828461374f565b6001600160a01b0383166129b65760405162461bcd60e51b81526004016102419061357e565b6001600160a01b0382166129dc5760405162461bcd60e51b815260040161024190613375565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590612a3790859061366e565b60405180910390a3505050565b6001600160a01b038316612a6a5760405162461bcd60e51b815260040161024190613539565b6001600160a01b038216612a905760405162461bcd60e51b8152600401610241906132be565b612a9b838383610a54565b6001600160a01b03831660009081526020819052604090205481811015612ad45760405162461bcd60e51b8152600401610241906133b7565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290612b0b908490613717565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b55919061366e565b60405180910390a36128a6848484610a54565b60006108e2828461376e565b612b7c6108c6565b612b985760405162461bcd60e51b815260040161024190613301565b6005805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa612bce6128ac565b604051612bdb91906130a8565b60405180910390a1565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b612c3f6108c6565b15612c5c5760405162461bcd60e51b815260040161024190613434565b6005805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612bce6128ac565b828054612ca4906137b1565b90600052602060002090601f016020900481019282612cc65760008555612d0c565b82601f10612cdf57805160ff1916838001178555612d0c565b82800160010185558215612d0c579182015b82811115612d0c578251825591602001919060010190612cf1565b50612d18929150612d1c565b5090565b5b80821115612d185760008155600101612d1d565b80356001600160a01b0381168114610ec357600080fd5b600082601f830112612d58578081fd5b8135612d6b612d66826136ef565b6136c5565b818152846020838601011115612d7f578283fd5b816020850160208301379081016020019190915292915050565b600060208284031215612daa578081fd5b6108e282612d31565b60008060408385031215612dc5578081fd5b612dce83612d31565b9150612ddc60208401612d31565b90509250929050565b600080600060608486031215612df9578081fd5b612e0284612d31565b9250612e1060208501612d31565b9150612e1e60408501612d31565b90509250925092565b600080600060608486031215612e3b578283fd5b612e4484612d31565b9250612e5260208501612d31565b9150604084013590509250925092565b60008060408385031215612e74578182fd5b612e7d83612d31565b946020939093013593505050565b60008060408385031215612e9d578182fd5b612ea683612d31565b9150602083013567ffffffffffffffff811115612ec1578182fd5b612ecd85828601612d48565b9150509250929050565b60008060008060808587031215612eec578081fd5b612ef585612d31565b9350602085013567ffffffffffffffff811115612f10578182fd5b612f1c87828801612d48565b949794965050505060408301359260600135919050565b600060208284031215612f44578081fd5b815180151581146108e2578182fd5b600060208284031215612f64578081fd5b815167ffffffffffffffff811115612f7a578182fd5b8201601f81018413612f8a578182fd5b8051612f98612d66826136ef565b818152856020838501011115612fac578384fd5b612fbd826020830160208601613785565b95945050505050565b60008060408385031215612fd8578182fd5b82359150612ddc60208401612d31565b600080600060608486031215612ffc578283fd5b83359250612e1060208501612d31565b600080600060608486031215613020578283fd5b505081359360208301359350604090920135919050565b6000815180845261304f816020860160208601613785565b601f01601f19169290920160200192915050565b805182526020908101516001600160a01b0316910152565b6000825161308d818460208701613785565b9190910192915050565b6432ba3432b960d91b815260050190565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b038416815260606020820181905260009061310490830185613037565b9050826040830152949350505050565b6001600160a01b039290921682526060602083018190526005908301526432ba3432b960d91b6080830152604082015260a00190565b6020808252825182820181905260009190848201906040850190845b8181101561318b5783516001600160a01b031683529284019291840191600101613166565b50909695505050505050565b602080825282518282018190526000919060409081850190868401855b828110156131d7576131c7848351613063565b92840192908501906001016131b4565b5091979650505050505050565b60208082528251828201819052600091906040908185019080840286018301878501865b8381101561325257888303603f190185528151805187855261322c88860182613037565b918901516001600160a01b03169489019490945294870194925090860190600101613208565b509098975050505050505050565b602080825282518282018190526000919060409081850190868401855b828110156131d757613290848351613063565b928401929085019060010161327d565b901515815260200190565b6000602082526108e26020830184613037565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b60208082526018908201527f436f6e747261637420696e207061757365642073746174650000000000000000604082015260600190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252600d908201526c16995c9bc8195d1a081cd95b9d609a1b604082015260600190565b6020808252601c908201527f537562736372697074696f6e2077696e646f7720627265616368656400000000604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b60208082526016908201527513585b9859d95c88191bd95cc81b9bdd08195e1a5cdd60521b604082015260600190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b9182526001600160a01b0316602082015260400190565b918252602082015260400190565b93845260208401929092526040830152606082015260800190565b60ff91909116815260200190565b60405181810167ffffffffffffffff811182821017156136e7576136e761381d565b604052919050565b600067ffffffffffffffff8211156137095761370961381d565b50601f01601f191660200190565b6000821982111561372a5761372a613807565b500190565b60008261374a57634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561376957613769613807565b500290565b60008282101561378057613780613807565b500390565b60005b838110156137a0578181015183820152602001613788565b838111156128a65750506000910152565b6002810460018216806137c557607f821691505b602082108114156137e657634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561380057613800613807565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220b66a85ee48ef661edcb4d9f6fc67a275fc15f583867aec8636bcc54b40c8bbe264736f6c63430008000033",
|
|
860
880
|
"immutableReferences": {},
|
|
861
881
|
"generatedSources": [
|
|
862
882
|
{
|
|
@@ -8488,7 +8508,7 @@
|
|
|
8488
8508
|
}
|
|
8489
8509
|
]
|
|
8490
8510
|
},
|
|
8491
|
-
"name": "abi_encode_tuple_t_array$_t_struct$_platform_$
|
|
8511
|
+
"name": "abi_encode_tuple_t_array$_t_struct$_platform_$3316_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_platform_$3316_memory_ptr_$dyn_memory_ptr__fromStack_reversed",
|
|
8492
8512
|
"nodeType": "YulFunctionDefinition",
|
|
8493
8513
|
"parameters": [
|
|
8494
8514
|
{
|
|
@@ -9328,7 +9348,7 @@
|
|
|
9328
9348
|
}
|
|
9329
9349
|
]
|
|
9330
9350
|
},
|
|
9331
|
-
"name": "abi_encode_tuple_t_array$_t_struct$_provider_$
|
|
9351
|
+
"name": "abi_encode_tuple_t_array$_t_struct$_provider_$3326_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_provider_$3326_memory_ptr_$dyn_memory_ptr__fromStack_reversed",
|
|
9332
9352
|
"nodeType": "YulFunctionDefinition",
|
|
9333
9353
|
"parameters": [
|
|
9334
9354
|
{
|
|
@@ -9801,7 +9821,7 @@
|
|
|
9801
9821
|
}
|
|
9802
9822
|
]
|
|
9803
9823
|
},
|
|
9804
|
-
"name": "abi_encode_tuple_t_array$_t_struct$_token_$
|
|
9824
|
+
"name": "abi_encode_tuple_t_array$_t_struct$_token_$3321_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_token_$3321_memory_ptr_$dyn_memory_ptr__fromStack_reversed",
|
|
9805
9825
|
"nodeType": "YulFunctionDefinition",
|
|
9806
9826
|
"parameters": [
|
|
9807
9827
|
{
|
|
@@ -15917,15 +15937,15 @@
|
|
|
15917
15937
|
}
|
|
15918
15938
|
]
|
|
15919
15939
|
},
|
|
15920
|
-
"contents": "{\n { }\n function abi_decode_t_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_t_string(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n let _1 := calldataload(offset)\n let array_1 := allocateMemory(array_allocation_size_t_string(_1))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(array, array) }\n calldatacopy(add(array_1, 0x20), add(offset, 0x20), _1)\n mstore(add(add(array_1, _1), 0x20), array)\n array := array_1\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_t_address(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := abi_decode_t_address(headStart)\n value1 := abi_decode_t_address(add(headStart, 32))\n }\n function abi_decode_tuple_t_addresst_addresst_address(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := abi_decode_t_address(headStart)\n value1 := abi_decode_t_address(add(headStart, 32))\n value2 := abi_decode_t_address(add(headStart, 64))\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value0, value0) }\n value0 := abi_decode_t_address(headStart)\n value1 := abi_decode_t_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_addresst_bytes32(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := abi_decode_t_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_addresst_string_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := abi_decode_t_address(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(value1, value1) }\n value1 := abi_decode_t_string(add(headStart, offset), dataEnd)\n }\n function abi_decode_tuple_t_addresst_string_memory_ptrt_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(value3, value3) }\n value0 := abi_decode_t_address(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(value3, value3) }\n value1 := abi_decode_t_string(add(headStart, offset), dataEnd)\n value2 := calldataload(add(headStart, 64))\n value3 := calldataload(add(headStart, 96))\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := abi_decode_t_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(value0, value0) }\n let _1 := add(headStart, offset)\n if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(value0, value0) }\n let _2 := mload(_1)\n let array := allocateMemory(array_allocation_size_t_string(_2))\n mstore(array, _2)\n if gt(add(add(_1, _2), 32), dataEnd) { revert(value0, value0) }\n copy_memory_to_memory(add(_1, 32), add(array, 32), _2)\n value0 := array\n }\n function abi_decode_tuple_t_uint256t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := abi_decode_t_address(add(headStart, 32))\n }\n function abi_decode_tuple_t_uint256t_addresst_address(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := abi_decode_t_address(add(headStart, 32))\n value2 := abi_decode_t_address(add(headStart, 64))\n }\n function abi_decode_tuple_t_uint256t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_encode_t_string(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_t_struct$_platform(value, pos)\n {\n mstore(pos, mload(value))\n mstore(add(pos, 0x20), and(mload(add(value, 0x20)), sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_packed_t_stringliteral_13730b0d8e1bdbdc293b62ba010b1eede56b412ea2980defabe3d0b6c7844c3a__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos) -> end\n {\n mstore(pos, \"ether\")\n end := add(pos, 5)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_address_t_string_memory_ptr_t_uint256__to_t_address_t_string_memory_ptr_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), 96)\n tail := abi_encode_t_string(value1, add(headStart, 96))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_address_t_stringliteral_13730b0d8e1bdbdc293b62ba010b1eede56b412ea2980defabe3d0b6c7844c3a_t_uint256__to_t_address_t_string_memory_ptr_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), 96)\n mstore(add(headStart, 96), 5)\n mstore(add(headStart, 128), \"ether\")\n tail := add(headStart, 160)\n mstore(add(headStart, 64), value1)\n }\n function abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n let tail_1 := add(headStart, _1)\n mstore(headStart, _1)\n let pos := tail_1\n let length := mload(value0)\n mstore(tail_1, length)\n pos := add(headStart, 64)\n let srcPtr := add(value0, _1)\n let i := tail\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, and(mload(srcPtr), sub(shl(160, 1), 1)))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n tail := pos\n }\n function abi_encode_tuple_t_array$_t_struct$_platform_$3304_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_platform_$3304_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n let tail_1 := add(headStart, _1)\n mstore(headStart, _1)\n let pos := tail_1\n let length := mload(value0)\n mstore(tail_1, length)\n let _2 := 64\n pos := add(headStart, _2)\n let srcPtr := add(value0, _1)\n let i := tail\n for { } lt(i, length) { i := add(i, 1) }\n {\n abi_encode_t_struct$_platform(mload(srcPtr), pos)\n pos := add(pos, _2)\n srcPtr := add(srcPtr, _1)\n }\n tail := pos\n }\n function abi_encode_tuple_t_array$_t_struct$_provider_$3314_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_provider_$3314_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n let tail_1 := add(headStart, _1)\n mstore(headStart, _1)\n let pos := tail_1\n let length := mload(value0)\n mstore(tail_1, length)\n let _2 := 64\n pos := add(headStart, _2)\n let tail_2 := add(add(headStart, mul(length, _1)), _2)\n let srcPtr := add(value0, _1)\n let i := tail\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, add(sub(tail_2, headStart), not(63)))\n let _3 := mload(srcPtr)\n let memberValue0 := mload(_3)\n mstore(tail_2, _2)\n let tail_3 := abi_encode_t_string(memberValue0, add(tail_2, _2))\n mstore(add(tail_2, _1), and(mload(add(_3, _1)), sub(shl(160, 1), 1)))\n tail_2 := tail_3\n srcPtr := add(srcPtr, _1)\n pos := add(pos, _1)\n }\n tail := tail_2\n }\n function abi_encode_tuple_t_array$_t_struct$_token_$3309_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_token_$3309_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n let tail_1 := add(headStart, _1)\n mstore(headStart, _1)\n let pos := tail_1\n let length := mload(value0)\n mstore(tail_1, length)\n let _2 := 64\n pos := add(headStart, _2)\n let srcPtr := add(value0, _1)\n let i := tail\n for { } lt(i, length) { i := add(i, 1) }\n {\n abi_encode_t_struct$_platform(mload(srcPtr), pos)\n pos := add(pos, _2)\n srcPtr := add(srcPtr, _1)\n }\n tail := pos\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_t_string(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n mstore(add(headStart, 96), \"ess\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 20)\n mstore(add(headStart, 64), \"Pausable: not paused\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n mstore(add(headStart, 96), \"ss\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERC20: transfer amount exceeds b\")\n mstore(add(headStart, 96), \"alance\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_5a57365377c92b0681022f11d0777b6f274c7b5c77e99b8397c78a55e3390421__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Contract in paused state\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 16)\n mstore(add(headStart, 64), \"Pausable: paused\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERC20: transfer amount exceeds a\")\n mstore(add(headStart, 96), \"llowance\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_996aa1b55f232bc76c534afcef707284df9fcb474fcb9a501d844b5bc2d120fb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 13)\n mstore(add(headStart, 64), \"Zero eth sent\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_aab60e7aeac740cf75052233971f821d17e907b98672accd5e7c550d54eb6ddc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"Subscription window breached\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n mstore(add(headStart, 96), \"dress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: decreased allowance below\")\n mstore(add(headStart, 96), \" zero\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fb13b3d0398343dd7cb1ad2a2a27715bdff0ce68e99e5d913d1420e2394f4fb4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"Manager does not exist\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERC20: mint to the zero address\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function allocateMemory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, size)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function array_allocation_size_t_string(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(and(add(length, 0x1f), not(31)), 0x20)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y)\n {\n mstore(r, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(r, 0x24)\n }\n r := div(x, y)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n product := mul(x, y)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n}",
|
|
15940
|
+
"contents": "{\n { }\n function abi_decode_t_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_t_string(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n let _1 := calldataload(offset)\n let array_1 := allocateMemory(array_allocation_size_t_string(_1))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(array, array) }\n calldatacopy(add(array_1, 0x20), add(offset, 0x20), _1)\n mstore(add(add(array_1, _1), 0x20), array)\n array := array_1\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_t_address(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := abi_decode_t_address(headStart)\n value1 := abi_decode_t_address(add(headStart, 32))\n }\n function abi_decode_tuple_t_addresst_addresst_address(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := abi_decode_t_address(headStart)\n value1 := abi_decode_t_address(add(headStart, 32))\n value2 := abi_decode_t_address(add(headStart, 64))\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value0, value0) }\n value0 := abi_decode_t_address(headStart)\n value1 := abi_decode_t_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_addresst_bytes32(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := abi_decode_t_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_addresst_string_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := abi_decode_t_address(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(value1, value1) }\n value1 := abi_decode_t_string(add(headStart, offset), dataEnd)\n }\n function abi_decode_tuple_t_addresst_string_memory_ptrt_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(value3, value3) }\n value0 := abi_decode_t_address(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(value3, value3) }\n value1 := abi_decode_t_string(add(headStart, offset), dataEnd)\n value2 := calldataload(add(headStart, 64))\n value3 := calldataload(add(headStart, 96))\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := abi_decode_t_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(value0, value0) }\n let _1 := add(headStart, offset)\n if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(value0, value0) }\n let _2 := mload(_1)\n let array := allocateMemory(array_allocation_size_t_string(_2))\n mstore(array, _2)\n if gt(add(add(_1, _2), 32), dataEnd) { revert(value0, value0) }\n copy_memory_to_memory(add(_1, 32), add(array, 32), _2)\n value0 := array\n }\n function abi_decode_tuple_t_uint256t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := abi_decode_t_address(add(headStart, 32))\n }\n function abi_decode_tuple_t_uint256t_addresst_address(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := abi_decode_t_address(add(headStart, 32))\n value2 := abi_decode_t_address(add(headStart, 64))\n }\n function abi_decode_tuple_t_uint256t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_encode_t_string(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_t_struct$_platform(value, pos)\n {\n mstore(pos, mload(value))\n mstore(add(pos, 0x20), and(mload(add(value, 0x20)), sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_packed_t_stringliteral_13730b0d8e1bdbdc293b62ba010b1eede56b412ea2980defabe3d0b6c7844c3a__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos) -> end\n {\n mstore(pos, \"ether\")\n end := add(pos, 5)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_address_t_string_memory_ptr_t_uint256__to_t_address_t_string_memory_ptr_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), 96)\n tail := abi_encode_t_string(value1, add(headStart, 96))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_address_t_stringliteral_13730b0d8e1bdbdc293b62ba010b1eede56b412ea2980defabe3d0b6c7844c3a_t_uint256__to_t_address_t_string_memory_ptr_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), 96)\n mstore(add(headStart, 96), 5)\n mstore(add(headStart, 128), \"ether\")\n tail := add(headStart, 160)\n mstore(add(headStart, 64), value1)\n }\n function abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n let tail_1 := add(headStart, _1)\n mstore(headStart, _1)\n let pos := tail_1\n let length := mload(value0)\n mstore(tail_1, length)\n pos := add(headStart, 64)\n let srcPtr := add(value0, _1)\n let i := tail\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, and(mload(srcPtr), sub(shl(160, 1), 1)))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n tail := pos\n }\n function abi_encode_tuple_t_array$_t_struct$_platform_$3316_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_platform_$3316_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n let tail_1 := add(headStart, _1)\n mstore(headStart, _1)\n let pos := tail_1\n let length := mload(value0)\n mstore(tail_1, length)\n let _2 := 64\n pos := add(headStart, _2)\n let srcPtr := add(value0, _1)\n let i := tail\n for { } lt(i, length) { i := add(i, 1) }\n {\n abi_encode_t_struct$_platform(mload(srcPtr), pos)\n pos := add(pos, _2)\n srcPtr := add(srcPtr, _1)\n }\n tail := pos\n }\n function abi_encode_tuple_t_array$_t_struct$_provider_$3326_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_provider_$3326_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n let tail_1 := add(headStart, _1)\n mstore(headStart, _1)\n let pos := tail_1\n let length := mload(value0)\n mstore(tail_1, length)\n let _2 := 64\n pos := add(headStart, _2)\n let tail_2 := add(add(headStart, mul(length, _1)), _2)\n let srcPtr := add(value0, _1)\n let i := tail\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, add(sub(tail_2, headStart), not(63)))\n let _3 := mload(srcPtr)\n let memberValue0 := mload(_3)\n mstore(tail_2, _2)\n let tail_3 := abi_encode_t_string(memberValue0, add(tail_2, _2))\n mstore(add(tail_2, _1), and(mload(add(_3, _1)), sub(shl(160, 1), 1)))\n tail_2 := tail_3\n srcPtr := add(srcPtr, _1)\n pos := add(pos, _1)\n }\n tail := tail_2\n }\n function abi_encode_tuple_t_array$_t_struct$_token_$3321_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_token_$3321_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n let tail_1 := add(headStart, _1)\n mstore(headStart, _1)\n let pos := tail_1\n let length := mload(value0)\n mstore(tail_1, length)\n let _2 := 64\n pos := add(headStart, _2)\n let srcPtr := add(value0, _1)\n let i := tail\n for { } lt(i, length) { i := add(i, 1) }\n {\n abi_encode_t_struct$_platform(mload(srcPtr), pos)\n pos := add(pos, _2)\n srcPtr := add(srcPtr, _1)\n }\n tail := pos\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_t_string(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n mstore(add(headStart, 96), \"ess\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 20)\n mstore(add(headStart, 64), \"Pausable: not paused\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n mstore(add(headStart, 96), \"ss\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERC20: transfer amount exceeds b\")\n mstore(add(headStart, 96), \"alance\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_5a57365377c92b0681022f11d0777b6f274c7b5c77e99b8397c78a55e3390421__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Contract in paused state\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 16)\n mstore(add(headStart, 64), \"Pausable: paused\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERC20: transfer amount exceeds a\")\n mstore(add(headStart, 96), \"llowance\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_996aa1b55f232bc76c534afcef707284df9fcb474fcb9a501d844b5bc2d120fb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 13)\n mstore(add(headStart, 64), \"Zero eth sent\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_aab60e7aeac740cf75052233971f821d17e907b98672accd5e7c550d54eb6ddc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"Subscription window breached\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n mstore(add(headStart, 96), \"dress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: decreased allowance below\")\n mstore(add(headStart, 96), \" zero\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fb13b3d0398343dd7cb1ad2a2a27715bdff0ce68e99e5d913d1420e2394f4fb4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"Manager does not exist\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERC20: mint to the zero address\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function allocateMemory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, size)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function array_allocation_size_t_string(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(and(add(length, 0x1f), not(31)), 0x20)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y)\n {\n mstore(r, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(r, 0x24)\n }\n r := div(x, y)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n product := mul(x, y)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n}",
|
|
15921
15941
|
"id": 14,
|
|
15922
15942
|
"language": "Yul",
|
|
15923
15943
|
"name": "#utility.yul"
|
|
15924
15944
|
}
|
|
15925
15945
|
],
|
|
15926
|
-
"sourceMap": "499:
|
|
15927
|
-
"deployedSourceMap": "499:18951:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7699:9;;:12;7696:98;;7746:15;7734:9;;:27;7726:68;;;;-1:-1:-1;;;7726:68:8;;;;;;;:::i;:::-;;;;;;;;;7838:9;7830:39;;;;-1:-1:-1;;;7830:39:8;;;;;;;:::i;:::-;7927:8;:6;:8::i;:::-;:17;7919:54;;;;-1:-1:-1;;;7919:54:8;;;;;;;:::i;:::-;8021:4;;;;8020:5;8012:14;;;;;;8037:4;:11;;-1:-1:-1;;8037:11:8;8044:4;8037:11;;;8097:44;;;;;;8110:10;;8131:9;;8097:44;:::i;:::-;;;;;;;;8165:10;8155:21;;;;:9;:21;;;;;;;:30;;;;;:::i;:::-;;;;;;;;;;;;;;:42;8152:266;;8248:131;;;8302:15;;;;;;8248:131;;;8302:15;;;-1:-1:-1;;;8302:15:8;;;;8248:131;;;8353:10;8302:15;8248:131;;;;;;;8394:3;:12;;;;;;;8216:29;8394:12;;;;;;;;8248:131;;8394:12;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;8394:12:8;;;;;;;;;;;;-1:-1:-1;;;;;;8394:12:8;-1:-1:-1;;;;;8394:12:8;;;;;;;;;-1:-1:-1;8152:266:8;8496:10;8486:21;;;;:9;:21;;;;;;;:30;;8473:67;;8486:21;:30;;;:::i;:::-;;;;;;;;;;;;;;:42;8530:9;8473:12;:67::i;:::-;8438:10;8428:21;;;;:9;:21;;;;;;;:30;;;;;:::i;:::-;;;;;;;;;;;;;;:112;8551:4;:12;;-1:-1:-1;;8551:12:8;;;499:18951;;;;;18678:523;;;;;;;;;;-1:-1:-1;18678:523:8;;;;;:::i;:::-;;:::i;:::-;;2084:98:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4181:166;;;;;;;;;;-1:-1:-1;4181:166:2;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3172:106::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;5166:120:8:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;4814:478:2:-;;;;;;;;;;-1:-1:-1;4814:478:2;;;;;:::i;:::-;;:::i;16823:822:8:-;;;;;;;;;;-1:-1:-1;16823:822:8;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;3454:357::-;;;;;;;;;;-1:-1:-1;3454:357:8;;;;;:::i;:::-;;:::i;3021:91:2:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;7431:134:8:-;;;;;;;;;;-1:-1:-1;7431:134:8;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5687:212:2:-;;;;;;;;;;-1:-1:-1;5687:212:2;;;;;:::i;:::-;;:::i;19380:65:8:-;;;;;;;;;;;;;:::i;16091:586::-;;;;;;;;;;-1:-1:-1;16091:586:8;;;;;:::i;:::-;;:::i;17879:546::-;;;;;;;;;;-1:-1:-1;17879:546:8;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;1041:84:1:-;;;;;;;;;;;;;:::i;3997:182:8:-;;;;;;;;;;-1:-1:-1;3997:182:8;;;;;:::i;:::-;;:::i;10479:180::-;;;;;;;;;;-1:-1:-1;10479:180:8;;;;;:::i;:::-;;:::i;3336:125:2:-;;;;;;;;;;-1:-1:-1;3336:125:2;;;;;:::i;:::-;;:::i;1605:92:0:-;;;;;;;;;;;;;:::i;19257:61:8:-;;;;;;;;;;;;;:::i;5495:271::-;;;;;;;;;;-1:-1:-1;5495:271:8;;;;;:::i;:::-;;:::i;973:85:0:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3037:193:8:-;;;;;;;;;;-1:-1:-1;3037:193:8;;;;;:::i;:::-;;:::i;2295:102:2:-;;;;;;;;;;;;;:::i;14690:988:8:-;;;;;;;;;;-1:-1:-1;14690:988:8;;;;;:::i;:::-;;:::i;6386:405:2:-;;;;;;;;;;-1:-1:-1;6386:405:2;;;;;:::i;:::-;;:::i;3664:172::-;;;;;;;;;;-1:-1:-1;3664:172:2;;;;;:::i;:::-;;:::i;10160:114:8:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;8893:1205::-;;;;;;;;;;-1:-1:-1;8893:1205:8;;;;;:::i;:::-;;:::i;4247:110::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3894:149:2:-;;;;;;;;;;-1:-1:-1;3894:149:2;;;;;:::i;:::-;;:::i;11059:1644:8:-;;;;;;;;;;-1:-1:-1;11059:1644:8;;;;;:::i;:::-;;:::i;1846:189:0:-;;;;;;;;;;-1:-1:-1;1846:189:0;;;;;:::i;:::-;;:::i;4646:447:8:-;;;;;;;;;;-1:-1:-1;4646:447:8;;;;;:::i;:::-;;:::i;5976:1314::-;;;;;;;;;;-1:-1:-1;5976:1314:8;;;;;:::i;:::-;;:::i;1041:84:1:-;1111:7;;-1:-1:-1;;;1111:7:1;;;;;1041:84::o;2672:96:6:-;2730:7;2756:5;2760:1;2756;:5;:::i;:::-;2749:12;2672:96;-1:-1:-1;;;2672:96:6:o;18678:523:8:-;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;18766:29:8::1;18772:7;:5;:7::i;:::-;18781:13;18766:5;:29::i;:::-;-1:-1:-1::0;;;;;18862:22:8;::::1;;::::0;;;:11:::1;:22;::::0;;;;:40:::1;;::::0;18849:69:::1;::::0;18904:13;18849:12:::1;:69::i;:::-;-1:-1:-1::0;;;;;18806:22:8;::::1;;::::0;;;:11:::1;:22;::::0;;;;:40:::1;;:112:::0;;;;18929:265:::1;18945:3;:10:::0;18943:12;::::1;18929:265;;;18976:20;18999:64;19012:6;:30;19019:3;19023:1;19019:6;;;;;;-1:-1:-1::0;;;19019:6:8::1;;;;;;;;;;::::0;;;::::1;::::0;;;:22:::1;:6;::::0;;::::1;;:22:::0;::::1;::::0;-1:-1:-1;;;;;19019:22:8::1;19012:30:::0;;;::::1;::::0;;;;;;;;;;:37:::1;::::0;19051:11:::1;::::0;18999:12:::1;:64::i;:::-;18976:87;;19078:88;19091:7;:5;:7::i;:::-;19100:3;19104:1;19100:6;;;;;;-1:-1:-1::0;;;19100:6:8::1;;;;;;;;;;::::0;;;::::1;::::0;;;:22:::1;:6;::::0;;::::1;;:22;::::0;-1:-1:-1;;;;;19100:22:8::1;19124:41;19137:12:::0;19151:13;19124:12:::1;:41::i;19078:88::-;;18929:265;18957:3;;;;;:::i;:::-;;;;18929:265;;;;18678:523:::0;;:::o;2084:98:2:-;2138:13;2170:5;2163:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2084:98;:::o;4181:166::-;4264:4;4280:39;4289:12;:10;:12::i;:::-;4303:7;4312:6;4280:8;:39::i;:::-;-1:-1:-1;4336:4:2;4181:166;;;;:::o;3172:106::-;3259:12;;3172:106;:::o;5166:120:8:-;5222:28;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;5269:9:8::1;5262:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;::::1;::::0;-1:-1:-1;;;;;5262:16:8::1;::::0;;::::1;::::0;;;;;;::::1;::::0;::::1;;;;;;;;;;5166:120:::0;:::o;4814:478:2:-;4950:4;4966:36;4976:6;4984:9;4995:6;4966:9;:36::i;:::-;-1:-1:-1;;;;;5040:19:2;;5013:24;5040:19;;;:11;:19;;;;;5013:24;5060:12;:10;:12::i;:::-;-1:-1:-1;;;;;5040:33:2;-1:-1:-1;;;;;5040:33:2;;;;;;;;;;;;;5013:60;;5111:6;5091:16;:26;;5083:79;;;;-1:-1:-1;;;5083:79:2;;;;;;;:::i;:::-;5196:57;5205:6;5213:12;:10;:12::i;:::-;5246:6;5227:16;:25;5196:8;:57::i;:::-;-1:-1:-1;5281:4:2;;4814:478;-1:-1:-1;;;;4814:478:2:o;16823:822:8:-;16906:25;17023:32;17146:33;17270;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;17315:25:8::1;17343:41;17356:11;;17369:14;;17343:12;:41::i;:::-;-1:-1:-1::0;;;;;17435:22:8;::::1;17395:24;17435:22:::0;;;:11:::1;:22;::::0;;;;:40;17315:69;;-1:-1:-1;17395:24:8;17422:76:::1;::::0;17477:20:::1;17447:9:::0;17477::::1;:20::i;:::-;17422:12;:76::i;:::-;-1:-1:-1::0;;;;;17554:22:8;;;::::1;;::::0;;;:11:::1;:22;::::0;;;;:40;;17596::::1;::::0;;::::1;::::0;17517:17;;17554:40;;-1:-1:-1;17596:40:8;;-1:-1:-1;16823:822:8;;-1:-1:-1;;;16823:822:8:o;3454:357::-;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3541:18:8;::::1;;::::0;;;:10:::1;:18;::::0;;;;;3538:266:::1;;3606:108;::::0;;;;::::1;::::0;;;;;-1:-1:-1;;;;;3606:108:8;;::::1;;::::0;;::::1;::::0;;;3729:6:::1;:14:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;3729:14:8;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;;-1:-1:-1;;;;;;3729:14:8::1;::::0;;;::::1;::::0;;;::::1;::::0;;;3779:13;;3758:18;;;:10:::1;:18:::0;;;;;;:34;3538:266:::1;3454:357:::0;;:::o;3021:91:2:-;3103:2;3021:91;:::o;7431:134:8:-;7503:16;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7538:19:8;::::1;;::::0;;;:8:::1;:19;::::0;;;;;;;;7531:26;;;;;;::::1;::::0;;;;;;;;;;7538:19;;7531:26;::::1;7538:19:::0;7531:26;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;7531:26:8::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;;;;;;;;1255:1:0;7431:134:8::0;;;:::o;5687:212:2:-;5775:4;5791:80;5800:12;:10;:12::i;:::-;5814:7;5860:10;5823:11;:25;5835:12;:10;:12::i;:::-;-1:-1:-1;;;;;5823:25:2;;;;;;;;;;;;;;;;;-1:-1:-1;5823:25:2;;;:34;;;;;;;;;;:47;;;;:::i;:::-;5791:8;:80::i;19380:65:8:-;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;19427:10:8::1;:8;:10::i;:::-;19380:65::o:0;16091:586::-;16210:10;16222:1;16196:25;;;:13;:25;;;;;;16188:36;;;;;;-1:-1:-1;;;;;16243:18:8;;16262:1;16243:18;;;:10;:18;;;;;;16235:29;;;;;;16283:8;:6;:8::i;:::-;:17;16275:54;;;;-1:-1:-1;;;16275:54:8;;;;;;;:::i;:::-;16349:4;;;;16348:5;16340:14;;;;;;16365:4;:11;;-1:-1:-1;;16365:11:8;16372:4;16365:11;;;16416:10;16365:4;16403:24;;;:12;:24;;;;;;;;-1:-1:-1;;;;;16403:34:8;;;;;;;;;;16451:11;;:14;;;;:26;;-1:-1:-1;16469:8:8;;;16451:26;16448:199;;;16575:10;16564:22;;;;:10;:22;;;;;;;;-1:-1:-1;;;;;16564:30:8;;;;;;;;;:37;;;;;;;;:55;;;16551:84;;16621:13;16551:12;:84::i;:::-;16504:10;16493:22;;;;:10;:22;;;;;;;;-1:-1:-1;;;;;16493:30:8;;;;;;;;;:37;;;;;;;;:55;;:142;16448:199;-1:-1:-1;;16657:4:8;:12;;-1:-1:-1;;16657:12:8;;;-1:-1:-1;;16091:586:8:o;17879:546::-;17995:32;18114;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;18174:23:8;;::::1;18158:13;18174:23:::0;;;:12:::1;:23;::::0;;;;;;;:33;;::::1;::::0;;;;;;;;;18306:21;;;:10:::1;:21:::0;;;;;:29;;;::::1;::::0;;;;;;;;:36;;;;;;;:54;;18362::::1;::::0;;::::1;::::0;18306;;17879:546::o;3997:182::-;-1:-1:-1;;;;;4084:18:8;;4065:4;4084:18;;;:10;:18;;;;;;:20;4081:90;;-1:-1:-1;4126:4:8;4119:11;;4081:90;-1:-1:-1;4166:5:8;4159:12;;10479:180;10579:7;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10606:20:8;::::1;;::::0;;;:9:::1;:20;::::0;;;;;;:32;;::::1;::::0;10627:10;;10606:32:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;:44;;-1:-1:-1;10479:180:8;;;;:::o;3336:125:2:-;-1:-1:-1;;;;;3436:18:2;3410:7;3436:18;;;;;;;;;;;;3336:125::o;1605:92:0:-;1196:12;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;1669:21:::1;1687:1;1669:9;:21::i;19257:61:8:-:0;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;19302:8:8::1;:6;:8::i;5495:271::-:0;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5584:23:8;;::::1;;::::0;;;:12:::1;:23;::::0;;;;;;;:33;;::::1;::::0;;;;;;;5581:178:::1;;-1:-1:-1::0;;;;;5636:19:8;;::::1;;::::0;;;:8:::1;:19;::::0;;;;;;;:34;;::::1;::::0;::::1;::::0;;;;;;;;::::1;::::0;;;;::::1;-1:-1:-1::0;;;;;;5636:34:8;;::::1;::::0;::::1;::::0;;5721:19;;;:26;;5685:12:::1;:23:::0;;;;;:33;;;;;;;:62;5495:271;;:::o;973:85:0:-;1045:6;;-1:-1:-1;;;;;1045:6:0;973:85;:::o;3037:193:8:-;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;3136:26:8::1;3142:10;3154:7;3136:5;:26::i;:::-;3173:13;:20:::0;;;;3204:9:::1;:18:::0;-1:-1:-1;3037:193:8:o;2295:102:2:-;2351:13;2383:7;2376:14;;;;;:::i;14690:988:8:-;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;14811:8:8::1;:6;:8::i;:::-;:17;14803:54;;;;-1:-1:-1::0;;;14803:54:8::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14876:23:8;;::::1;;::::0;;;:12:::1;:23;::::0;;;;;;;:33;;::::1;::::0;;;;;;;14868:71:::1;;;;-1:-1:-1::0;;;14868:71:8::1;;;;;;;:::i;:::-;14950:51;::::0;-1:-1:-1;;;14950:51:8;;-1:-1:-1;;;;;14950:29:8;::::1;::::0;::::1;::::0;:51:::1;::::0;14980:10;;14992:8;;14950:51:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15012:26;15018:7;:5;:7::i;:::-;15027:10;15012:5;:26::i;:::-;15083:44;15096:7;:5;:7::i;:::-;15105:9;15116:10;15083:12;:44::i;:::-;;15288:40;15301:14;;15317:10;15288:12;:40::i;:::-;15271:14;:57:::0;-1:-1:-1;;;;;15395:22:8;::::1;;::::0;;;:11:::1;:22;::::0;;;;:40;15382:66:::1;::::0;15437:10;15382:12:::1;:66::i;:::-;-1:-1:-1::0;;;;;15339:22:8;;::::1;;::::0;;;:11:::1;:22;::::0;;;;;;;:109;;;;15475:12:::1;:23:::0;;;;;:33;;::::1;::::0;;;;;;;;;15596:21;;;:10:::1;:21:::0;;;;;15626:4:::1;15596:36:::0;;;;;;;:43;;;;;;;;;:61;15583:87:::1;::::0;15659:10;15583:12:::1;:87::i;:::-;-1:-1:-1::0;;;;;15519:21:8;;::::1;;::::0;;;:10:::1;:21;::::0;;;;;;;15549:4:::1;15519:36:::0;;;;;;;:43;;;;;;;:151;;;;-1:-1:-1;;14690:988:8:o;6386:405:2:-;6479:4;6495:24;6522:11;:25;6534:12;:10;:12::i;:::-;-1:-1:-1;;;;;6522:25:2;;;;;;;;;;;;;;;;;-1:-1:-1;6522:25:2;;;:34;;;;;;;;;;;-1:-1:-1;6574:35:2;;;;6566:85;;;;-1:-1:-1;;;6566:85:2;;;;;;;:::i;:::-;6685:67;6694:12;:10;:12::i;:::-;6708:7;6736:15;6717:16;:34;6685:8;:67::i;:::-;-1:-1:-1;6780:4:2;;6386:405;-1:-1:-1;;;6386:405:2:o;3664:172::-;3750:4;3766:42;3776:12;:10;:12::i;:::-;3790:9;3801:6;3766:9;:42::i;10160:114:8:-;10216:28;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;10263:3:8::1;10256:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;10256:10:8;;;-1:-1:-1;;10256:10:8::1;::::0;;::::1;::::0;-1:-1:-1;;;;;10256:10:8::1;;::::0;;::::1;::::0;;;;;;;::::1;::::0;::::1;;;8893:1205:::0;8962:9;;:12;8959:98;;9009:15;8997:9;;:27;8989:68;;;;-1:-1:-1;;;8989:68:8;;;;;;;:::i;:::-;9076:8;:6;:8::i;:::-;:17;9068:54;;;;-1:-1:-1;;;9068:54:8;;;;;;;:::i;:::-;-1:-1:-1;;;;;9165:18:8;;9133:10;9165:18;;;:10;:18;;;;;;:20;9162:50;;-1:-1:-1;9208:4:8;9162:50;9226:5;9223:868;;;9256:4;;;;9255:5;9247:14;;;;;;9276:4;:11;;-1:-1:-1;;9276:11:8;9283:4;9276:11;;;9305:63;;-1:-1:-1;;;9305:63:8;;-1:-1:-1;;;;;9305:27:8;;;;;:63;;9333:10;;9353:4;;9360:7;;9305:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9302:751;;;9393:55;9406:10;9424:6;-1:-1:-1;;;;;9418:18:8;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9418:20:8;;;;;;;;;;;;:::i;:::-;9440:7;9393:55;;;;;;;;:::i;:::-;;;;;;;;9480:10;9470:21;;;;:9;:21;;;;;;9492:20;;-1:-1:-1;;;9492:20:8;;;;9470:21;;-1:-1:-1;;;;;9492:18:8;;;;;:20;;;;;9470:21;9492:20;;;;;:18;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9492:20:8;;;;;;;;;;;;:::i;:::-;9470:43;;;;;;:::i;:::-;;;;;;;;;;;;;;:55;9467:332;;9552:29;9584:160;;;;;;;;9652:6;-1:-1:-1;;;;;9646:18:8;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9646:20:8;;;;;;;;;;;;:::i;:::-;9584:160;;9710:10;9584:160;;;;;9767:3;:12;;;;;;;-1:-1:-1;9767:12:8;;;;;;;;9552:192;;-1:-1:-1;9552:192:8;;9767:12;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;9767:12:8;;;;;;;;;;;;-1:-1:-1;;;;;;9767:12:8;-1:-1:-1;;;;;9767:12:8;;;;;;;;;-1:-1:-1;9467:332:8;9898:10;9888:21;;;;:9;:21;;;;;;9910:20;;-1:-1:-1;;;9910:20:8;;;;9875:78;;9888:21;;-1:-1:-1;;;;;9910:18:8;;;;;:20;;;;;;;;;;:18;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9910:20:8;;;;;;;;;;;;:::i;:::-;9888:43;;;;;;:::i;:::-;;;;;;;;;;;;;;:55;9945:7;9875:12;:78::i;:::-;9827:10;9817:21;;;;:9;:21;;;;;;9839:20;;-1:-1:-1;;;9839:20:8;;;;9817:21;;-1:-1:-1;;;;;9839:18:8;;;;;:20;;;;;9817:21;9839:20;;;;;:18;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9839:20:8;;;;;;;;;;;;:::i;:::-;9817:43;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:136;;;;9982:10;9817:55;9972:21;;;:9;:21;;;;;;-1:-1:-1;;;9994:20:8;;;;10031:6;;9972:21;;-1:-1:-1;;;;;9994:18:8;;;;;:20;;;;;;;;;;:18;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9994:20:8;;;;;;;;;;;;:::i;:::-;9972:43;;;;;;:::i;:::-;;;;;;;;;;;;;;:56;;:65;;-1:-1:-1;;;;;9972:65:8;;;;-1:-1:-1;;;;;;9972:65:8;;;;;;;;;9302:751;10067:4;:12;;-1:-1:-1;;10067:12:8;;;8893:1205;;;:::o;4247:110::-;4299:25;4343:6;4336:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4336:13:8;;;;;;;;;;;;;;;3894:149:2;-1:-1:-1;;;;;4009:18:2;;;3983:7;4009:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3894:149::o;11059:1644:8:-;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;11200:4:8::1;::::0;::::1;;11199:5;11191:14;;;::::0;::::1;;11216:4;:11:::0;;-1:-1:-1;;11216:11:8::1;11223:4;11216:11;::::0;;11339:13:::1;::::0;11326:26;::::1;::::0;11325:87:::1;;;11371:40;11384:13;:11;:13::i;:::-;11399:11;;11371:12;:40::i;:::-;11358:10;:53;11325:87;11322:1351;;;-1:-1:-1::0;;;;;11488:20:8;::::1;;::::0;;;:9:::1;:20;::::0;;;;;;:32;;11475:72:::1;::::0;11488:20;:32:::1;::::0;11509:10;;11488:32:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;:44;11534:12;11475::::1;:72::i;:::-;-1:-1:-1::0;;;;;11428:20:8;::::1;;::::0;;;:9:::1;:20;::::0;;;;;;:32;;::::1;::::0;11449:10;;11428:32:::1;:::i;:::-;::::0;;;::::1;::::0;::::1;::::0;;;;;;;;:119;;;;11575:28:::1;::::0;11592:10;;11575:28:::1;;:::i;:::-;;;;;;;;;;;;;11565:39;;;;;;-1:-1:-1::0;;;11565:48:8::1;11562:254;;-1:-1:-1::0;;;;;11639:20:8;::::1;;::::0;;;:9:::1;:20;::::0;;;;;;:32;;::::1;::::0;11660:10;;11639:32:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;:45:::1;;::::0;-1:-1:-1;;;11632:106:8;;-1:-1:-1;;;;;11639:45:8::1;::::0;11632:66:::1;::::0;:106:::1;::::0;11707:4:::1;::::0;11714:9;;11725:12;;11632:106:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11562:254;;;11775:41;::::0;-1:-1:-1;;;;;11775:27:8;::::1;::::0;:41;::::1;;;::::0;11803:12;;11775:41:::1;::::0;;;11803:12;11775:27;:41;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;11562:254;11322:1351;;;11968:44;11981:7;:5;:7::i;:::-;11990:9;12001:10;11968:12;:44::i;:::-;;12043:37;12056:11;;12069:10;12043:12;:37::i;:::-;12029:11;:51:::0;-1:-1:-1;;;;;12139:17:8;::::1;;::::0;;;:6:::1;:17;::::0;;;;:24;12126:50:::1;::::0;12165:10;12126:12:::1;:50::i;:::-;-1:-1:-1::0;;;;;12099:17:8;::::1;;::::0;;;:6:::1;:17;::::0;;;;:77;12218:11:::1;::::0;12205:37:::1;::::0;12231:10;12205:12:::1;:37::i;:::-;12191:11;:51:::0;-1:-1:-1;;;;;12331:17:8;::::1;;::::0;;;:6:::1;:17;::::0;;;;:24:::1;;::::0;12318:50:::1;::::0;12357:10;12318:12:::1;:50::i;:::-;-1:-1:-1::0;;;;;12291:17:8;::::1;;::::0;;;:6:::1;:17;::::0;;;;;;;;:24:::1;;:77:::0;;;;12429:28;::::1;::::0;12446:10;;12429:28:::1;;:::i;:::-;;;;;;;;;;;;;12419:39;;;;;;-1:-1:-1::0;;;12419:48:8::1;12416:244;;-1:-1:-1::0;;;;;12493:20:8;::::1;;::::0;;;:9:::1;:20;::::0;;;;;;:32;;::::1;::::0;12514:10;;12493:32:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;:45:::1;;::::0;-1:-1:-1;;;;;12493:45:8::1;12486:66;12561:4;12568:7;:5;:7::i;:::-;12577:12;12486:104;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12416:244::-;12628:8;::::0;12627:33:::1;::::0;-1:-1:-1;;;;;12628:8:8;;::::1;::::0;12627:33;::::1;;;::::0;12647:12;;12628:8:::1;12627:33:::0;12628:8;12627:33;12647:12;12628:8;12627:33;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;-1:-1:-1::0;;12683:4:8::1;:12:::0;;-1:-1:-1;;12683:12:8::1;::::0;;-1:-1:-1;;11059:1644:8:o;1846:189:0:-;1196:12;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1934:22:0;::::1;1926:73;;;;-1:-1:-1::0;;;1926:73:0::1;;;;;;;:::i;:::-;2009:19;2019:8;2009:9;:19::i;:::-;1846:189:::0;:::o;4646:447:8:-;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4756:33:8;::::1;;::::0;;;:13:::1;:33;::::0;;;;;4753:333:::1;;4839:136;::::0;;;;::::1;::::0;;;;;-1:-1:-1;;;;;4839:136:8;;::::1;;::::0;;::::1;::::0;;;4990:9:::1;:17:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;4990:17:8;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;;-1:-1:-1;;;;;;4990:17:8::1;::::0;;;::::1;::::0;;;::::1;::::0;;;5058:16;;5022:33;;;:13:::1;:33:::0;;;;;:52;4646:447::o;5976:1314::-;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6097:23:8;;::::1;6065:10;6097:23:::0;;;:12:::1;:23;::::0;;;;;;;:33;;::::1;::::0;;;;;;;;;:36;6094:1189:::1;;6153:6;6149:1123;-1:-1:-1::0;;;;;6165:19:8;::::1;;::::0;;;:8:::1;:19;::::0;;;;:26;6163:28;::::1;6149:1123;;;-1:-1:-1::0;;;;;6219:19:8;;::::1;;::::0;;;:8:::1;:19;::::0;;;;:22;;:32;;::::1;::::0;6239:1;;6219:22;::::1;;;-1:-1:-1::0;;;6219:22:8::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;6219:22:8::1;:32;6216:1041;;;-1:-1:-1::0;;;;;6281:19:8;::::1;;::::0;;;:8:::1;:19;::::0;;;;:26;:28:::1;::::0;6308:1:::1;::::0;6281:28:::1;:::i;:::-;6278:1;:31;6275:427;;;-1:-1:-1::0;;;;;6343:19:8;::::1;;::::0;;;:8:::1;:19;::::0;;;;:22;;6363:1;;6343:22;::::1;;;-1:-1:-1::0;;;6343:22:8::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;::::1;6336:29:::0;;-1:-1:-1;;;;;;6336:29:8::1;::::0;;-1:-1:-1;;;;;6391:23:8;;::::1;::::0;;:12:::1;:23:::0;;;;;;:33;;::::1;::::0;;;;;;:37;6275:427:::1;;;-1:-1:-1::0;;;;;6527:19:8;::::1;;::::0;;;:8:::1;:19;::::0;;;;6547:3:::1;:1:::0;6549::::1;6547:3;:::i;:::-;6527:24;;;;;;-1:-1:-1::0;;;6527:24:8::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;6504:19:8;;::::1;::::0;;:8:::1;:19:::0;;;;;;;:22;;6527:24;;;::::1;::::0;6504:19;6524:1;;6504:22;::::1;;;-1:-1:-1::0;;;6504:22:8::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;;::::1;:47:::0;;-1:-1:-1;;;;;;6504:47:8::1;-1:-1:-1::0;;;;;6504:47:8;;::::1;;::::0;;6627:23;;::::1;::::0;;:12:::1;:23:::0;;;;;;6651:8:::1;:19:::0;;;;;:22;;-1:-1:-1;;6627:23:8;6504:22;6651:19;6671:1;;6651:22;::::1;;;-1:-1:-1::0;;;6651:22:8::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;6651:22:8::1;6627:47:::0;;;::::1;::::0;;;;;;;;;:51:::1;::::0;;::::1;:::i;:::-;-1:-1:-1::0;;;;;6577:23:8;::::1;;::::0;;;:12:::1;:23;::::0;;;;;;;6601:8:::1;:19:::0;;;;;:22;;6577:23;;;6621:1;;6601:22;::::1;;;-1:-1:-1::0;;;6601:22:8::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;6601:22:8::1;6577:47:::0;;;::::1;::::0;;;;;;;;:101;6275:427:::1;6732:4;6724:12;;6216:1041;;;6782:5;6779:478;;;-1:-1:-1::0;;;;;6817:19:8;::::1;;::::0;;;:8:::1;:19;::::0;;;;:26;:28:::1;::::0;6844:1:::1;::::0;6817:28:::1;:::i;:::-;6814:1;:31;6811:427;;;-1:-1:-1::0;;;;;6879:19:8;::::1;;::::0;;;:8:::1;:19;::::0;;;;:22;;6899:1;;6879:22;::::1;;;-1:-1:-1::0;;;6879:22:8::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;::::1;6872:29:::0;;-1:-1:-1;;;;;;6872:29:8::1;::::0;;-1:-1:-1;;;;;6927:23:8;;::::1;::::0;;:12:::1;:23:::0;;;;;;:33;;::::1;::::0;;;;;;:37;6811:427:::1;;;-1:-1:-1::0;;;;;7063:19:8;::::1;;::::0;;;:8:::1;:19;::::0;;;;7083:3:::1;:1:::0;7085::::1;7083:3;:::i;:::-;7063:24;;;;;;-1:-1:-1::0;;;7063:24:8::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;7040:19:8;;::::1;::::0;;:8:::1;:19:::0;;;;;;;:22;;7063:24;;;::::1;::::0;7040:19;7060:1;;7040:22;::::1;;;-1:-1:-1::0;;;7040:22:8::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;;::::1;:47:::0;;-1:-1:-1;;;;;;7040:47:8::1;-1:-1:-1::0;;;;;7040:47:8;;::::1;;::::0;;7163:23;;::::1;::::0;;:12:::1;:23:::0;;;;;;7187:8:::1;:19:::0;;;;;:22;;-1:-1:-1;;7163:23:8;7040:22;7187:19;7207:1;;7187:22;::::1;;;-1:-1:-1::0;;;7187:22:8::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;7187:22:8::1;7163:47:::0;;;::::1;::::0;;;;;;;;;:51:::1;::::0;;::::1;:::i;:::-;-1:-1:-1::0;;;;;7113:23:8;::::1;;::::0;;;:12:::1;:23;::::0;;;;;;;7137:8:::1;:19:::0;;;;;:22;;7113:23;;;7157:1;;7137:22;::::1;;;-1:-1:-1::0;;;7137:22:8::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;7137:22:8::1;7113:47:::0;;;::::1;::::0;;;;;;;;:101;6811:427:::1;6193:3:::0;::::1;::::0;::::1;:::i;:::-;;;;6149:1123;;;;1255:1:0;5976:1314:8::0;;:::o;587:96:5:-;666:10;587:96;:::o;8254:389:2:-;-1:-1:-1;;;;;8337:21:2;;8329:65;;;;-1:-1:-1;;;8329:65:2;;;;;;;:::i;:::-;8405:49;8434:1;8438:7;8447:6;8405:20;:49::i;:::-;8481:6;8465:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8497:18:2;;:9;:18;;;;;;;;;;:28;;8519:6;;8497:9;:28;;8519:6;;8497:28;:::i;:::-;;;;-1:-1:-1;;8540:37:2;;-1:-1:-1;;;;;8540:37:2;;;8557:1;;8540:37;;;;8570:6;;8540:37;:::i;:::-;;;;;;;;8588:48;8616:1;8620:7;8629:6;8588:19;:48::i;3767:96:6:-;3825:7;3851:5;3855:1;3851;:5;:::i;3382:96::-;3440:7;3466:5;3470:1;3466;:5;:::i;9962:370:2:-;-1:-1:-1;;;;;10093:19:2;;10085:68;;;;-1:-1:-1;;;10085:68:2;;;;;;;:::i;:::-;-1:-1:-1;;;;;10171:21:2;;10163:68;;;;-1:-1:-1;;;10163:68:2;;;;;;;:::i;:::-;-1:-1:-1;;;;;10242:18:2;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;10293:32;;;;;10272:6;;10293:32;:::i;:::-;;;;;;;;9962:370;;;:::o;7265:713::-;-1:-1:-1;;;;;7400:20:2;;7392:70;;;;-1:-1:-1;;;7392:70:2;;;;;;;:::i;:::-;-1:-1:-1;;;;;7480:23:2;;7472:71;;;;-1:-1:-1;;;7472:71:2;;;;;;;:::i;:::-;7554:47;7575:6;7583:9;7594:6;7554:20;:47::i;:::-;-1:-1:-1;;;;;7636:17:2;;7612:21;7636:17;;;;;;;;;;;7671:23;;;;7663:74;;;;-1:-1:-1;;;7663:74:2;;;;;;;:::i;:::-;-1:-1:-1;;;;;7771:17:2;;;:9;:17;;;;;;;;;;;7791:22;;;7771:42;;7833:20;;;;;;;;:30;;7807:6;;7771:9;7833:30;;7807:6;;7833:30;:::i;:::-;;;;;;;;7896:9;-1:-1:-1;;;;;7879:35:2;7888:6;-1:-1:-1;;;;;7879:35:2;;7907:6;7879:35;;;;;;:::i;:::-;;;;;;;;7925:46;7945:6;7953:9;7964:6;7925:19;:46::i;3039:96:6:-;3097:7;3123:5;3127:1;3123;:5;:::i;2053:117:1:-;1620:8;:6;:8::i;:::-;1612:41;;;;-1:-1:-1;;;1612:41:1;;;;;;;:::i;:::-;2111:7:::1;:15:::0;;-1:-1:-1;;;;2111:15:1::1;::::0;;2141:22:::1;2150:12;:10;:12::i;:::-;2141:22;;;;;;:::i;:::-;;;;;;;;2053:117::o:0;2041:169:0:-;2115:6;;;-1:-1:-1;;;;;2131:17:0;;;-1:-1:-1;;;;;;2131:17:0;;;;;;;2163:40;;2115:6;;;2131:17;2115:6;;2163:40;;2096:16;;2163:40;2041:169;;:::o;1806:115:1:-;1355:8;:6;:8::i;:::-;1354:9;1346:38;;;;-1:-1:-1;;;1346:38:1;;;;;;;:::i;:::-;1865:7:::1;:14:::0;;-1:-1:-1;;;;1865:14:1::1;-1:-1:-1::0;;;1865:14:1::1;::::0;;1894:20:::1;1901:12;:10;:12::i;-1:-1:-1:-:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:175:14;84:20;;-1:-1:-1;;;;;133:31:14;;123:42;;113:2;;179:1;176;169:12;194:487;;292:3;285:4;277:6;273:17;269:27;259:2;;314:5;307;300:20;259:2;354:6;341:20;385:50;400:34;431:2;400:34;:::i;:::-;385:50;:::i;:::-;460:2;451:7;444:19;506:3;499:4;494:2;486:6;482:15;478:26;475:35;472:2;;;527:5;520;513:20;472:2;596;589:4;581:6;577:17;570:4;561:7;557:18;544:55;619:16;;;637:4;615:27;608:42;;;;623:7;249:432;-1:-1:-1;;249:432:14:o;686:198::-;;798:2;786:9;777:7;773:23;769:32;766:2;;;819:6;811;804:22;766:2;847:31;868:9;847:31;:::i;889:274::-;;;1018:2;1006:9;997:7;993:23;989:32;986:2;;;1039:6;1031;1024:22;986:2;1067:31;1088:9;1067:31;:::i;:::-;1057:41;;1117:40;1153:2;1142:9;1138:18;1117:40;:::i;:::-;1107:50;;976:187;;;;;:::o;1168:350::-;;;;1314:2;1302:9;1293:7;1289:23;1285:32;1282:2;;;1335:6;1327;1320:22;1282:2;1363:31;1384:9;1363:31;:::i;:::-;1353:41;;1413:40;1449:2;1438:9;1434:18;1413:40;:::i;:::-;1403:50;;1472:40;1508:2;1497:9;1493:18;1472:40;:::i;:::-;1462:50;;1272:246;;;;;:::o;1523:342::-;;;;1669:2;1657:9;1648:7;1644:23;1640:32;1637:2;;;1690:6;1682;1675:22;1637:2;1718:31;1739:9;1718:31;:::i;:::-;1708:41;;1768:40;1804:2;1793:9;1789:18;1768:40;:::i;:::-;1758:50;;1855:2;1844:9;1840:18;1827:32;1817:42;;1627:238;;;;;:::o;1870:266::-;;;1999:2;1987:9;1978:7;1974:23;1970:32;1967:2;;;2020:6;2012;2005:22;1967:2;2048:31;2069:9;2048:31;:::i;:::-;2038:41;2126:2;2111:18;;;;2098:32;;-1:-1:-1;;;1957:179:14:o;2141:420::-;;;2280:2;2268:9;2259:7;2255:23;2251:32;2248:2;;;2301:6;2293;2286:22;2248:2;2329:31;2350:9;2329:31;:::i;:::-;2319:41;;2411:2;2400:9;2396:18;2383:32;2438:18;2430:6;2427:30;2424:2;;;2475:6;2467;2460:22;2424:2;2503:52;2547:7;2538:6;2527:9;2523:22;2503:52;:::i;:::-;2493:62;;;2238:323;;;;;:::o;2566:557::-;;;;;2739:3;2727:9;2718:7;2714:23;2710:33;2707:2;;;2761:6;2753;2746:22;2707:2;2789:31;2810:9;2789:31;:::i;:::-;2779:41;;2871:2;2860:9;2856:18;2843:32;2898:18;2890:6;2887:30;2884:2;;;2935:6;2927;2920:22;2884:2;2963:52;3007:7;2998:6;2987:9;2983:22;2963:52;:::i;:::-;2697:426;;2953:62;;-1:-1:-1;;;;3062:2:14;3047:18;;3034:32;;3113:2;3098:18;3085:32;;2697:426;-1:-1:-1;2697:426:14:o;3399:297::-;;3519:2;3507:9;3498:7;3494:23;3490:32;3487:2;;;3540:6;3532;3525:22;3487:2;3577:9;3571:16;3630:5;3623:13;3616:21;3609:5;3606:32;3596:2;;3657:6;3649;3642:22;3701:677;;3834:2;3822:9;3813:7;3809:23;3805:32;3802:2;;;3855:6;3847;3840:22;3802:2;3893:9;3887:16;3926:18;3918:6;3915:30;3912:2;;;3963:6;3955;3948:22;3912:2;3991:22;;4044:4;4036:13;;4032:27;-1:-1:-1;4022:2:14;;4078:6;4070;4063:22;4022:2;4112;4106:9;4137:50;4152:34;4183:2;4152:34;:::i;4137:50::-;4210:2;4203:5;4196:17;4250:7;4245:2;4240;4236;4232:11;4228:20;4225:33;4222:2;;;4276:6;4268;4261:22;4222:2;4294:54;4345:2;4340;4333:5;4329:14;4324:2;4320;4316:11;4294:54;:::i;:::-;4367:5;3792:586;-1:-1:-1;;;;;3792:586:14:o;4383:266::-;;;4512:2;4500:9;4491:7;4487:23;4483:32;4480:2;;;4533:6;4525;4518:22;4480:2;4574:9;4561:23;4551:33;;4603:40;4639:2;4628:9;4624:18;4603:40;:::i;4654:342::-;;;;4800:2;4788:9;4779:7;4775:23;4771:32;4768:2;;;4821:6;4813;4806:22;4768:2;4862:9;4849:23;4839:33;;4891:40;4927:2;4916:9;4912:18;4891:40;:::i;5001:326::-;;;;5147:2;5135:9;5126:7;5122:23;5118:32;5115:2;;;5168:6;5160;5153:22;5115:2;-1:-1:-1;;5196:23:14;;;5266:2;5251:18;;5238:32;;-1:-1:-1;5317:2:14;5302:18;;;5289:32;;5105:222;-1:-1:-1;5105:222:14:o;5332:260::-;;5414:5;5408:12;5441:6;5436:3;5429:19;5457:63;5513:6;5506:4;5501:3;5497:14;5490:4;5483:5;5479:16;5457:63;:::i;:::-;5574:2;5553:15;-1:-1:-1;;5549:29:14;5540:39;;;;5581:4;5536:50;;5384:208;-1:-1:-1;;5384:208:14:o;5597:178::-;5674:12;;5662:25;;5740:4;5729:16;;;5723:23;-1:-1:-1;;;;;5719:49:14;5703:14;;5696:73;5652:123::o;5780:276::-;;5949:6;5943:13;5965:53;6011:6;6006:3;5999:4;5991:6;5987:17;5965:53;:::i;:::-;6034:16;;;;;5919:137;-1:-1:-1;;5919:137:14:o;6061:255::-;-1:-1:-1;;;6263:20:14;;6308:1;6299:11;;6253:63::o;6321:203::-;-1:-1:-1;;;;;6485:32:14;;;;6467:51;;6455:2;6440:18;;6422:102::o;6529:375::-;-1:-1:-1;;;;;6787:15:14;;;6769:34;;6839:15;;;;6834:2;6819:18;;6812:43;6886:2;6871:18;;6864:34;;;;6719:2;6704:18;;6686:218::o;6909:390::-;-1:-1:-1;;;;;7114:32:14;;7096:51;;7183:2;7178;7163:18;;7156:30;;;6909:390;;7203:47;;7231:18;;7223:6;7203:47;:::i;:::-;7195:55;;7286:6;7281:2;7270:9;7266:18;7259:34;7086:213;;;;;;:::o;7304:498::-;-1:-1:-1;;;;;7562:32:14;;;;7544:51;;7631:2;7626;7611:18;;7604:30;;;7670:1;7650:18;;;7643:29;-1:-1:-1;;;7703:3:14;7688:19;;7681:36;7784:2;7769:18;;7762:34;7582:3;7734:19;;7534:268::o;7807:661::-;7978:2;8030:21;;;8100:13;;8003:18;;;8122:22;;;7807:661;;7978:2;8201:15;;;;8175:2;8160:18;;;7807:661;8247:195;8261:6;8258:1;8255:13;8247:195;;;8326:13;;-1:-1:-1;;;;;8322:39:14;8310:52;;8417:15;;;;8382:12;;;;8358:1;8276:9;8247:195;;;-1:-1:-1;8459:3:14;;7958:510;-1:-1:-1;;;;;;7958:510:14:o;8473:731::-;8696:2;8748:21;;;8818:13;;8721:18;;;8840:22;;;8473:731;;8696:2;8881;;8899:18;;;;8940:15;;;8473:731;8986:192;9000:6;8997:1;8994:13;8986:192;;;9049:49;9094:3;9085:6;9079:13;9049:49;:::i;:::-;9118:12;;;;9153:15;;;;9022:1;9015:9;8986:192;;;-1:-1:-1;9195:3:14;;8676:528;-1:-1:-1;;;;;;;8676:528:14:o;9209:1094::-;9432:2;9484:21;;;9554:13;;9457:18;;;9576:22;;;9209:1094;;9432:2;9617;;9635:18;;;;9695:15;;;9680:31;;9676:40;;9739:15;;;9209:1094;9785:489;9799:6;9796:1;9793:13;9785:489;;;9864:22;;;-1:-1:-1;;9860:36:14;9848:49;;9920:13;;9966:9;;9988:18;;;10033:50;10067:15;;;9966:9;10033:50;:::i;:::-;10130:11;;;10124:18;-1:-1:-1;;;;;10120:44:14;10103:15;;;10096:69;;;;10252:12;;;;10019:64;-1:-1:-1;10217:15:14;;;;10161:1;9814:9;9785:489;;;-1:-1:-1;10291:6:14;;9412:891;-1:-1:-1;;;;;;;;9412:891:14:o;10308:725::-;10525:2;10577:21;;;10647:13;;10550:18;;;10669:22;;;10308:725;;10525:2;10710;;10728:18;;;;10769:15;;;10308:725;10815:192;10829:6;10826:1;10823:13;10815:192;;;10878:49;10923:3;10914:6;10908:13;10878:49;:::i;:::-;10947:12;;;;10982:15;;;;10851:1;10844:9;10815:192;;11038:187;11203:14;;11196:22;11178:41;;11166:2;11151:18;;11133:92::o;11230:222::-;;11379:2;11368:9;11361:21;11399:47;11442:2;11431:9;11427:18;11419:6;11399:47;:::i;11457:399::-;11659:2;11641:21;;;11698:2;11678:18;;;11671:30;11737:34;11732:2;11717:18;;11710:62;-1:-1:-1;;;11803:2:14;11788:18;;11781:33;11846:3;11831:19;;11631:225::o;11861:344::-;12063:2;12045:21;;;12102:2;12082:18;;;12075:30;-1:-1:-1;;;12136:2:14;12121:18;;12114:50;12196:2;12181:18;;12035:170::o;12210:402::-;12412:2;12394:21;;;12451:2;12431:18;;;12424:30;12490:34;12485:2;12470:18;;12463:62;-1:-1:-1;;;12556:2:14;12541:18;;12534:36;12602:3;12587:19;;12384:228::o;12617:398::-;12819:2;12801:21;;;12858:2;12838:18;;;12831:30;12897:34;12892:2;12877:18;;12870:62;-1:-1:-1;;;12963:2:14;12948:18;;12941:32;13005:3;12990:19;;12791:224::o;13020:402::-;13222:2;13204:21;;;13261:2;13241:18;;;13234:30;13300:34;13295:2;13280:18;;13273:62;-1:-1:-1;;;13366:2:14;13351:18;;13344:36;13412:3;13397:19;;13194:228::o;13427:348::-;13629:2;13611:21;;;13668:2;13648:18;;;13641:30;13707:26;13702:2;13687:18;;13680:54;13766:2;13751:18;;13601:174::o;13780:340::-;13982:2;13964:21;;;14021:2;14001:18;;;13994:30;-1:-1:-1;;;14055:2:14;14040:18;;14033:46;14111:2;14096:18;;13954:166::o;14125:404::-;14327:2;14309:21;;;14366:2;14346:18;;;14339:30;14405:34;14400:2;14385:18;;14378:62;-1:-1:-1;;;14471:2:14;14456:18;;14449:38;14519:3;14504:19;;14299:230::o;14534:356::-;14736:2;14718:21;;;14755:18;;;14748:30;14814:34;14809:2;14794:18;;14787:62;14881:2;14866:18;;14708:182::o;14895:337::-;15097:2;15079:21;;;15136:2;15116:18;;;15109:30;-1:-1:-1;;;15170:2:14;15155:18;;15148:43;15223:2;15208:18;;15069:163::o;15237:352::-;15439:2;15421:21;;;15478:2;15458:18;;;15451:30;15517;15512:2;15497:18;;15490:58;15580:2;15565:18;;15411:178::o;15594:401::-;15796:2;15778:21;;;15835:2;15815:18;;;15808:30;15874:34;15869:2;15854:18;;15847:62;-1:-1:-1;;;15940:2:14;15925:18;;15918:35;15985:3;15970:19;;15768:227::o;16000:400::-;16202:2;16184:21;;;16241:2;16221:18;;;16214:30;16280:34;16275:2;16260:18;;16253:62;-1:-1:-1;;;16346:2:14;16331:18;;16324:34;16390:3;16375:19;;16174:226::o;16405:401::-;16607:2;16589:21;;;16646:2;16626:18;;;16619:30;16685:34;16680:2;16665:18;;16658:62;-1:-1:-1;;;16751:2:14;16736:18;;16729:35;16796:3;16781:19;;16579:227::o;16811:346::-;17013:2;16995:21;;;17052:2;17032:18;;;17025:30;-1:-1:-1;;;17086:2:14;17071:18;;17064:52;17148:2;17133:18;;16985:172::o;17162:355::-;17364:2;17346:21;;;17403:2;17383:18;;;17376:30;17442:33;17437:2;17422:18;;17415:61;17508:2;17493:18;;17336:181::o;17522:177::-;17668:25;;;17656:2;17641:18;;17623:76::o;17704:274::-;17878:25;;;-1:-1:-1;;;;;17939:32:14;17934:2;17919:18;;17912:60;17866:2;17851:18;;17833:145::o;17983:248::-;18157:25;;;18213:2;18198:18;;18191:34;18145:2;18130:18;;18112:119::o;18236:391::-;18467:25;;;18523:2;18508:18;;18501:34;;;;18566:2;18551:18;;18544:34;18609:2;18594:18;;18587:34;18454:3;18439:19;;18421:206::o;18632:184::-;18804:4;18792:17;;;;18774:36;;18762:2;18747:18;;18729:87::o;18821:251::-;18891:2;18885:9;18921:17;;;18968:18;18953:34;;18989:22;;;18950:62;18947:2;;;19015:18;;:::i;:::-;19051:2;19044:22;18865:207;;-1:-1:-1;18865:207:14:o;19077:191::-;;19161:18;19153:6;19150:30;19147:2;;;19183:18;;:::i;:::-;-1:-1:-1;19251:2:14;19228:17;-1:-1:-1;;19224:31:14;19257:4;19220:42;;19137:131::o;19273:128::-;;19344:1;19340:6;19337:1;19334:13;19331:2;;;19350:18;;:::i;:::-;-1:-1:-1;19386:9:14;;19321:80::o;19406:217::-;;19472:1;19462:2;;-1:-1:-1;;;19497:31:14;;19551:4;19548:1;19541:15;19579:4;19504:1;19569:15;19462:2;-1:-1:-1;19608:9:14;;19452:171::o;19628:168::-;;19734:1;19730;19726:6;19722:14;19719:1;19716:21;19711:1;19704:9;19697:17;19693:45;19690:2;;;19741:18;;:::i;:::-;-1:-1:-1;19781:9:14;;19680:116::o;19801:125::-;;19869:1;19866;19863:8;19860:2;;;19874:18;;:::i;:::-;-1:-1:-1;19911:9:14;;19850:76::o;19931:258::-;20003:1;20013:113;20027:6;20024:1;20021:13;20013:113;;;20103:11;;;20097:18;20084:11;;;20077:39;20049:2;20042:10;20013:113;;;20144:6;20141:1;20138:13;20135:2;;;-1:-1:-1;;20179:1:14;20161:16;;20154:27;19984:205::o;20194:380::-;20279:1;20269:12;;20326:1;20316:12;;;20337:2;;20391:4;20383:6;20379:17;20369:27;;20337:2;20444;20436:6;20433:14;20413:18;20410:38;20407:2;;;20490:10;20485:3;20481:20;20478:1;20471:31;20525:4;20522:1;20515:15;20553:4;20550:1;20543:15;20407:2;;20249:325;;;:::o;20579:135::-;;-1:-1:-1;;20639:17:14;;20636:2;;;20659:18;;:::i;:::-;-1:-1:-1;20706:1:14;20695:13;;20626:88::o;20719:127::-;20780:10;20775:3;20771:20;20768:1;20761:31;20811:4;20808:1;20801:15;20835:4;20832:1;20825:15;20851:127;20912:10;20907:3;20903:20;20900:1;20893:31;20943:4;20940:1;20933:15;20967:4;20964:1;20957:15",
|
|
15928
|
-
"source": "// Verified Liquidity token \r\n// (c) Kallol Borah, 2021\r\n\r\n//\"SPDX-License-Identifier: UNLICENSED\"\r\n\r\npragma solidity 0.8.0;\r\n\r\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\r\nimport \"@openzeppelin/contracts/security/Pausable.sol\";\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\r\nimport \"@openzeppelin/contracts/utils/math/SafeMath.sol\";\r\n\r\nimport \"./interfaces/IMarketMaker.sol\";\r\nimport \"./interfaces/ILiquidity.sol\";\r\n\r\ncontract Liquidity is ERC20, Ownable, Pausable {\r\n\r\n using SafeMath for uint256;\r\n\r\n ILiquidity.platform[] private platforms;\r\n mapping(address => uint256) private platformIndex;\r\n\r\n ILiquidity.token[] private tokens;\r\n mapping(address => uint256) private tokenIndex;\r\n \r\n ILiquidity.provider[] private LPs;\r\n\r\n uint256 investmentCap=0;\r\n uint256 timeLimit=0;\r\n \r\n uint256 totalStaked=0;\r\n uint256 totalLiquidity=0;\r\n uint256 totalIssued=0;\r\n\r\n address payable verified;\r\n\r\n struct investment{\r\n uint256 tokenAmount;\r\n address tokenAddress;\r\n }\r\n\r\n struct liquidity{\r\n uint256 issued;\r\n uint256 staked;\r\n }\r\n\r\n struct performance{\r\n uint256 liquidityProvided;\r\n uint256 commissionsEarned;\r\n }\r\n\r\n // mapping investor to invested tokens\r\n mapping(address => mapping(string => investment)) private investors;\r\n // mapping investor to liquidity tokens issued and staked\r\n mapping(address => liquidity) private stakes; \r\n // mapping platform to asset managers on it\r\n mapping(address => address[]) private managers; \r\n // mapping platform to asset manager's position in it\r\n mapping(address => mapping(address => uint256)) private managerIndex;\r\n // mapping platform to address of token distributed by manager to asset manager index to performance of liquidity provided\r\n mapping(address => mapping(address => mapping(uint256 => performance))) private managerRoi;\r\n // mapping platform to performance\r\n mapping(address => performance) private platformRoi;\r\n\r\n //mutex\r\n bool lock;\r\n\r\n event RequestIssue(address investor, string tokenName, uint256 tokenAmount);\r\n \r\n /**\r\n Constructor for the Verified Liquidity token\r\n @param _supply total supply of VITTA\r\n @param _cap investment limit for each investor\r\n @param _limit time limit for issue close\r\n */\r\n constructor(uint256 _supply, uint256 _cap, uint256 _limit) \r\n ERC20(\"Verified\", \"VITTA\"){\r\n _mint(msg.sender, _supply);\r\n verified = payable(msg.sender);\r\n investmentCap = _cap;\r\n timeLimit = _limit;\r\n totalIssued = 0;\r\n lock = false;\r\n }\r\n\r\n /**\r\n Creates supply of the Verified Liquidity token after initial issue with constructor defined parameters\r\n @param _supply total supply of VITTA\r\n @param _cap investment limit for each investor\r\n @param _limit time limit for issue close \r\n */\r\n function createSupply(uint256 _supply, uint256 _cap, uint256 _limit) onlyOwner external {\r\n _mint(msg.sender, _supply);\r\n investmentCap = _cap;\r\n timeLimit = _limit;\r\n }\r\n\r\n /**\r\n Specifies list of supported tokens that can be invested in the Verified Liquidity token\r\n @param _token address of token supported\r\n @param _name name of token supported\r\n */\r\n function supportTokens(address _token, bytes32 _name) onlyOwner external {\r\n if(tokenIndex[_token]==0){\r\n ILiquidity.token memory t = ILiquidity.token ({\r\n tokenName: _name,\r\n tokenAddress: _token\r\n });\r\n tokens.push(t);\r\n tokenIndex[_token] = tokens.length;\r\n }\r\n }\r\n\r\n /**\r\n Checks if a specified token is supported for investing in the Verified Liquidity token\r\n @param _token token that is supported for investment\r\n */\r\n function checkSupportForToken(address _token) external view returns(bool){\r\n if(tokenIndex[_token]>0)\r\n return true;\r\n else\r\n return false;\r\n }\r\n\r\n /**\r\n Returns list of supported tokens\r\n */\r\n function getSupportedTokens() external view returns(ILiquidity.token[] memory){\r\n return tokens;\r\n }\r\n\r\n /**\r\n Registers a liquidity platform (eg, DEX) where Verified Liquidity tokens can be used to underwrite investments\r\n @param _liquidityPlatform address of the market making platform\r\n @param _platformName name of market making platform\r\n */\r\n function registerPlatform(address _liquidityPlatform, bytes32 _platformName) onlyOwner external {\r\n if(platformIndex[_liquidityPlatform]==0){\r\n ILiquidity.platform memory p = ILiquidity.platform({\r\n platformName: _platformName,\r\n platformAddress: _liquidityPlatform\r\n });\r\n platforms.push(p);\r\n platformIndex[_liquidityPlatform] = platforms.length;\r\n }\r\n }\r\n \r\n /**\r\n Gets list of registered platforms\r\n */\r\n function getPlatforms() onlyOwner external view returns(ILiquidity.platform[] memory){\r\n return platforms;\r\n }\r\n\r\n /**\r\n Adds asset manager for managing liquidity\r\n @param _platform address of market making platform (eg, Balancer)\r\n @param _manager address of asset manager\r\n */\r\n function addManager(address _platform, address _manager) onlyOwner external{\r\n if(managerIndex[_platform][_manager]==0){\r\n managers[_platform].push(_manager);\r\n managerIndex[_platform][_manager] = managers[_platform].length;\r\n }\r\n } \r\n\r\n /**\r\n Removes asset manager for managing liquidity on platform\r\n @param _platform address of market making platform\r\n @param _manager address of asset manager\r\n */\r\n function removeManager(address _platform, address _manager) onlyOwner external{\r\n bool found = false;\r\n if(managerIndex[_platform][_manager]!=0){\r\n for(uint i=0; i<managers[_platform].length; i++){\r\n if(managers[_platform][i]==_manager){\r\n if(i==managers[_platform].length-1){\r\n delete managers[_platform][i];\r\n managerIndex[_platform][_manager] = 0;\r\n }\r\n else{\r\n managers[_platform][i]=managers[_platform][i+1];\r\n managerIndex[_platform][managers[_platform][i]] = managerIndex[_platform][managers[_platform][i]] - 1;\r\n }\r\n found = true;\r\n }\r\n else if(found){\r\n if(i==managers[_platform].length-1){\r\n delete managers[_platform][i];\r\n managerIndex[_platform][_manager] = 0;\r\n }\r\n else{\r\n managers[_platform][i]=managers[_platform][i+1];\r\n managerIndex[_platform][managers[_platform][i]] = managerIndex[_platform][managers[_platform][i]] - 1;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n Gets asset managers for managing liquidity\r\n @param _platform address of market making platform\r\n */\r\n function getManagers(address _platform) onlyOwner external view returns(address[] memory){\r\n return managers[_platform];\r\n }\r\n\r\n /**\r\n Receiver of ether invested in the Verified Liquidity token\r\n */\r\n receive() external payable{\r\n if(timeLimit!=0)\r\n require(timeLimit > block.timestamp, \"Subscription window breached\");\r\n //ether paid in\r\n require(msg.value !=0, \"Zero eth sent\");\r\n //contract must not be paused\r\n require(paused() == false, \"Contract in paused state\");\r\n //block reentrants\r\n require(!lock);\r\n lock = true;\r\n //issue liquidity token\r\n emit RequestIssue(msg.sender, \"ether\", msg.value);\r\n if(investors[msg.sender][\"ether\"].tokenAmount==0){\r\n ILiquidity.provider memory lp = ILiquidity.provider({\r\n assetInvested: string(\"ether\"),\r\n investorAddress: msg.sender\r\n });\r\n LPs.push(lp);\r\n }\r\n investors[msg.sender][\"ether\"].tokenAmount = SafeMath.add(investors[msg.sender][\"ether\"].tokenAmount, msg.value);\r\n lock = false;\r\n }\r\n\r\n /**\r\n Used by external apps (eg, exchange, wallet) to buy Verified Liquidity token \r\n @param _token address of token used by investor to buy the VITTA\r\n @param _amount amount of token that is transferred from investor to this VITTA issuing contract's account for the investor\r\n */\r\n function buy(address _token, uint256 _amount) external {\r\n if(timeLimit!=0)\r\n require(timeLimit > block.timestamp, \"Subscription window breached\");\r\n require(paused() == false, \"Contract in paused state\");\r\n bool found = false;\r\n if(tokenIndex[_token]>0)\r\n found = true;\r\n if(found){\r\n require(!lock);\r\n lock = true;\r\n if(IERC20(_token).transferFrom(msg.sender, address(this), _amount)){\r\n emit RequestIssue(msg.sender, ERC20(_token).name(), _amount);\r\n if(investors[msg.sender][ERC20(_token).name()].tokenAmount==0){\r\n ILiquidity.provider memory lp = ILiquidity.provider({\r\n assetInvested: ERC20(_token).name(),\r\n investorAddress: msg.sender\r\n });\r\n LPs.push(lp);\r\n }\r\n investors[msg.sender][ERC20(_token).name()].tokenAmount = SafeMath.add(investors[msg.sender][ERC20(_token).name()].tokenAmount, _amount);\r\n investors[msg.sender][ERC20(_token).name()].tokenAddress = _token;\r\n }\r\n lock = false;\r\n }\r\n }\r\n\r\n /**\r\n Fetches investors in VITTA\r\n */\r\n function getInvestors() onlyOwner external view returns(ILiquidity.provider[] memory){\r\n return LPs;\r\n }\r\n\r\n /**\r\n Fetches investment detail for specific investor in VITTA\r\n @param _investor address of investor\r\n @param _tokenName name of token invested by investor\r\n */\r\n function getInvestment(address _investor, string memory _tokenName) onlyOwner external view returns(uint256){\r\n return (investors[_investor][_tokenName].tokenAmount);\r\n }\r\n\r\n /**\r\n Used by admin to issue VITTA to investors or refund paid in tokens to investors if investment cap is breached\r\n @param _investor address of investor\r\n @param _tokenName name of token invested in VITTA\r\n @param _tokenAmount amount of token invested in VITTA\r\n @param _LPToIssue amount of VITTA to issue to investor\r\n */\r\n function issue(address _investor, string memory _tokenName, uint256 _tokenAmount, uint256 _LPToIssue) onlyOwner external {\r\n require(!lock);\r\n lock = true;\r\n //If investment is outside limits, refund tokens invested back to investor\r\n if((_LPToIssue > investmentCap) || (_LPToIssue > SafeMath.sub(totalSupply(), totalIssued))){\r\n investors[_investor][_tokenName].tokenAmount = SafeMath.sub(investors[_investor][_tokenName].tokenAmount, _tokenAmount);\r\n if(keccak256(abi.encodePacked(_tokenName))!=\"ether\")\r\n IERC20(investors[_investor][_tokenName].tokenAddress).transferFrom(address(this), _investor, _tokenAmount);\r\n else\r\n payable(_investor).transfer(_tokenAmount);\r\n }\r\n //else issue VITTA to investor and transfer managed liquidity to deployer that allocates it to issuer\r\n else{\r\n transferFrom(owner(), _investor, _LPToIssue); \r\n totalIssued = SafeMath.add(totalIssued, _LPToIssue); \r\n stakes[_investor].issued = SafeMath.add(stakes[_investor].issued, _LPToIssue);\r\n totalStaked = SafeMath.add(totalStaked, _LPToIssue); //added for model without staking\r\n stakes[_investor].staked = SafeMath.add(stakes[_investor].staked, _LPToIssue);//added for model without staking\r\n if(keccak256(abi.encodePacked(_tokenName))!=\"ether\")\r\n IERC20(investors[_investor][_tokenName].tokenAddress).transferFrom(address(this), owner(), _tokenAmount);\r\n else\r\n (verified).transfer(_tokenAmount); \r\n }\r\n lock = false;\r\n }\r\n\r\n /**\r\n Used by VITTA holder to stake it for providing liquidity for underwriting investments\r\n @param _toStake amount of VITTA to stake\r\n */\r\n /*function stake(uint256 _toStake) external {\r\n require(paused() == false, \"Contract in paused state\");\r\n require(stakes[msg.sender].issued >= _toStake, \"Staked liquidity more than issued liquidity\");\r\n require(!lock);\r\n lock = true;\r\n if(transferFrom(msg.sender, address(this), _toStake)){\r\n totalStaked = SafeMath.add(totalStaked, _toStake);\r\n stakes[msg.sender].issued = SafeMath.sub(stakes[msg.sender].issued, _toStake);\r\n stakes[msg.sender].staked = SafeMath.add(stakes[msg.sender].staked, _toStake);\r\n }\r\n lock = false;\r\n }*/\r\n\r\n /**\r\n Used by VITTA holder to withdraw staked liquidity for underwriting investments\r\n @param _fromStake amount of VITTA staked\r\n */\r\n /*function withdraw(uint256 _fromStake) external {\r\n require(paused() == false, \"Contract in paused state\");\r\n require(stakes[msg.sender].staked >= _fromStake, \"Withdrawn liquidity more than staked liquidity\");\r\n require(!lock);\r\n lock = true;\r\n if(SafeMath.sub(totalStaked, totalLiquidity) >= _fromStake){\r\n if(transferFrom(address(this), msg.sender, _fromStake)){\r\n totalStaked = SafeMath.sub(totalStaked, _fromStake);\r\n stakes[msg.sender].staked = SafeMath.sub(stakes[msg.sender].staked, _fromStake);\r\n }\r\n }\r\n lock = false;\r\n }*/\r\n\r\n /**\r\n Provides staked VITTA to asset managers based on prior liquidity consumed and commission earned \r\n @param _platform address of platform on which liquidity has to be provided\r\n @param _manager address of asset manager to whom liquidity has to be provided\r\n @param _liquidity amount of VITTA tokens to allot to an asset manager\r\n */\r\n function provideLiquidity(address _platform, address _manager, uint256 _liquidity) onlyOwner external {\r\n require(paused() == false, \"Contract in paused state\");\r\n require(managerIndex[_platform][_manager]!=0, \"Manager does not exist\");\r\n IMarketMaker(_platform).stake(_liquidity, _manager);\r\n _mint(owner(), _liquidity); //added for model without staking\r\n transferFrom(owner(), _platform, _liquidity); //added for model without staking\r\n //transferFrom(address(this), _platform, _liquidity); //removed for model without staking\r\n totalLiquidity = SafeMath.add(totalLiquidity, _liquidity);\r\n platformRoi[_platform].liquidityProvided = SafeMath.add(platformRoi[_platform].liquidityProvided, _liquidity);\r\n uint256 index = managerIndex[_platform][_manager];\r\n managerRoi[_platform][address(this)][index].liquidityProvided = SafeMath.add(managerRoi[_platform][address(this)][index].liquidityProvided, _liquidity);\r\n }\r\n\r\n /**\r\n Pay out of income by Market maker contracts to VITTA Liquidity providers\r\n @param _distribution amount of VITTA to mint and distribute pro rata to liquidity providers\r\n @param _token address of token in which distribution is made by market maker \r\n @param _manager address of asset manager earning the paid out return on investment \r\n */\r\n function distribute(uint256 _distribution, address _token, address _manager) external {\r\n require(platformIndex[msg.sender]>0);\r\n require(tokenIndex[_token]>0);\r\n require(paused() == false, \"Contract in paused state\");\r\n require(!lock);\r\n lock = true;\r\n uint256 index = managerIndex[msg.sender][_manager];\r\n if(totalStaked!=0 && index!=0){\r\n managerRoi[msg.sender][_token][index].commissionsEarned = SafeMath.add(managerRoi[msg.sender][_token][index].commissionsEarned, _distribution);\r\n }\r\n lock = false;\r\n }\r\n\r\n /**\r\n Fetches performance of market platform platform\r\n @param _platform address of market making platform\r\n */\r\n function getPlatformPerformance(address _platform) onlyOwner external view returns(uint256 unstakedLiquidity, \r\n uint256 balancePlatformLiquidity,\r\n uint256 platformLiquidityProvided,\r\n uint256 platformCommissionsEarned){\r\n uint256 unStakedLiquidity = SafeMath.sub(totalStaked, totalLiquidity);\r\n uint256 liquidityBalance = SafeMath.sub(platformRoi[_platform].liquidityProvided, balanceOf(_platform));\r\n return (unStakedLiquidity, liquidityBalance, platformRoi[_platform].liquidityProvided, platformRoi[_platform].commissionsEarned);\r\n }\r\n\r\n /**\r\n Fetches performance of asset managers\r\n @param _platform address of platform\r\n @param _token address of token\r\n @param _manager address of asset manager on platform\r\n */\r\n function getManagerPerformance(address _platform, address _token, address _manager) onlyOwner external view returns(uint256 managerLiquidityProvided,\r\n uint256 managerCommissionsEarned){\r\n uint256 index = managerIndex[_platform][_manager]; \r\n return (managerRoi[_platform][_token][index].liquidityProvided, managerRoi[_platform][_token][index].commissionsEarned);\r\n }\r\n\r\n /**\r\n Pay out income to VITTA Liquidity providers\r\n @param _platform amount of VITTA to mint and distribute pro rata to liquidity providers\r\n @param _distribution amount of VITTA token to pay out \r\n */\r\n function payOut(uint256 _distribution, address _platform) onlyOwner external {\r\n _mint(owner(), _distribution);\r\n platformRoi[_platform].commissionsEarned = SafeMath.add(platformRoi[_platform].commissionsEarned, _distribution);\r\n for(uint i=0; i<LPs.length; i++){\r\n uint256 prorataStake = SafeMath.div(stakes[LPs[i].investorAddress].staked, totalStaked);\r\n transferFrom(owner(), LPs[i].investorAddress, SafeMath.mul(prorataStake, _distribution)); \r\n }\r\n }\r\n\r\n /**\r\n Pauses this contract\r\n */\r\n function pause() onlyOwner public {\r\n _pause();\r\n }\r\n \r\n /**\r\n Unpauses this contract\r\n */\r\n function unpause() onlyOwner public {\r\n _unpause();\r\n }\r\n\r\n}\r\n\r\n",
|
|
15946
|
+
"sourceMap": "499:19085:8:-:0;;;857:1;835:23;;883:1;865:19;;917:1;897:21;;948:1;925:24;;976:1;956:21;;2449:290;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1906:113:2;;;;;;;;;;;-1:-1:-1;;;1906:113:2;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1906:113:2;;;;1972:13;;1906:113;;;1972:13;;:5;;:13;:::i;:::-;-1:-1:-1;1995:17:2;;;;:7;;:17;;;;;:::i;:::-;;1906:113;;867:23:0;877:12;:10;;;:12;;:::i;:::-;867:9;:23::i;:::-;924:7:1;:15;;-1:-1:-1;;;;924:15:1;;;2555:26:8::1;2561:10;2573:7:::0;2555:5:::1;:26::i;:::-;2592:8;:30:::0;;-1:-1:-1;;;;;;2592:30:8::1;2611:10;2592:30;::::0;;2633:13:::1;:20:::0;;;;2664:9:::1;:18:::0;-1:-1:-1;2592:8:8::1;2693:11;:15:::0;2719:4:::1;:12:::0;;-1:-1:-1;;2719:12:8::1;::::0;;499:19085;;587:96:5;666:10;587:96;:::o;2041:169:0:-;2115:6;;;-1:-1:-1;;;;;2131:17:0;;;-1:-1:-1;;;;;;2131:17:0;;;;;;;2163:40;;2115:6;;;2131:17;2115:6;;2163:40;;2096:16;;2163:40;2041:169;;:::o;8254:389:2:-;-1:-1:-1;;;;;8337:21:2;;8329:65;;;;-1:-1:-1;;;8329:65:2;;;;;;;:::i;:::-;;;;;;;;;8405:49;8434:1;8438:7;8447:6;8405:20;:49::i;:::-;8481:6;8465:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8497:18:2;;:9;:18;;;;;;;;;;:28;;8519:6;;8497:9;:28;;8519:6;;8497:28;:::i;:::-;;;;-1:-1:-1;;8540:37:2;;-1:-1:-1;;;;;8540:37:2;;;8557:1;;8540:37;;;;8570:6;;8540:37;:::i;:::-;;;;;;;;8588:48;8616:1;8620:7;8629:6;8588:19;:48::i;:::-;8254:389;;:::o;10916:121::-;;;;:::o;499:19085:8:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;499:19085:8;;;-1:-1:-1;499:19085:8;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:316:14;;;;171:2;159:9;150:7;146:23;142:32;139:2;;;192:6;184;177:22;139:2;226:9;220:16;210:26;;276:2;265:9;261:18;255:25;245:35;;320:2;309:9;305:18;299:25;289:35;;129:201;;;;;:::o;335:355::-;537:2;519:21;;;576:2;556:18;;;549:30;615:33;610:2;595:18;;588:61;681:2;666:18;;509:181::o;695:177::-;841:25;;;829:2;814:18;;796:76::o;877:229::-;;948:1;944:6;941:1;938:13;935:2;;;-1:-1:-1;;;974:33:14;;1030:4;1027:1;1020:15;1060:4;981:3;1048:17;935:2;-1:-1:-1;1091:9:14;;925:181::o;1111:380::-;1196:1;1186:12;;1243:1;1233:12;;;1254:2;;1308:4;1300:6;1296:17;1286:27;;1254:2;1361;1353:6;1350:14;1330:18;1327:38;1324:2;;;1407:10;1402:3;1398:20;1395:1;1388:31;1442:4;1439:1;1432:15;1470:4;1467:1;1460:15;1324:2;;1166:325;;;:::o;:::-;499:19085:8;;;;;;",
|
|
15947
|
+
"deployedSourceMap": "499:19085:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7699:9;;:12;7696:98;;7746:15;7734:9;;:27;7726:68;;;;-1:-1:-1;;;7726:68:8;;;;;;;:::i;:::-;;;;;;;;;7838:9;7830:39;;;;-1:-1:-1;;;7830:39:8;;;;;;;:::i;:::-;7927:8;:6;:8::i;:::-;:17;7919:54;;;;-1:-1:-1;;;7919:54:8;;;;;;;:::i;:::-;8021:4;;;;8020:5;8012:14;;;;;;8037:4;:11;;-1:-1:-1;;8037:11:8;8044:4;8037:11;;;8097:44;;;;;;8110:10;;8131:9;;8097:44;:::i;:::-;;;;;;;;8165:10;8155:21;;;;:9;:21;;;;;;;:30;;;;;:::i;:::-;;;;;;;;;;;;;;:42;8152:266;;8248:131;;;8302:15;;;;;;8248:131;;;8302:15;;;-1:-1:-1;;;8302:15:8;;;;8248:131;;;8353:10;8302:15;8248:131;;;;;;;8394:3;:12;;;;;;;8216:29;8394:12;;;;;;;;8248:131;;8394:12;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;8394:12:8;;;;;;;;;;;;-1:-1:-1;;;;;;8394:12:8;-1:-1:-1;;;;;8394:12:8;;;;;;;;;-1:-1:-1;8152:266:8;8496:10;8486:21;;;;:9;:21;;;;;;;:30;;8473:67;;8486:21;:30;;;:::i;:::-;;;;;;;;;;;;;;:42;8530:9;8473:12;:67::i;:::-;8438:10;8428:21;;;;:9;:21;;;;;;;:30;;;;;:::i;:::-;;;;;;;;;;;;;;:112;8551:4;:12;;-1:-1:-1;;8551:12:8;;;499:19085;;;;;18678:523;;;;;;;;;;-1:-1:-1;18678:523:8;;;;;:::i;:::-;;:::i;:::-;;2084:98:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4181:166;;;;;;;;;;-1:-1:-1;4181:166:2;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3172:106::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;5166:120:8:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;4814:478:2:-;;;;;;;;;;-1:-1:-1;4814:478:2;;;;;:::i;:::-;;:::i;16823:822:8:-;;;;;;;;;;-1:-1:-1;16823:822:8;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;3454:357::-;;;;;;;;;;-1:-1:-1;3454:357:8;;;;;:::i;:::-;;:::i;3021:91:2:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;7431:134:8:-;;;;;;;;;;-1:-1:-1;7431:134:8;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5687:212:2:-;;;;;;;;;;-1:-1:-1;5687:212:2;;;;;:::i;:::-;;:::i;19514:65:8:-;;;;;;;;;;;;;:::i;16091:586::-;;;;;;;;;;-1:-1:-1;16091:586:8;;;;;:::i;:::-;;:::i;17879:546::-;;;;;;;;;;-1:-1:-1;17879:546:8;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;1041:84:1:-;;;;;;;;;;;;;:::i;3997:182:8:-;;;;;;;;;;-1:-1:-1;3997:182:8;;;;;:::i;:::-;;:::i;10479:180::-;;;;;;;;;;-1:-1:-1;10479:180:8;;;;;:::i;:::-;;:::i;3336:125:2:-;;;;;;;;;;-1:-1:-1;3336:125:2;;;;;:::i;:::-;;:::i;1605:92:0:-;;;;;;;;;;;;;:::i;19391:61:8:-;;;;;;;;;;;;;:::i;5495:271::-;;;;;;;;;;-1:-1:-1;5495:271:8;;;;;:::i;:::-;;:::i;973:85:0:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3037:193:8:-;;;;;;;;;;-1:-1:-1;3037:193:8;;;;;:::i;:::-;;:::i;2295:102:2:-;;;;;;;;;;;;;:::i;14690:988:8:-;;;;;;;;;;-1:-1:-1;14690:988:8;;;;;:::i;:::-;;:::i;6386:405:2:-;;;;;;;;;;-1:-1:-1;6386:405:2;;;;;:::i;:::-;;:::i;3664:172::-;;;;;;;;;;-1:-1:-1;3664:172:2;;;;;:::i;:::-;;:::i;10160:114:8:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;8893:1205::-;;;;;;;;;;-1:-1:-1;8893:1205:8;;;;;:::i;:::-;;:::i;4247:110::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3894:149:2:-;;;;;;;;;;-1:-1:-1;3894:149:2;;;;;:::i;:::-;;:::i;19209:126:8:-;;;;;;;;;;-1:-1:-1;19209:126:8;;;;;:::i;:::-;;:::i;11059:1644::-;;;;;;;;;;-1:-1:-1;11059:1644:8;;;;;:::i;:::-;;:::i;1846:189:0:-;;;;;;;;;;-1:-1:-1;1846:189:0;;;;;:::i;:::-;;:::i;4646:447:8:-;;;;;;;;;;-1:-1:-1;4646:447:8;;;;;:::i;:::-;;:::i;5976:1314::-;;;;;;;;;;-1:-1:-1;5976:1314:8;;;;;:::i;:::-;;:::i;1041:84:1:-;1111:7;;-1:-1:-1;;;1111:7:1;;;;;1041:84::o;2672:96:6:-;2730:7;2756:5;2760:1;2756;:5;:::i;:::-;2749:12;2672:96;-1:-1:-1;;;2672:96:6:o;18678:523:8:-;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;18766:29:8::1;18772:7;:5;:7::i;:::-;18781:13;18766:5;:29::i;:::-;-1:-1:-1::0;;;;;18862:22:8;::::1;;::::0;;;:11:::1;:22;::::0;;;;:40:::1;;::::0;18849:69:::1;::::0;18904:13;18849:12:::1;:69::i;:::-;-1:-1:-1::0;;;;;18806:22:8;::::1;;::::0;;;:11:::1;:22;::::0;;;;:40:::1;;:112:::0;;;;18929:265:::1;18945:3;:10:::0;18943:12;::::1;18929:265;;;18976:20;18999:64;19012:6;:30;19019:3;19023:1;19019:6;;;;;;-1:-1:-1::0;;;19019:6:8::1;;;;;;;;;;::::0;;;::::1;::::0;;;:22:::1;:6;::::0;;::::1;;:22:::0;::::1;::::0;-1:-1:-1;;;;;19019:22:8::1;19012:30:::0;;;::::1;::::0;;;;;;;;;;:37:::1;::::0;19051:11:::1;::::0;18999:12:::1;:64::i;:::-;18976:87;;19078:88;19091:7;:5;:7::i;:::-;19100:3;19104:1;19100:6;;;;;;-1:-1:-1::0;;;19100:6:8::1;;;;;;;;;;::::0;;;::::1;::::0;;;:22:::1;:6;::::0;;::::1;;:22;::::0;-1:-1:-1;;;;;19100:22:8::1;19124:41;19137:12:::0;19151:13;19124:12:::1;:41::i;19078:88::-;;18929:265;18957:3;;;;;:::i;:::-;;;;18929:265;;;;18678:523:::0;;:::o;2084:98:2:-;2138:13;2170:5;2163:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2084:98;:::o;4181:166::-;4264:4;4280:39;4289:12;:10;:12::i;:::-;4303:7;4312:6;4280:8;:39::i;:::-;-1:-1:-1;4336:4:2;4181:166;;;;:::o;3172:106::-;3259:12;;3172:106;:::o;5166:120:8:-;5222:28;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;5269:9:8::1;5262:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;::::1;::::0;-1:-1:-1;;;;;5262:16:8::1;::::0;;::::1;::::0;;;;;;::::1;::::0;::::1;;;;;;;;;;5166:120:::0;:::o;4814:478:2:-;4950:4;4966:36;4976:6;4984:9;4995:6;4966:9;:36::i;:::-;-1:-1:-1;;;;;5040:19:2;;5013:24;5040:19;;;:11;:19;;;;;5013:24;5060:12;:10;:12::i;:::-;-1:-1:-1;;;;;5040:33:2;-1:-1:-1;;;;;5040:33:2;;;;;;;;;;;;;5013:60;;5111:6;5091:16;:26;;5083:79;;;;-1:-1:-1;;;5083:79:2;;;;;;;:::i;:::-;5196:57;5205:6;5213:12;:10;:12::i;:::-;5246:6;5227:16;:25;5196:8;:57::i;:::-;-1:-1:-1;5281:4:2;;4814:478;-1:-1:-1;;;;4814:478:2:o;16823:822:8:-;16906:25;17023:32;17146:33;17270;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;17315:25:8::1;17343:41;17356:11;;17369:14;;17343:12;:41::i;:::-;-1:-1:-1::0;;;;;17435:22:8;::::1;17395:24;17435:22:::0;;;:11:::1;:22;::::0;;;;:40;17315:69;;-1:-1:-1;17395:24:8;17422:76:::1;::::0;17477:20:::1;17447:9:::0;17477::::1;:20::i;:::-;17422:12;:76::i;:::-;-1:-1:-1::0;;;;;17554:22:8;;;::::1;;::::0;;;:11:::1;:22;::::0;;;;:40;;17596::::1;::::0;;::::1;::::0;17517:17;;17554:40;;-1:-1:-1;17596:40:8;;-1:-1:-1;16823:822:8;;-1:-1:-1;;;16823:822:8:o;3454:357::-;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3541:18:8;::::1;;::::0;;;:10:::1;:18;::::0;;;;;3538:266:::1;;3606:108;::::0;;;;::::1;::::0;;;;;-1:-1:-1;;;;;3606:108:8;;::::1;;::::0;;::::1;::::0;;;3729:6:::1;:14:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;3729:14:8;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;;-1:-1:-1;;;;;;3729:14:8::1;::::0;;;::::1;::::0;;;::::1;::::0;;;3779:13;;3758:18;;;:10:::1;:18:::0;;;;;;:34;3538:266:::1;3454:357:::0;;:::o;3021:91:2:-;3103:2;3021:91;:::o;7431:134:8:-;7503:16;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7538:19:8;::::1;;::::0;;;:8:::1;:19;::::0;;;;;;;;7531:26;;;;;;::::1;::::0;;;;;;;;;;7538:19;;7531:26;::::1;7538:19:::0;7531:26;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;7531:26:8::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;;;;;;;;1255:1:0;7431:134:8::0;;;:::o;5687:212:2:-;5775:4;5791:80;5800:12;:10;:12::i;:::-;5814:7;5860:10;5823:11;:25;5835:12;:10;:12::i;:::-;-1:-1:-1;;;;;5823:25:2;;;;;;;;;;;;;;;;;-1:-1:-1;5823:25:2;;;:34;;;;;;;;;;:47;;;;:::i;:::-;5791:8;:80::i;19514:65:8:-;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;19561:10:8::1;:8;:10::i;:::-;19514:65::o:0;16091:586::-;16210:10;16222:1;16196:25;;;:13;:25;;;;;;16188:36;;;;;;-1:-1:-1;;;;;16243:18:8;;16262:1;16243:18;;;:10;:18;;;;;;16235:29;;;;;;16283:8;:6;:8::i;:::-;:17;16275:54;;;;-1:-1:-1;;;16275:54:8;;;;;;;:::i;:::-;16349:4;;;;16348:5;16340:14;;;;;;16365:4;:11;;-1:-1:-1;;16365:11:8;16372:4;16365:11;;;16416:10;16365:4;16403:24;;;:12;:24;;;;;;;;-1:-1:-1;;;;;16403:34:8;;;;;;;;;;16451:11;;:14;;;;:26;;-1:-1:-1;16469:8:8;;;16451:26;16448:199;;;16575:10;16564:22;;;;:10;:22;;;;;;;;-1:-1:-1;;;;;16564:30:8;;;;;;;;;:37;;;;;;;;:55;;;16551:84;;16621:13;16551:12;:84::i;:::-;16504:10;16493:22;;;;:10;:22;;;;;;;;-1:-1:-1;;;;;16493:30:8;;;;;;;;;:37;;;;;;;;:55;;:142;16448:199;-1:-1:-1;;16657:4:8;:12;;-1:-1:-1;;16657:12:8;;;-1:-1:-1;;16091:586:8:o;17879:546::-;17995:32;18114;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;18174:23:8;;::::1;18158:13;18174:23:::0;;;:12:::1;:23;::::0;;;;;;;:33;;::::1;::::0;;;;;;;;;18306:21;;;:10:::1;:21:::0;;;;;:29;;;::::1;::::0;;;;;;;;:36;;;;;;;:54;;18362::::1;::::0;;::::1;::::0;18306;;17879:546::o;3997:182::-;-1:-1:-1;;;;;4084:18:8;;4065:4;4084:18;;;:10;:18;;;;;;:20;4081:90;;-1:-1:-1;4126:4:8;4119:11;;4081:90;-1:-1:-1;4166:5:8;4159:12;;10479:180;10579:7;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10606:20:8;::::1;;::::0;;;:9:::1;:20;::::0;;;;;;:32;;::::1;::::0;10627:10;;10606:32:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;:44;;-1:-1:-1;10479:180:8;;;;:::o;3336:125:2:-;-1:-1:-1;;;;;3436:18:2;3410:7;3436:18;;;;;;;;;;;;3336:125::o;1605:92:0:-;1196:12;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;1669:21:::1;1687:1;1669:9;:21::i;19391:61:8:-:0;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;19436:8:8::1;:6;:8::i;5495:271::-:0;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5584:23:8;;::::1;;::::0;;;:12:::1;:23;::::0;;;;;;;:33;;::::1;::::0;;;;;;;5581:178:::1;;-1:-1:-1::0;;;;;5636:19:8;;::::1;;::::0;;;:8:::1;:19;::::0;;;;;;;:34;;::::1;::::0;::::1;::::0;;;;;;;;::::1;::::0;;;;::::1;-1:-1:-1::0;;;;;;5636:34:8;;::::1;::::0;::::1;::::0;;5721:19;;;:26;;5685:12:::1;:23:::0;;;;;:33;;;;;;;:62;5495:271;;:::o;973:85:0:-;1045:6;;-1:-1:-1;;;;;1045:6:0;973:85;:::o;3037:193:8:-;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;3136:26:8::1;3142:10;3154:7;3136:5;:26::i;:::-;3173:13;:20:::0;;;;3204:9:::1;:18:::0;-1:-1:-1;3037:193:8:o;2295:102:2:-;2351:13;2383:7;2376:14;;;;;:::i;14690:988:8:-;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;14811:8:8::1;:6;:8::i;:::-;:17;14803:54;;;;-1:-1:-1::0;;;14803:54:8::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14876:23:8;;::::1;;::::0;;;:12:::1;:23;::::0;;;;;;;:33;;::::1;::::0;;;;;;;14868:71:::1;;;;-1:-1:-1::0;;;14868:71:8::1;;;;;;;:::i;:::-;14950:51;::::0;-1:-1:-1;;;14950:51:8;;-1:-1:-1;;;;;14950:29:8;::::1;::::0;::::1;::::0;:51:::1;::::0;14980:10;;14992:8;;14950:51:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15012:26;15018:7;:5;:7::i;:::-;15027:10;15012:5;:26::i;:::-;15083:44;15096:7;:5;:7::i;:::-;15105:9;15116:10;15083:12;:44::i;:::-;;15288:40;15301:14;;15317:10;15288:12;:40::i;:::-;15271:14;:57:::0;-1:-1:-1;;;;;15395:22:8;::::1;;::::0;;;:11:::1;:22;::::0;;;;:40;15382:66:::1;::::0;15437:10;15382:12:::1;:66::i;:::-;-1:-1:-1::0;;;;;15339:22:8;;::::1;;::::0;;;:11:::1;:22;::::0;;;;;;;:109;;;;15475:12:::1;:23:::0;;;;;:33;;::::1;::::0;;;;;;;;;15596:21;;;:10:::1;:21:::0;;;;;15626:4:::1;15596:36:::0;;;;;;;:43;;;;;;;;;:61;15583:87:::1;::::0;15659:10;15583:12:::1;:87::i;:::-;-1:-1:-1::0;;;;;15519:21:8;;::::1;;::::0;;;:10:::1;:21;::::0;;;;;;;15549:4:::1;15519:36:::0;;;;;;;:43;;;;;;;:151;;;;-1:-1:-1;;14690:988:8:o;6386:405:2:-;6479:4;6495:24;6522:11;:25;6534:12;:10;:12::i;:::-;-1:-1:-1;;;;;6522:25:2;;;;;;;;;;;;;;;;;-1:-1:-1;6522:25:2;;;:34;;;;;;;;;;;-1:-1:-1;6574:35:2;;;;6566:85;;;;-1:-1:-1;;;6566:85:2;;;;;;;:::i;:::-;6685:67;6694:12;:10;:12::i;:::-;6708:7;6736:15;6717:16;:34;6685:8;:67::i;:::-;-1:-1:-1;6780:4:2;;6386:405;-1:-1:-1;;;6386:405:2:o;3664:172::-;3750:4;3766:42;3776:12;:10;:12::i;:::-;3790:9;3801:6;3766:9;:42::i;10160:114:8:-;10216:28;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;10263:3:8::1;10256:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;10256:10:8;;;-1:-1:-1;;10256:10:8::1;::::0;;::::1;::::0;-1:-1:-1;;;;;10256:10:8::1;;::::0;;::::1;::::0;;;;;;;::::1;::::0;::::1;;;8893:1205:::0;8962:9;;:12;8959:98;;9009:15;8997:9;;:27;8989:68;;;;-1:-1:-1;;;8989:68:8;;;;;;;:::i;:::-;9076:8;:6;:8::i;:::-;:17;9068:54;;;;-1:-1:-1;;;9068:54:8;;;;;;;:::i;:::-;-1:-1:-1;;;;;9165:18:8;;9133:10;9165:18;;;:10;:18;;;;;;:20;9162:50;;-1:-1:-1;9208:4:8;9162:50;9226:5;9223:868;;;9256:4;;;;9255:5;9247:14;;;;;;9276:4;:11;;-1:-1:-1;;9276:11:8;9283:4;9276:11;;;9305:63;;-1:-1:-1;;;9305:63:8;;-1:-1:-1;;;;;9305:27:8;;;;;:63;;9333:10;;9353:4;;9360:7;;9305:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9302:751;;;9393:55;9406:10;9424:6;-1:-1:-1;;;;;9418:18:8;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9418:20:8;;;;;;;;;;;;:::i;:::-;9440:7;9393:55;;;;;;;;:::i;:::-;;;;;;;;9480:10;9470:21;;;;:9;:21;;;;;;9492:20;;-1:-1:-1;;;9492:20:8;;;;9470:21;;-1:-1:-1;;;;;9492:18:8;;;;;:20;;;;;9470:21;9492:20;;;;;:18;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9492:20:8;;;;;;;;;;;;:::i;:::-;9470:43;;;;;;:::i;:::-;;;;;;;;;;;;;;:55;9467:332;;9552:29;9584:160;;;;;;;;9652:6;-1:-1:-1;;;;;9646:18:8;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9646:20:8;;;;;;;;;;;;:::i;:::-;9584:160;;9710:10;9584:160;;;;;9767:3;:12;;;;;;;-1:-1:-1;9767:12:8;;;;;;;;9552:192;;-1:-1:-1;9552:192:8;;9767:12;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;9767:12:8;;;;;;;;;;;;-1:-1:-1;;;;;;9767:12:8;-1:-1:-1;;;;;9767:12:8;;;;;;;;;-1:-1:-1;9467:332:8;9898:10;9888:21;;;;:9;:21;;;;;;9910:20;;-1:-1:-1;;;9910:20:8;;;;9875:78;;9888:21;;-1:-1:-1;;;;;9910:18:8;;;;;:20;;;;;;;;;;:18;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9910:20:8;;;;;;;;;;;;:::i;:::-;9888:43;;;;;;:::i;:::-;;;;;;;;;;;;;;:55;9945:7;9875:12;:78::i;:::-;9827:10;9817:21;;;;:9;:21;;;;;;9839:20;;-1:-1:-1;;;9839:20:8;;;;9817:21;;-1:-1:-1;;;;;9839:18:8;;;;;:20;;;;;9817:21;9839:20;;;;;:18;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9839:20:8;;;;;;;;;;;;:::i;:::-;9817:43;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:136;;;;9982:10;9817:55;9972:21;;;:9;:21;;;;;;-1:-1:-1;;;9994:20:8;;;;10031:6;;9972:21;;-1:-1:-1;;;;;9994:18:8;;;;;:20;;;;;;;;;;:18;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9994:20:8;;;;;;;;;;;;:::i;:::-;9972:43;;;;;;:::i;:::-;;;;;;;;;;;;;;:56;;:65;;-1:-1:-1;;;;;9972:65:8;;;;-1:-1:-1;;;;;;9972:65:8;;;;;;;;;9302:751;10067:4;:12;;-1:-1:-1;;10067:12:8;;;8893:1205;;;:::o;4247:110::-;4299:25;4343:6;4336:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4336:13:8;;;;;;;;;;;;;;;3894:149:2;-1:-1:-1;;;;;4009:18:2;;;3983:7;4009:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3894:149::o;19209:126:8:-;19266:23;19308:19;19318:8;19308:9;:19::i;:::-;19301:26;19209:126;-1:-1:-1;;19209:126:8:o;11059:1644::-;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;11200:4:8::1;::::0;::::1;;11199:5;11191:14;;;::::0;::::1;;11216:4;:11:::0;;-1:-1:-1;;11216:11:8::1;11223:4;11216:11;::::0;;11339:13:::1;::::0;11326:26;::::1;::::0;11325:87:::1;;;11371:40;11384:13;:11;:13::i;:::-;11399:11;;11371:12;:40::i;:::-;11358:10;:53;11325:87;11322:1351;;;-1:-1:-1::0;;;;;11488:20:8;::::1;;::::0;;;:9:::1;:20;::::0;;;;;;:32;;11475:72:::1;::::0;11488:20;:32:::1;::::0;11509:10;;11488:32:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;:44;11534:12;11475::::1;:72::i;:::-;-1:-1:-1::0;;;;;11428:20:8;::::1;;::::0;;;:9:::1;:20;::::0;;;;;;:32;;::::1;::::0;11449:10;;11428:32:::1;:::i;:::-;::::0;;;::::1;::::0;::::1;::::0;;;;;;;;:119;;;;11575:28:::1;::::0;11592:10;;11575:28:::1;;:::i;:::-;;;;;;;;;;;;;11565:39;;;;;;-1:-1:-1::0;;;11565:48:8::1;11562:254;;-1:-1:-1::0;;;;;11639:20:8;::::1;;::::0;;;:9:::1;:20;::::0;;;;;;:32;;::::1;::::0;11660:10;;11639:32:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;:45:::1;;::::0;-1:-1:-1;;;11632:106:8;;-1:-1:-1;;;;;11639:45:8::1;::::0;11632:66:::1;::::0;:106:::1;::::0;11707:4:::1;::::0;11714:9;;11725:12;;11632:106:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11562:254;;;11775:41;::::0;-1:-1:-1;;;;;11775:27:8;::::1;::::0;:41;::::1;;;::::0;11803:12;;11775:41:::1;::::0;;;11803:12;11775:27;:41;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;11562:254;11322:1351;;;11968:44;11981:7;:5;:7::i;:::-;11990:9;12001:10;11968:12;:44::i;:::-;;12043:37;12056:11;;12069:10;12043:12;:37::i;:::-;12029:11;:51:::0;-1:-1:-1;;;;;12139:17:8;::::1;;::::0;;;:6:::1;:17;::::0;;;;:24;12126:50:::1;::::0;12165:10;12126:12:::1;:50::i;:::-;-1:-1:-1::0;;;;;12099:17:8;::::1;;::::0;;;:6:::1;:17;::::0;;;;:77;12218:11:::1;::::0;12205:37:::1;::::0;12231:10;12205:12:::1;:37::i;:::-;12191:11;:51:::0;-1:-1:-1;;;;;12331:17:8;::::1;;::::0;;;:6:::1;:17;::::0;;;;:24:::1;;::::0;12318:50:::1;::::0;12357:10;12318:12:::1;:50::i;:::-;-1:-1:-1::0;;;;;12291:17:8;::::1;;::::0;;;:6:::1;:17;::::0;;;;;;;;:24:::1;;:77:::0;;;;12429:28;::::1;::::0;12446:10;;12429:28:::1;;:::i;:::-;;;;;;;;;;;;;12419:39;;;;;;-1:-1:-1::0;;;12419:48:8::1;12416:244;;-1:-1:-1::0;;;;;12493:20:8;::::1;;::::0;;;:9:::1;:20;::::0;;;;;;:32;;::::1;::::0;12514:10;;12493:32:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;:45:::1;;::::0;-1:-1:-1;;;;;12493:45:8::1;12486:66;12561:4;12568:7;:5;:7::i;:::-;12577:12;12486:104;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12416:244::-;12628:8;::::0;12627:33:::1;::::0;-1:-1:-1;;;;;12628:8:8;;::::1;::::0;12627:33;::::1;;;::::0;12647:12;;12628:8:::1;12627:33:::0;12628:8;12627:33;12647:12;12628:8;12627:33;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;-1:-1:-1::0;;12683:4:8::1;:12:::0;;-1:-1:-1;;12683:12:8::1;::::0;;-1:-1:-1;;11059:1644:8:o;1846:189:0:-;1196:12;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1934:22:0;::::1;1926:73;;;;-1:-1:-1::0;;;1926:73:0::1;;;;;;;:::i;:::-;2009:19;2019:8;2009:9;:19::i;:::-;1846:189:::0;:::o;4646:447:8:-;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4756:33:8;::::1;;::::0;;;:13:::1;:33;::::0;;;;;4753:333:::1;;4839:136;::::0;;;;::::1;::::0;;;;;-1:-1:-1;;;;;4839:136:8;;::::1;;::::0;;::::1;::::0;;;4990:9:::1;:17:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;4990:17:8;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;;-1:-1:-1;;;;;;4990:17:8::1;::::0;;;::::1;::::0;;;::::1;::::0;;;5058:16;;5022:33;;;:13:::1;:33:::0;;;;;:52;4646:447::o;5976:1314::-;1196:12:0;:10;:12::i;:::-;-1:-1:-1;;;;;1185:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1185:23:0;;1177:68;;;;-1:-1:-1;;;1177:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6097:23:8;;::::1;6065:10;6097:23:::0;;;:12:::1;:23;::::0;;;;;;;:33;;::::1;::::0;;;;;;;;;:36;6094:1189:::1;;6153:6;6149:1123;-1:-1:-1::0;;;;;6165:19:8;::::1;;::::0;;;:8:::1;:19;::::0;;;;:26;6163:28;::::1;6149:1123;;;-1:-1:-1::0;;;;;6219:19:8;;::::1;;::::0;;;:8:::1;:19;::::0;;;;:22;;:32;;::::1;::::0;6239:1;;6219:22;::::1;;;-1:-1:-1::0;;;6219:22:8::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;6219:22:8::1;:32;6216:1041;;;-1:-1:-1::0;;;;;6281:19:8;::::1;;::::0;;;:8:::1;:19;::::0;;;;:26;:28:::1;::::0;6308:1:::1;::::0;6281:28:::1;:::i;:::-;6278:1;:31;6275:427;;;-1:-1:-1::0;;;;;6343:19:8;::::1;;::::0;;;:8:::1;:19;::::0;;;;:22;;6363:1;;6343:22;::::1;;;-1:-1:-1::0;;;6343:22:8::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;::::1;6336:29:::0;;-1:-1:-1;;;;;;6336:29:8::1;::::0;;-1:-1:-1;;;;;6391:23:8;;::::1;::::0;;:12:::1;:23:::0;;;;;;:33;;::::1;::::0;;;;;;:37;6275:427:::1;;;-1:-1:-1::0;;;;;6527:19:8;::::1;;::::0;;;:8:::1;:19;::::0;;;;6547:3:::1;:1:::0;6549::::1;6547:3;:::i;:::-;6527:24;;;;;;-1:-1:-1::0;;;6527:24:8::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;6504:19:8;;::::1;::::0;;:8:::1;:19:::0;;;;;;;:22;;6527:24;;;::::1;::::0;6504:19;6524:1;;6504:22;::::1;;;-1:-1:-1::0;;;6504:22:8::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;;::::1;:47:::0;;-1:-1:-1;;;;;;6504:47:8::1;-1:-1:-1::0;;;;;6504:47:8;;::::1;;::::0;;6627:23;;::::1;::::0;;:12:::1;:23:::0;;;;;;6651:8:::1;:19:::0;;;;;:22;;-1:-1:-1;;6627:23:8;6504:22;6651:19;6671:1;;6651:22;::::1;;;-1:-1:-1::0;;;6651:22:8::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;6651:22:8::1;6627:47:::0;;;::::1;::::0;;;;;;;;;:51:::1;::::0;;::::1;:::i;:::-;-1:-1:-1::0;;;;;6577:23:8;::::1;;::::0;;;:12:::1;:23;::::0;;;;;;;6601:8:::1;:19:::0;;;;;:22;;6577:23;;;6621:1;;6601:22;::::1;;;-1:-1:-1::0;;;6601:22:8::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;6601:22:8::1;6577:47:::0;;;::::1;::::0;;;;;;;;:101;6275:427:::1;6732:4;6724:12;;6216:1041;;;6782:5;6779:478;;;-1:-1:-1::0;;;;;6817:19:8;::::1;;::::0;;;:8:::1;:19;::::0;;;;:26;:28:::1;::::0;6844:1:::1;::::0;6817:28:::1;:::i;:::-;6814:1;:31;6811:427;;;-1:-1:-1::0;;;;;6879:19:8;::::1;;::::0;;;:8:::1;:19;::::0;;;;:22;;6899:1;;6879:22;::::1;;;-1:-1:-1::0;;;6879:22:8::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;::::1;6872:29:::0;;-1:-1:-1;;;;;;6872:29:8::1;::::0;;-1:-1:-1;;;;;6927:23:8;;::::1;::::0;;:12:::1;:23:::0;;;;;;:33;;::::1;::::0;;;;;;:37;6811:427:::1;;;-1:-1:-1::0;;;;;7063:19:8;::::1;;::::0;;;:8:::1;:19;::::0;;;;7083:3:::1;:1:::0;7085::::1;7083:3;:::i;:::-;7063:24;;;;;;-1:-1:-1::0;;;7063:24:8::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;7040:19:8;;::::1;::::0;;:8:::1;:19:::0;;;;;;;:22;;7063:24;;;::::1;::::0;7040:19;7060:1;;7040:22;::::1;;;-1:-1:-1::0;;;7040:22:8::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;;::::1;:47:::0;;-1:-1:-1;;;;;;7040:47:8::1;-1:-1:-1::0;;;;;7040:47:8;;::::1;;::::0;;7163:23;;::::1;::::0;;:12:::1;:23:::0;;;;;;7187:8:::1;:19:::0;;;;;:22;;-1:-1:-1;;7163:23:8;7040:22;7187:19;7207:1;;7187:22;::::1;;;-1:-1:-1::0;;;7187:22:8::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;7187:22:8::1;7163:47:::0;;;::::1;::::0;;;;;;;;;:51:::1;::::0;;::::1;:::i;:::-;-1:-1:-1::0;;;;;7113:23:8;::::1;;::::0;;;:12:::1;:23;::::0;;;;;;;7137:8:::1;:19:::0;;;;;:22;;7113:23;;;7157:1;;7137:22;::::1;;;-1:-1:-1::0;;;7137:22:8::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;7137:22:8::1;7113:47:::0;;;::::1;::::0;;;;;;;;:101;6811:427:::1;6193:3:::0;::::1;::::0;::::1;:::i;:::-;;;;6149:1123;;;;1255:1:0;5976:1314:8::0;;:::o;587:96:5:-;666:10;587:96;:::o;8254:389:2:-;-1:-1:-1;;;;;8337:21:2;;8329:65;;;;-1:-1:-1;;;8329:65:2;;;;;;;:::i;:::-;8405:49;8434:1;8438:7;8447:6;8405:20;:49::i;:::-;8481:6;8465:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8497:18:2;;:9;:18;;;;;;;;;;:28;;8519:6;;8497:9;:28;;8519:6;;8497:28;:::i;:::-;;;;-1:-1:-1;;8540:37:2;;-1:-1:-1;;;;;8540:37:2;;;8557:1;;8540:37;;;;8570:6;;8540:37;:::i;:::-;;;;;;;;8588:48;8616:1;8620:7;8629:6;8588:19;:48::i;3767:96:6:-;3825:7;3851:5;3855:1;3851;:5;:::i;3382:96::-;3440:7;3466:5;3470:1;3466;:5;:::i;9962:370:2:-;-1:-1:-1;;;;;10093:19:2;;10085:68;;;;-1:-1:-1;;;10085:68:2;;;;;;;:::i;:::-;-1:-1:-1;;;;;10171:21:2;;10163:68;;;;-1:-1:-1;;;10163:68:2;;;;;;;:::i;:::-;-1:-1:-1;;;;;10242:18:2;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;10293:32;;;;;10272:6;;10293:32;:::i;:::-;;;;;;;;9962:370;;;:::o;7265:713::-;-1:-1:-1;;;;;7400:20:2;;7392:70;;;;-1:-1:-1;;;7392:70:2;;;;;;;:::i;:::-;-1:-1:-1;;;;;7480:23:2;;7472:71;;;;-1:-1:-1;;;7472:71:2;;;;;;;:::i;:::-;7554:47;7575:6;7583:9;7594:6;7554:20;:47::i;:::-;-1:-1:-1;;;;;7636:17:2;;7612:21;7636:17;;;;;;;;;;;7671:23;;;;7663:74;;;;-1:-1:-1;;;7663:74:2;;;;;;;:::i;:::-;-1:-1:-1;;;;;7771:17:2;;;:9;:17;;;;;;;;;;;7791:22;;;7771:42;;7833:20;;;;;;;;:30;;7807:6;;7771:9;7833:30;;7807:6;;7833:30;:::i;:::-;;;;;;;;7896:9;-1:-1:-1;;;;;7879:35:2;7888:6;-1:-1:-1;;;;;7879:35:2;;7907:6;7879:35;;;;;;:::i;:::-;;;;;;;;7925:46;7945:6;7953:9;7964:6;7925:19;:46::i;3039:96:6:-;3097:7;3123:5;3127:1;3123;:5;:::i;2053:117:1:-;1620:8;:6;:8::i;:::-;1612:41;;;;-1:-1:-1;;;1612:41:1;;;;;;;:::i;:::-;2111:7:::1;:15:::0;;-1:-1:-1;;;;2111:15:1::1;::::0;;2141:22:::1;2150:12;:10;:12::i;:::-;2141:22;;;;;;:::i;:::-;;;;;;;;2053:117::o:0;2041:169:0:-;2115:6;;;-1:-1:-1;;;;;2131:17:0;;;-1:-1:-1;;;;;;2131:17:0;;;;;;;2163:40;;2115:6;;;2131:17;2115:6;;2163:40;;2096:16;;2163:40;2041:169;;:::o;1806:115:1:-;1355:8;:6;:8::i;:::-;1354:9;1346:38;;;;-1:-1:-1;;;1346:38:1;;;;;;;:::i;:::-;1865:7:::1;:14:::0;;-1:-1:-1;;;;1865:14:1::1;-1:-1:-1::0;;;1865:14:1::1;::::0;;1894:20:::1;1901:12;:10;:12::i;-1:-1:-1:-:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:175:14;84:20;;-1:-1:-1;;;;;133:31:14;;123:42;;113:2;;179:1;176;169:12;194:487;;292:3;285:4;277:6;273:17;269:27;259:2;;314:5;307;300:20;259:2;354:6;341:20;385:50;400:34;431:2;400:34;:::i;:::-;385:50;:::i;:::-;460:2;451:7;444:19;506:3;499:4;494:2;486:6;482:15;478:26;475:35;472:2;;;527:5;520;513:20;472:2;596;589:4;581:6;577:17;570:4;561:7;557:18;544:55;619:16;;;637:4;615:27;608:42;;;;623:7;249:432;-1:-1:-1;;249:432:14:o;686:198::-;;798:2;786:9;777:7;773:23;769:32;766:2;;;819:6;811;804:22;766:2;847:31;868:9;847:31;:::i;889:274::-;;;1018:2;1006:9;997:7;993:23;989:32;986:2;;;1039:6;1031;1024:22;986:2;1067:31;1088:9;1067:31;:::i;:::-;1057:41;;1117:40;1153:2;1142:9;1138:18;1117:40;:::i;:::-;1107:50;;976:187;;;;;:::o;1168:350::-;;;;1314:2;1302:9;1293:7;1289:23;1285:32;1282:2;;;1335:6;1327;1320:22;1282:2;1363:31;1384:9;1363:31;:::i;:::-;1353:41;;1413:40;1449:2;1438:9;1434:18;1413:40;:::i;:::-;1403:50;;1472:40;1508:2;1497:9;1493:18;1472:40;:::i;:::-;1462:50;;1272:246;;;;;:::o;1523:342::-;;;;1669:2;1657:9;1648:7;1644:23;1640:32;1637:2;;;1690:6;1682;1675:22;1637:2;1718:31;1739:9;1718:31;:::i;:::-;1708:41;;1768:40;1804:2;1793:9;1789:18;1768:40;:::i;:::-;1758:50;;1855:2;1844:9;1840:18;1827:32;1817:42;;1627:238;;;;;:::o;1870:266::-;;;1999:2;1987:9;1978:7;1974:23;1970:32;1967:2;;;2020:6;2012;2005:22;1967:2;2048:31;2069:9;2048:31;:::i;:::-;2038:41;2126:2;2111:18;;;;2098:32;;-1:-1:-1;;;1957:179:14:o;2141:420::-;;;2280:2;2268:9;2259:7;2255:23;2251:32;2248:2;;;2301:6;2293;2286:22;2248:2;2329:31;2350:9;2329:31;:::i;:::-;2319:41;;2411:2;2400:9;2396:18;2383:32;2438:18;2430:6;2427:30;2424:2;;;2475:6;2467;2460:22;2424:2;2503:52;2547:7;2538:6;2527:9;2523:22;2503:52;:::i;:::-;2493:62;;;2238:323;;;;;:::o;2566:557::-;;;;;2739:3;2727:9;2718:7;2714:23;2710:33;2707:2;;;2761:6;2753;2746:22;2707:2;2789:31;2810:9;2789:31;:::i;:::-;2779:41;;2871:2;2860:9;2856:18;2843:32;2898:18;2890:6;2887:30;2884:2;;;2935:6;2927;2920:22;2884:2;2963:52;3007:7;2998:6;2987:9;2983:22;2963:52;:::i;:::-;2697:426;;2953:62;;-1:-1:-1;;;;3062:2:14;3047:18;;3034:32;;3113:2;3098:18;3085:32;;2697:426;-1:-1:-1;2697:426:14:o;3399:297::-;;3519:2;3507:9;3498:7;3494:23;3490:32;3487:2;;;3540:6;3532;3525:22;3487:2;3577:9;3571:16;3630:5;3623:13;3616:21;3609:5;3606:32;3596:2;;3657:6;3649;3642:22;3701:677;;3834:2;3822:9;3813:7;3809:23;3805:32;3802:2;;;3855:6;3847;3840:22;3802:2;3893:9;3887:16;3926:18;3918:6;3915:30;3912:2;;;3963:6;3955;3948:22;3912:2;3991:22;;4044:4;4036:13;;4032:27;-1:-1:-1;4022:2:14;;4078:6;4070;4063:22;4022:2;4112;4106:9;4137:50;4152:34;4183:2;4152:34;:::i;4137:50::-;4210:2;4203:5;4196:17;4250:7;4245:2;4240;4236;4232:11;4228:20;4225:33;4222:2;;;4276:6;4268;4261:22;4222:2;4294:54;4345:2;4340;4333:5;4329:14;4324:2;4320;4316:11;4294:54;:::i;:::-;4367:5;3792:586;-1:-1:-1;;;;;3792:586:14:o;4383:266::-;;;4512:2;4500:9;4491:7;4487:23;4483:32;4480:2;;;4533:6;4525;4518:22;4480:2;4574:9;4561:23;4551:33;;4603:40;4639:2;4628:9;4624:18;4603:40;:::i;4654:342::-;;;;4800:2;4788:9;4779:7;4775:23;4771:32;4768:2;;;4821:6;4813;4806:22;4768:2;4862:9;4849:23;4839:33;;4891:40;4927:2;4916:9;4912:18;4891:40;:::i;5001:326::-;;;;5147:2;5135:9;5126:7;5122:23;5118:32;5115:2;;;5168:6;5160;5153:22;5115:2;-1:-1:-1;;5196:23:14;;;5266:2;5251:18;;5238:32;;-1:-1:-1;5317:2:14;5302:18;;;5289:32;;5105:222;-1:-1:-1;5105:222:14:o;5332:260::-;;5414:5;5408:12;5441:6;5436:3;5429:19;5457:63;5513:6;5506:4;5501:3;5497:14;5490:4;5483:5;5479:16;5457:63;:::i;:::-;5574:2;5553:15;-1:-1:-1;;5549:29:14;5540:39;;;;5581:4;5536:50;;5384:208;-1:-1:-1;;5384:208:14:o;5597:178::-;5674:12;;5662:25;;5740:4;5729:16;;;5723:23;-1:-1:-1;;;;;5719:49:14;5703:14;;5696:73;5652:123::o;5780:276::-;;5949:6;5943:13;5965:53;6011:6;6006:3;5999:4;5991:6;5987:17;5965:53;:::i;:::-;6034:16;;;;;5919:137;-1:-1:-1;;5919:137:14:o;6061:255::-;-1:-1:-1;;;6263:20:14;;6308:1;6299:11;;6253:63::o;6321:203::-;-1:-1:-1;;;;;6485:32:14;;;;6467:51;;6455:2;6440:18;;6422:102::o;6529:375::-;-1:-1:-1;;;;;6787:15:14;;;6769:34;;6839:15;;;;6834:2;6819:18;;6812:43;6886:2;6871:18;;6864:34;;;;6719:2;6704:18;;6686:218::o;6909:390::-;-1:-1:-1;;;;;7114:32:14;;7096:51;;7183:2;7178;7163:18;;7156:30;;;6909:390;;7203:47;;7231:18;;7223:6;7203:47;:::i;:::-;7195:55;;7286:6;7281:2;7270:9;7266:18;7259:34;7086:213;;;;;;:::o;7304:498::-;-1:-1:-1;;;;;7562:32:14;;;;7544:51;;7631:2;7626;7611:18;;7604:30;;;7670:1;7650:18;;;7643:29;-1:-1:-1;;;7703:3:14;7688:19;;7681:36;7784:2;7769:18;;7762:34;7582:3;7734:19;;7534:268::o;7807:661::-;7978:2;8030:21;;;8100:13;;8003:18;;;8122:22;;;7807:661;;7978:2;8201:15;;;;8175:2;8160:18;;;7807:661;8247:195;8261:6;8258:1;8255:13;8247:195;;;8326:13;;-1:-1:-1;;;;;8322:39:14;8310:52;;8417:15;;;;8382:12;;;;8358:1;8276:9;8247:195;;;-1:-1:-1;8459:3:14;;7958:510;-1:-1:-1;;;;;;7958:510:14:o;8473:731::-;8696:2;8748:21;;;8818:13;;8721:18;;;8840:22;;;8473:731;;8696:2;8881;;8899:18;;;;8940:15;;;8473:731;8986:192;9000:6;8997:1;8994:13;8986:192;;;9049:49;9094:3;9085:6;9079:13;9049:49;:::i;:::-;9118:12;;;;9153:15;;;;9022:1;9015:9;8986:192;;;-1:-1:-1;9195:3:14;;8676:528;-1:-1:-1;;;;;;;8676:528:14:o;9209:1094::-;9432:2;9484:21;;;9554:13;;9457:18;;;9576:22;;;9209:1094;;9432:2;9617;;9635:18;;;;9695:15;;;9680:31;;9676:40;;9739:15;;;9209:1094;9785:489;9799:6;9796:1;9793:13;9785:489;;;9864:22;;;-1:-1:-1;;9860:36:14;9848:49;;9920:13;;9966:9;;9988:18;;;10033:50;10067:15;;;9966:9;10033:50;:::i;:::-;10130:11;;;10124:18;-1:-1:-1;;;;;10120:44:14;10103:15;;;10096:69;;;;10252:12;;;;10019:64;-1:-1:-1;10217:15:14;;;;10161:1;9814:9;9785:489;;;-1:-1:-1;10291:6:14;;9412:891;-1:-1:-1;;;;;;;;9412:891:14:o;10308:725::-;10525:2;10577:21;;;10647:13;;10550:18;;;10669:22;;;10308:725;;10525:2;10710;;10728:18;;;;10769:15;;;10308:725;10815:192;10829:6;10826:1;10823:13;10815:192;;;10878:49;10923:3;10914:6;10908:13;10878:49;:::i;:::-;10947:12;;;;10982:15;;;;10851:1;10844:9;10815:192;;11038:187;11203:14;;11196:22;11178:41;;11166:2;11151:18;;11133:92::o;11230:222::-;;11379:2;11368:9;11361:21;11399:47;11442:2;11431:9;11427:18;11419:6;11399:47;:::i;11457:399::-;11659:2;11641:21;;;11698:2;11678:18;;;11671:30;11737:34;11732:2;11717:18;;11710:62;-1:-1:-1;;;11803:2:14;11788:18;;11781:33;11846:3;11831:19;;11631:225::o;11861:344::-;12063:2;12045:21;;;12102:2;12082:18;;;12075:30;-1:-1:-1;;;12136:2:14;12121:18;;12114:50;12196:2;12181:18;;12035:170::o;12210:402::-;12412:2;12394:21;;;12451:2;12431:18;;;12424:30;12490:34;12485:2;12470:18;;12463:62;-1:-1:-1;;;12556:2:14;12541:18;;12534:36;12602:3;12587:19;;12384:228::o;12617:398::-;12819:2;12801:21;;;12858:2;12838:18;;;12831:30;12897:34;12892:2;12877:18;;12870:62;-1:-1:-1;;;12963:2:14;12948:18;;12941:32;13005:3;12990:19;;12791:224::o;13020:402::-;13222:2;13204:21;;;13261:2;13241:18;;;13234:30;13300:34;13295:2;13280:18;;13273:62;-1:-1:-1;;;13366:2:14;13351:18;;13344:36;13412:3;13397:19;;13194:228::o;13427:348::-;13629:2;13611:21;;;13668:2;13648:18;;;13641:30;13707:26;13702:2;13687:18;;13680:54;13766:2;13751:18;;13601:174::o;13780:340::-;13982:2;13964:21;;;14021:2;14001:18;;;13994:30;-1:-1:-1;;;14055:2:14;14040:18;;14033:46;14111:2;14096:18;;13954:166::o;14125:404::-;14327:2;14309:21;;;14366:2;14346:18;;;14339:30;14405:34;14400:2;14385:18;;14378:62;-1:-1:-1;;;14471:2:14;14456:18;;14449:38;14519:3;14504:19;;14299:230::o;14534:356::-;14736:2;14718:21;;;14755:18;;;14748:30;14814:34;14809:2;14794:18;;14787:62;14881:2;14866:18;;14708:182::o;14895:337::-;15097:2;15079:21;;;15136:2;15116:18;;;15109:30;-1:-1:-1;;;15170:2:14;15155:18;;15148:43;15223:2;15208:18;;15069:163::o;15237:352::-;15439:2;15421:21;;;15478:2;15458:18;;;15451:30;15517;15512:2;15497:18;;15490:58;15580:2;15565:18;;15411:178::o;15594:401::-;15796:2;15778:21;;;15835:2;15815:18;;;15808:30;15874:34;15869:2;15854:18;;15847:62;-1:-1:-1;;;15940:2:14;15925:18;;15918:35;15985:3;15970:19;;15768:227::o;16000:400::-;16202:2;16184:21;;;16241:2;16221:18;;;16214:30;16280:34;16275:2;16260:18;;16253:62;-1:-1:-1;;;16346:2:14;16331:18;;16324:34;16390:3;16375:19;;16174:226::o;16405:401::-;16607:2;16589:21;;;16646:2;16626:18;;;16619:30;16685:34;16680:2;16665:18;;16658:62;-1:-1:-1;;;16751:2:14;16736:18;;16729:35;16796:3;16781:19;;16579:227::o;16811:346::-;17013:2;16995:21;;;17052:2;17032:18;;;17025:30;-1:-1:-1;;;17086:2:14;17071:18;;17064:52;17148:2;17133:18;;16985:172::o;17162:355::-;17364:2;17346:21;;;17403:2;17383:18;;;17376:30;17442:33;17437:2;17422:18;;17415:61;17508:2;17493:18;;17336:181::o;17522:177::-;17668:25;;;17656:2;17641:18;;17623:76::o;17704:274::-;17878:25;;;-1:-1:-1;;;;;17939:32:14;17934:2;17919:18;;17912:60;17866:2;17851:18;;17833:145::o;17983:248::-;18157:25;;;18213:2;18198:18;;18191:34;18145:2;18130:18;;18112:119::o;18236:391::-;18467:25;;;18523:2;18508:18;;18501:34;;;;18566:2;18551:18;;18544:34;18609:2;18594:18;;18587:34;18454:3;18439:19;;18421:206::o;18632:184::-;18804:4;18792:17;;;;18774:36;;18762:2;18747:18;;18729:87::o;18821:251::-;18891:2;18885:9;18921:17;;;18968:18;18953:34;;18989:22;;;18950:62;18947:2;;;19015:18;;:::i;:::-;19051:2;19044:22;18865:207;;-1:-1:-1;18865:207:14:o;19077:191::-;;19161:18;19153:6;19150:30;19147:2;;;19183:18;;:::i;:::-;-1:-1:-1;19251:2:14;19228:17;-1:-1:-1;;19224:31:14;19257:4;19220:42;;19137:131::o;19273:128::-;;19344:1;19340:6;19337:1;19334:13;19331:2;;;19350:18;;:::i;:::-;-1:-1:-1;19386:9:14;;19321:80::o;19406:217::-;;19472:1;19462:2;;-1:-1:-1;;;19497:31:14;;19551:4;19548:1;19541:15;19579:4;19504:1;19569:15;19462:2;-1:-1:-1;19608:9:14;;19452:171::o;19628:168::-;;19734:1;19730;19726:6;19722:14;19719:1;19716:21;19711:1;19704:9;19697:17;19693:45;19690:2;;;19741:18;;:::i;:::-;-1:-1:-1;19781:9:14;;19680:116::o;19801:125::-;;19869:1;19866;19863:8;19860:2;;;19874:18;;:::i;:::-;-1:-1:-1;19911:9:14;;19850:76::o;19931:258::-;20003:1;20013:113;20027:6;20024:1;20021:13;20013:113;;;20103:11;;;20097:18;20084:11;;;20077:39;20049:2;20042:10;20013:113;;;20144:6;20141:1;20138:13;20135:2;;;-1:-1:-1;;20179:1:14;20161:16;;20154:27;19984:205::o;20194:380::-;20279:1;20269:12;;20326:1;20316:12;;;20337:2;;20391:4;20383:6;20379:17;20369:27;;20337:2;20444;20436:6;20433:14;20413:18;20410:38;20407:2;;;20490:10;20485:3;20481:20;20478:1;20471:31;20525:4;20522:1;20515:15;20553:4;20550:1;20543:15;20407:2;;20249:325;;;:::o;20579:135::-;;-1:-1:-1;;20639:17:14;;20636:2;;;20659:18;;:::i;:::-;-1:-1:-1;20706:1:14;20695:13;;20626:88::o;20719:127::-;20780:10;20775:3;20771:20;20768:1;20761:31;20811:4;20808:1;20801:15;20835:4;20832:1;20825:15;20851:127;20912:10;20907:3;20903:20;20900:1;20893:31;20943:4;20940:1;20933:15;20967:4;20964:1;20957:15",
|
|
15948
|
+
"source": "// Verified Liquidity token \r\n// (c) Kallol Borah, 2021\r\n\r\n//\"SPDX-License-Identifier: UNLICENSED\"\r\n\r\npragma solidity 0.8.0;\r\n\r\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\r\nimport \"@openzeppelin/contracts/security/Pausable.sol\";\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\r\nimport \"@openzeppelin/contracts/utils/math/SafeMath.sol\";\r\n\r\nimport \"./interfaces/IMarketMaker.sol\";\r\nimport \"./interfaces/ILiquidity.sol\";\r\n\r\ncontract Liquidity is ERC20, Ownable, Pausable {\r\n\r\n using SafeMath for uint256;\r\n\r\n ILiquidity.platform[] private platforms;\r\n mapping(address => uint256) private platformIndex;\r\n\r\n ILiquidity.token[] private tokens;\r\n mapping(address => uint256) private tokenIndex;\r\n \r\n ILiquidity.provider[] private LPs;\r\n\r\n uint256 investmentCap=0;\r\n uint256 timeLimit=0;\r\n \r\n uint256 totalStaked=0;\r\n uint256 totalLiquidity=0;\r\n uint256 totalIssued=0;\r\n\r\n address payable verified;\r\n\r\n struct investment{\r\n uint256 tokenAmount;\r\n address tokenAddress;\r\n }\r\n\r\n struct liquidity{\r\n uint256 issued;\r\n uint256 staked;\r\n }\r\n\r\n struct performance{\r\n uint256 liquidityProvided;\r\n uint256 commissionsEarned;\r\n }\r\n\r\n // mapping investor to invested tokens\r\n mapping(address => mapping(string => investment)) private investors;\r\n // mapping investor to liquidity tokens issued and staked\r\n mapping(address => liquidity) private stakes; \r\n // mapping platform to asset managers on it\r\n mapping(address => address[]) private managers; \r\n // mapping platform to asset manager's position in it\r\n mapping(address => mapping(address => uint256)) private managerIndex;\r\n // mapping platform to address of token distributed by manager to asset manager index to performance of liquidity provided\r\n mapping(address => mapping(address => mapping(uint256 => performance))) private managerRoi;\r\n // mapping platform to performance\r\n mapping(address => performance) private platformRoi;\r\n\r\n //mutex\r\n bool lock;\r\n\r\n event RequestIssue(address investor, string tokenName, uint256 tokenAmount);\r\n \r\n /**\r\n Constructor for the Verified Liquidity token\r\n @param _supply total supply of VITTA\r\n @param _cap investment limit for each investor\r\n @param _limit time limit for issue close\r\n */\r\n constructor(uint256 _supply, uint256 _cap, uint256 _limit) \r\n ERC20(\"Verified\", \"VITTA\"){\r\n _mint(msg.sender, _supply);\r\n verified = payable(msg.sender);\r\n investmentCap = _cap;\r\n timeLimit = _limit;\r\n totalIssued = 0;\r\n lock = false;\r\n }\r\n\r\n /**\r\n Creates supply of the Verified Liquidity token after initial issue with constructor defined parameters\r\n @param _supply total supply of VITTA\r\n @param _cap investment limit for each investor\r\n @param _limit time limit for issue close \r\n */\r\n function createSupply(uint256 _supply, uint256 _cap, uint256 _limit) onlyOwner external {\r\n _mint(msg.sender, _supply);\r\n investmentCap = _cap;\r\n timeLimit = _limit;\r\n }\r\n\r\n /**\r\n Specifies list of supported tokens that can be invested in the Verified Liquidity token\r\n @param _token address of token supported\r\n @param _name name of token supported\r\n */\r\n function supportTokens(address _token, bytes32 _name) onlyOwner external {\r\n if(tokenIndex[_token]==0){\r\n ILiquidity.token memory t = ILiquidity.token ({\r\n tokenName: _name,\r\n tokenAddress: _token\r\n });\r\n tokens.push(t);\r\n tokenIndex[_token] = tokens.length;\r\n }\r\n }\r\n\r\n /**\r\n Checks if a specified token is supported for investing in the Verified Liquidity token\r\n @param _token token that is supported for investment\r\n */\r\n function checkSupportForToken(address _token) external view returns(bool){\r\n if(tokenIndex[_token]>0)\r\n return true;\r\n else\r\n return false;\r\n }\r\n\r\n /**\r\n Returns list of supported tokens\r\n */\r\n function getSupportedTokens() external view returns(ILiquidity.token[] memory){\r\n return tokens;\r\n }\r\n\r\n /**\r\n Registers a liquidity platform (eg, DEX) where Verified Liquidity tokens can be used to underwrite investments\r\n @param _liquidityPlatform address of the market making platform\r\n @param _platformName name of market making platform\r\n */\r\n function registerPlatform(address _liquidityPlatform, bytes32 _platformName) onlyOwner external {\r\n if(platformIndex[_liquidityPlatform]==0){\r\n ILiquidity.platform memory p = ILiquidity.platform({\r\n platformName: _platformName,\r\n platformAddress: _liquidityPlatform\r\n });\r\n platforms.push(p);\r\n platformIndex[_liquidityPlatform] = platforms.length;\r\n }\r\n }\r\n \r\n /**\r\n Gets list of registered platforms\r\n */\r\n function getPlatforms() onlyOwner external view returns(ILiquidity.platform[] memory){\r\n return platforms;\r\n }\r\n\r\n /**\r\n Adds asset manager for managing liquidity\r\n @param _platform address of market making platform (eg, Balancer)\r\n @param _manager address of asset manager\r\n */\r\n function addManager(address _platform, address _manager) onlyOwner external{\r\n if(managerIndex[_platform][_manager]==0){\r\n managers[_platform].push(_manager);\r\n managerIndex[_platform][_manager] = managers[_platform].length;\r\n }\r\n } \r\n\r\n /**\r\n Removes asset manager for managing liquidity on platform\r\n @param _platform address of market making platform\r\n @param _manager address of asset manager\r\n */\r\n function removeManager(address _platform, address _manager) onlyOwner external{\r\n bool found = false;\r\n if(managerIndex[_platform][_manager]!=0){\r\n for(uint i=0; i<managers[_platform].length; i++){\r\n if(managers[_platform][i]==_manager){\r\n if(i==managers[_platform].length-1){\r\n delete managers[_platform][i];\r\n managerIndex[_platform][_manager] = 0;\r\n }\r\n else{\r\n managers[_platform][i]=managers[_platform][i+1];\r\n managerIndex[_platform][managers[_platform][i]] = managerIndex[_platform][managers[_platform][i]] - 1;\r\n }\r\n found = true;\r\n }\r\n else if(found){\r\n if(i==managers[_platform].length-1){\r\n delete managers[_platform][i];\r\n managerIndex[_platform][_manager] = 0;\r\n }\r\n else{\r\n managers[_platform][i]=managers[_platform][i+1];\r\n managerIndex[_platform][managers[_platform][i]] = managerIndex[_platform][managers[_platform][i]] - 1;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n Gets asset managers for managing liquidity\r\n @param _platform address of market making platform\r\n */\r\n function getManagers(address _platform) onlyOwner external view returns(address[] memory){\r\n return managers[_platform];\r\n }\r\n\r\n /**\r\n Receiver of ether invested in the Verified Liquidity token\r\n */\r\n receive() external payable{\r\n if(timeLimit!=0)\r\n require(timeLimit > block.timestamp, \"Subscription window breached\");\r\n //ether paid in\r\n require(msg.value !=0, \"Zero eth sent\");\r\n //contract must not be paused\r\n require(paused() == false, \"Contract in paused state\");\r\n //block reentrants\r\n require(!lock);\r\n lock = true;\r\n //issue liquidity token\r\n emit RequestIssue(msg.sender, \"ether\", msg.value);\r\n if(investors[msg.sender][\"ether\"].tokenAmount==0){\r\n ILiquidity.provider memory lp = ILiquidity.provider({\r\n assetInvested: string(\"ether\"),\r\n investorAddress: msg.sender\r\n });\r\n LPs.push(lp);\r\n }\r\n investors[msg.sender][\"ether\"].tokenAmount = SafeMath.add(investors[msg.sender][\"ether\"].tokenAmount, msg.value);\r\n lock = false;\r\n }\r\n\r\n /**\r\n Used by external apps (eg, exchange, wallet) to buy Verified Liquidity token \r\n @param _token address of token used by investor to buy the VITTA\r\n @param _amount amount of token that is transferred from investor to this VITTA issuing contract's account for the investor\r\n */\r\n function buy(address _token, uint256 _amount) external {\r\n if(timeLimit!=0)\r\n require(timeLimit > block.timestamp, \"Subscription window breached\");\r\n require(paused() == false, \"Contract in paused state\");\r\n bool found = false;\r\n if(tokenIndex[_token]>0)\r\n found = true;\r\n if(found){\r\n require(!lock);\r\n lock = true;\r\n if(IERC20(_token).transferFrom(msg.sender, address(this), _amount)){\r\n emit RequestIssue(msg.sender, ERC20(_token).name(), _amount);\r\n if(investors[msg.sender][ERC20(_token).name()].tokenAmount==0){\r\n ILiquidity.provider memory lp = ILiquidity.provider({\r\n assetInvested: ERC20(_token).name(),\r\n investorAddress: msg.sender\r\n });\r\n LPs.push(lp);\r\n }\r\n investors[msg.sender][ERC20(_token).name()].tokenAmount = SafeMath.add(investors[msg.sender][ERC20(_token).name()].tokenAmount, _amount);\r\n investors[msg.sender][ERC20(_token).name()].tokenAddress = _token;\r\n }\r\n lock = false;\r\n }\r\n }\r\n\r\n /**\r\n Fetches investors in VITTA\r\n */\r\n function getInvestors() onlyOwner external view returns(ILiquidity.provider[] memory){\r\n return LPs;\r\n }\r\n\r\n /**\r\n Fetches investment detail for specific investor in VITTA\r\n @param _investor address of investor\r\n @param _tokenName name of token invested by investor\r\n */\r\n function getInvestment(address _investor, string memory _tokenName) onlyOwner external view returns(uint256){\r\n return (investors[_investor][_tokenName].tokenAmount);\r\n }\r\n\r\n /**\r\n Used by admin to issue VITTA to investors or refund paid in tokens to investors if investment cap is breached\r\n @param _investor address of investor\r\n @param _tokenName name of token invested in VITTA\r\n @param _tokenAmount amount of token invested in VITTA\r\n @param _LPToIssue amount of VITTA to issue to investor\r\n */\r\n function issue(address _investor, string memory _tokenName, uint256 _tokenAmount, uint256 _LPToIssue) onlyOwner external {\r\n require(!lock);\r\n lock = true;\r\n //If investment is outside limits, refund tokens invested back to investor\r\n if((_LPToIssue > investmentCap) || (_LPToIssue > SafeMath.sub(totalSupply(), totalIssued))){\r\n investors[_investor][_tokenName].tokenAmount = SafeMath.sub(investors[_investor][_tokenName].tokenAmount, _tokenAmount);\r\n if(keccak256(abi.encodePacked(_tokenName))!=\"ether\")\r\n IERC20(investors[_investor][_tokenName].tokenAddress).transferFrom(address(this), _investor, _tokenAmount);\r\n else\r\n payable(_investor).transfer(_tokenAmount);\r\n }\r\n //else issue VITTA to investor and transfer managed liquidity to deployer that allocates it to issuer\r\n else{\r\n transferFrom(owner(), _investor, _LPToIssue); \r\n totalIssued = SafeMath.add(totalIssued, _LPToIssue); \r\n stakes[_investor].issued = SafeMath.add(stakes[_investor].issued, _LPToIssue);\r\n totalStaked = SafeMath.add(totalStaked, _LPToIssue); //added for model without staking\r\n stakes[_investor].staked = SafeMath.add(stakes[_investor].staked, _LPToIssue);//added for model without staking\r\n if(keccak256(abi.encodePacked(_tokenName))!=\"ether\")\r\n IERC20(investors[_investor][_tokenName].tokenAddress).transferFrom(address(this), owner(), _tokenAmount);\r\n else\r\n (verified).transfer(_tokenAmount); \r\n }\r\n lock = false;\r\n }\r\n\r\n /**\r\n Used by VITTA holder to stake it for providing liquidity for underwriting investments\r\n @param _toStake amount of VITTA to stake\r\n */\r\n /*function stake(uint256 _toStake) external {\r\n require(paused() == false, \"Contract in paused state\");\r\n require(stakes[msg.sender].issued >= _toStake, \"Staked liquidity more than issued liquidity\");\r\n require(!lock);\r\n lock = true;\r\n if(transferFrom(msg.sender, address(this), _toStake)){\r\n totalStaked = SafeMath.add(totalStaked, _toStake);\r\n stakes[msg.sender].issued = SafeMath.sub(stakes[msg.sender].issued, _toStake);\r\n stakes[msg.sender].staked = SafeMath.add(stakes[msg.sender].staked, _toStake);\r\n }\r\n lock = false;\r\n }*/\r\n\r\n /**\r\n Used by VITTA holder to withdraw staked liquidity for underwriting investments\r\n @param _fromStake amount of VITTA staked\r\n */\r\n /*function withdraw(uint256 _fromStake) external {\r\n require(paused() == false, \"Contract in paused state\");\r\n require(stakes[msg.sender].staked >= _fromStake, \"Withdrawn liquidity more than staked liquidity\");\r\n require(!lock);\r\n lock = true;\r\n if(SafeMath.sub(totalStaked, totalLiquidity) >= _fromStake){\r\n if(transferFrom(address(this), msg.sender, _fromStake)){\r\n totalStaked = SafeMath.sub(totalStaked, _fromStake);\r\n stakes[msg.sender].staked = SafeMath.sub(stakes[msg.sender].staked, _fromStake);\r\n }\r\n }\r\n lock = false;\r\n }*/\r\n\r\n /**\r\n Provides staked VITTA to asset managers based on prior liquidity consumed and commission earned \r\n @param _platform address of platform on which liquidity has to be provided\r\n @param _manager address of asset manager to whom liquidity has to be provided\r\n @param _liquidity amount of VITTA tokens to allot to an asset manager\r\n */\r\n function provideLiquidity(address _platform, address _manager, uint256 _liquidity) onlyOwner external {\r\n require(paused() == false, \"Contract in paused state\");\r\n require(managerIndex[_platform][_manager]!=0, \"Manager does not exist\");\r\n IMarketMaker(_platform).stake(_liquidity, _manager);\r\n _mint(owner(), _liquidity); //added for model without staking\r\n transferFrom(owner(), _platform, _liquidity); //added for model without staking\r\n //transferFrom(address(this), _platform, _liquidity); //removed for model without staking\r\n totalLiquidity = SafeMath.add(totalLiquidity, _liquidity);\r\n platformRoi[_platform].liquidityProvided = SafeMath.add(platformRoi[_platform].liquidityProvided, _liquidity);\r\n uint256 index = managerIndex[_platform][_manager];\r\n managerRoi[_platform][address(this)][index].liquidityProvided = SafeMath.add(managerRoi[_platform][address(this)][index].liquidityProvided, _liquidity);\r\n }\r\n\r\n /**\r\n Pay out of income by Market maker contracts to VITTA Liquidity providers\r\n @param _distribution amount of VITTA to mint and distribute pro rata to liquidity providers\r\n @param _token address of token in which distribution is made by market maker \r\n @param _manager address of asset manager earning the paid out return on investment \r\n */\r\n function distribute(uint256 _distribution, address _token, address _manager) external {\r\n require(platformIndex[msg.sender]>0);\r\n require(tokenIndex[_token]>0);\r\n require(paused() == false, \"Contract in paused state\");\r\n require(!lock);\r\n lock = true;\r\n uint256 index = managerIndex[msg.sender][_manager];\r\n if(totalStaked!=0 && index!=0){\r\n managerRoi[msg.sender][_token][index].commissionsEarned = SafeMath.add(managerRoi[msg.sender][_token][index].commissionsEarned, _distribution);\r\n }\r\n lock = false;\r\n }\r\n\r\n /**\r\n Fetches performance of market platform platform\r\n @param _platform address of market making platform\r\n */\r\n function getPlatformPerformance(address _platform) onlyOwner external view returns(uint256 unstakedLiquidity, \r\n uint256 balancePlatformLiquidity,\r\n uint256 platformLiquidityProvided,\r\n uint256 platformCommissionsEarned){\r\n uint256 unStakedLiquidity = SafeMath.sub(totalStaked, totalLiquidity);\r\n uint256 liquidityBalance = SafeMath.sub(platformRoi[_platform].liquidityProvided, balanceOf(_platform));\r\n return (unStakedLiquidity, liquidityBalance, platformRoi[_platform].liquidityProvided, platformRoi[_platform].commissionsEarned);\r\n }\r\n\r\n /**\r\n Fetches performance of asset managers\r\n @param _platform address of platform\r\n @param _token address of token\r\n @param _manager address of asset manager on platform\r\n */\r\n function getManagerPerformance(address _platform, address _token, address _manager) onlyOwner external view returns(uint256 managerLiquidityProvided,\r\n uint256 managerCommissionsEarned){\r\n uint256 index = managerIndex[_platform][_manager]; \r\n return (managerRoi[_platform][_token][index].liquidityProvided, managerRoi[_platform][_token][index].commissionsEarned);\r\n }\r\n\r\n /**\r\n Pay out income to VITTA Liquidity providers\r\n @param _platform amount of VITTA to mint and distribute pro rata to liquidity providers\r\n @param _distribution amount of VITTA token to pay out \r\n */\r\n function payOut(uint256 _distribution, address _platform) onlyOwner external {\r\n _mint(owner(), _distribution);\r\n platformRoi[_platform].commissionsEarned = SafeMath.add(platformRoi[_platform].commissionsEarned, _distribution);\r\n for(uint i=0; i<LPs.length; i++){\r\n uint256 prorataStake = SafeMath.div(stakes[LPs[i].investorAddress].staked, totalStaked);\r\n transferFrom(owner(), LPs[i].investorAddress, SafeMath.mul(prorataStake, _distribution)); \r\n }\r\n }\r\n\r\n function balance(address investor) external view returns(uint256 investorBalance){\r\n return balanceOf(investor);\r\n }\r\n\r\n /**\r\n Pauses this contract\r\n */\r\n function pause() onlyOwner public {\r\n _pause();\r\n }\r\n \r\n /**\r\n Unpauses this contract\r\n */\r\n function unpause() onlyOwner public {\r\n _unpause();\r\n }\r\n\r\n}\r\n\r\n",
|
|
15929
15949
|
"sourcePath": "D:\\Code\\verified-liquidity\\verified\\contracts\\Liquidity.sol",
|
|
15930
15950
|
"ast": {
|
|
15931
15951
|
"absolutePath": "project:/contracts/Liquidity.sol",
|
|
@@ -15943,13 +15963,13 @@
|
|
|
15943
15963
|
844
|
|
15944
15964
|
],
|
|
15945
15965
|
"ILiquidity": [
|
|
15946
|
-
|
|
15966
|
+
3492
|
|
15947
15967
|
],
|
|
15948
15968
|
"IMarketMaker": [
|
|
15949
|
-
|
|
15969
|
+
3604
|
|
15950
15970
|
],
|
|
15951
15971
|
"Liquidity": [
|
|
15952
|
-
|
|
15972
|
+
3237
|
|
15953
15973
|
],
|
|
15954
15974
|
"Ownable": [
|
|
15955
15975
|
103
|
|
@@ -15961,7 +15981,7 @@
|
|
|
15961
15981
|
1178
|
|
15962
15982
|
]
|
|
15963
15983
|
},
|
|
15964
|
-
"id":
|
|
15984
|
+
"id": 3238,
|
|
15965
15985
|
"license": "UNLICENSED",
|
|
15966
15986
|
"nodeType": "SourceUnit",
|
|
15967
15987
|
"nodes": [
|
|
@@ -15980,7 +16000,7 @@
|
|
|
15980
16000
|
"file": "@openzeppelin/contracts/access/Ownable.sol",
|
|
15981
16001
|
"id": 1806,
|
|
15982
16002
|
"nodeType": "ImportDirective",
|
|
15983
|
-
"scope":
|
|
16003
|
+
"scope": 3238,
|
|
15984
16004
|
"sourceUnit": 104,
|
|
15985
16005
|
"src": "128:52:8",
|
|
15986
16006
|
"symbolAliases": [],
|
|
@@ -15991,7 +16011,7 @@
|
|
|
15991
16011
|
"file": "@openzeppelin/contracts/security/Pausable.sol",
|
|
15992
16012
|
"id": 1807,
|
|
15993
16013
|
"nodeType": "ImportDirective",
|
|
15994
|
-
"scope":
|
|
16014
|
+
"scope": 3238,
|
|
15995
16015
|
"sourceUnit": 196,
|
|
15996
16016
|
"src": "182:55:8",
|
|
15997
16017
|
"symbolAliases": [],
|
|
@@ -16002,7 +16022,7 @@
|
|
|
16002
16022
|
"file": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
|
|
16003
16023
|
"id": 1808,
|
|
16004
16024
|
"nodeType": "ImportDirective",
|
|
16005
|
-
"scope":
|
|
16025
|
+
"scope": 3238,
|
|
16006
16026
|
"sourceUnit": 742,
|
|
16007
16027
|
"src": "241:55:8",
|
|
16008
16028
|
"symbolAliases": [],
|
|
@@ -16013,7 +16033,7 @@
|
|
|
16013
16033
|
"file": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
|
|
16014
16034
|
"id": 1809,
|
|
16015
16035
|
"nodeType": "ImportDirective",
|
|
16016
|
-
"scope":
|
|
16036
|
+
"scope": 3238,
|
|
16017
16037
|
"sourceUnit": 820,
|
|
16018
16038
|
"src": "298:56:8",
|
|
16019
16039
|
"symbolAliases": [],
|
|
@@ -16024,7 +16044,7 @@
|
|
|
16024
16044
|
"file": "@openzeppelin/contracts/utils/math/SafeMath.sol",
|
|
16025
16045
|
"id": 1810,
|
|
16026
16046
|
"nodeType": "ImportDirective",
|
|
16027
|
-
"scope":
|
|
16047
|
+
"scope": 3238,
|
|
16028
16048
|
"sourceUnit": 1179,
|
|
16029
16049
|
"src": "356:57:8",
|
|
16030
16050
|
"symbolAliases": [],
|
|
@@ -16035,8 +16055,8 @@
|
|
|
16035
16055
|
"file": "./interfaces/IMarketMaker.sol",
|
|
16036
16056
|
"id": 1811,
|
|
16037
16057
|
"nodeType": "ImportDirective",
|
|
16038
|
-
"scope":
|
|
16039
|
-
"sourceUnit":
|
|
16058
|
+
"scope": 3238,
|
|
16059
|
+
"sourceUnit": 3605,
|
|
16040
16060
|
"src": "417:39:8",
|
|
16041
16061
|
"symbolAliases": [],
|
|
16042
16062
|
"unitAlias": ""
|
|
@@ -16046,8 +16066,8 @@
|
|
|
16046
16066
|
"file": "./interfaces/ILiquidity.sol",
|
|
16047
16067
|
"id": 1812,
|
|
16048
16068
|
"nodeType": "ImportDirective",
|
|
16049
|
-
"scope":
|
|
16050
|
-
"sourceUnit":
|
|
16069
|
+
"scope": 3238,
|
|
16070
|
+
"sourceUnit": 3493,
|
|
16051
16071
|
"src": "458:37:8",
|
|
16052
16072
|
"symbolAliases": [],
|
|
16053
16073
|
"unitAlias": ""
|
|
@@ -16102,9 +16122,9 @@
|
|
|
16102
16122
|
],
|
|
16103
16123
|
"contractKind": "contract",
|
|
16104
16124
|
"fullyImplemented": true,
|
|
16105
|
-
"id":
|
|
16125
|
+
"id": 3237,
|
|
16106
16126
|
"linearizedBaseContracts": [
|
|
16107
|
-
|
|
16127
|
+
3237,
|
|
16108
16128
|
195,
|
|
16109
16129
|
103,
|
|
16110
16130
|
741,
|
|
@@ -16143,12 +16163,12 @@
|
|
|
16143
16163
|
"mutability": "mutable",
|
|
16144
16164
|
"name": "platforms",
|
|
16145
16165
|
"nodeType": "VariableDeclaration",
|
|
16146
|
-
"scope":
|
|
16166
|
+
"scope": 3237,
|
|
16147
16167
|
"src": "590:39:8",
|
|
16148
16168
|
"stateVariable": true,
|
|
16149
16169
|
"storageLocation": "default",
|
|
16150
16170
|
"typeDescriptions": {
|
|
16151
|
-
"typeIdentifier": "t_array$_t_struct$_platform_$
|
|
16171
|
+
"typeIdentifier": "t_array$_t_struct$_platform_$3316_storage_$dyn_storage",
|
|
16152
16172
|
"typeString": "struct ILiquidity.platform[]"
|
|
16153
16173
|
},
|
|
16154
16174
|
"typeName": {
|
|
@@ -16159,13 +16179,13 @@
|
|
|
16159
16179
|
"id": 1822,
|
|
16160
16180
|
"name": "ILiquidity.platform",
|
|
16161
16181
|
"nodeType": "IdentifierPath",
|
|
16162
|
-
"referencedDeclaration":
|
|
16182
|
+
"referencedDeclaration": 3316,
|
|
16163
16183
|
"src": "590:19:8"
|
|
16164
16184
|
},
|
|
16165
|
-
"referencedDeclaration":
|
|
16185
|
+
"referencedDeclaration": 3316,
|
|
16166
16186
|
"src": "590:19:8",
|
|
16167
16187
|
"typeDescriptions": {
|
|
16168
|
-
"typeIdentifier": "t_struct$_platform_$
|
|
16188
|
+
"typeIdentifier": "t_struct$_platform_$3316_storage_ptr",
|
|
16169
16189
|
"typeString": "struct ILiquidity.platform"
|
|
16170
16190
|
}
|
|
16171
16191
|
},
|
|
@@ -16173,7 +16193,7 @@
|
|
|
16173
16193
|
"nodeType": "ArrayTypeName",
|
|
16174
16194
|
"src": "590:21:8",
|
|
16175
16195
|
"typeDescriptions": {
|
|
16176
|
-
"typeIdentifier": "t_array$_t_struct$_platform_$
|
|
16196
|
+
"typeIdentifier": "t_array$_t_struct$_platform_$3316_storage_$dyn_storage_ptr",
|
|
16177
16197
|
"typeString": "struct ILiquidity.platform[]"
|
|
16178
16198
|
}
|
|
16179
16199
|
},
|
|
@@ -16185,7 +16205,7 @@
|
|
|
16185
16205
|
"mutability": "mutable",
|
|
16186
16206
|
"name": "platformIndex",
|
|
16187
16207
|
"nodeType": "VariableDeclaration",
|
|
16188
|
-
"scope":
|
|
16208
|
+
"scope": 3237,
|
|
16189
16209
|
"src": "636:49:8",
|
|
16190
16210
|
"stateVariable": true,
|
|
16191
16211
|
"storageLocation": "default",
|
|
@@ -16230,12 +16250,12 @@
|
|
|
16230
16250
|
"mutability": "mutable",
|
|
16231
16251
|
"name": "tokens",
|
|
16232
16252
|
"nodeType": "VariableDeclaration",
|
|
16233
|
-
"scope":
|
|
16253
|
+
"scope": 3237,
|
|
16234
16254
|
"src": "694:33:8",
|
|
16235
16255
|
"stateVariable": true,
|
|
16236
16256
|
"storageLocation": "default",
|
|
16237
16257
|
"typeDescriptions": {
|
|
16238
|
-
"typeIdentifier": "t_array$_t_struct$_token_$
|
|
16258
|
+
"typeIdentifier": "t_array$_t_struct$_token_$3321_storage_$dyn_storage",
|
|
16239
16259
|
"typeString": "struct ILiquidity.token[]"
|
|
16240
16260
|
},
|
|
16241
16261
|
"typeName": {
|
|
@@ -16246,13 +16266,13 @@
|
|
|
16246
16266
|
"id": 1830,
|
|
16247
16267
|
"name": "ILiquidity.token",
|
|
16248
16268
|
"nodeType": "IdentifierPath",
|
|
16249
|
-
"referencedDeclaration":
|
|
16269
|
+
"referencedDeclaration": 3321,
|
|
16250
16270
|
"src": "694:16:8"
|
|
16251
16271
|
},
|
|
16252
|
-
"referencedDeclaration":
|
|
16272
|
+
"referencedDeclaration": 3321,
|
|
16253
16273
|
"src": "694:16:8",
|
|
16254
16274
|
"typeDescriptions": {
|
|
16255
|
-
"typeIdentifier": "t_struct$_token_$
|
|
16275
|
+
"typeIdentifier": "t_struct$_token_$3321_storage_ptr",
|
|
16256
16276
|
"typeString": "struct ILiquidity.token"
|
|
16257
16277
|
}
|
|
16258
16278
|
},
|
|
@@ -16260,7 +16280,7 @@
|
|
|
16260
16280
|
"nodeType": "ArrayTypeName",
|
|
16261
16281
|
"src": "694:18:8",
|
|
16262
16282
|
"typeDescriptions": {
|
|
16263
|
-
"typeIdentifier": "t_array$_t_struct$_token_$
|
|
16283
|
+
"typeIdentifier": "t_array$_t_struct$_token_$3321_storage_$dyn_storage_ptr",
|
|
16264
16284
|
"typeString": "struct ILiquidity.token[]"
|
|
16265
16285
|
}
|
|
16266
16286
|
},
|
|
@@ -16272,7 +16292,7 @@
|
|
|
16272
16292
|
"mutability": "mutable",
|
|
16273
16293
|
"name": "tokenIndex",
|
|
16274
16294
|
"nodeType": "VariableDeclaration",
|
|
16275
|
-
"scope":
|
|
16295
|
+
"scope": 3237,
|
|
16276
16296
|
"src": "734:46:8",
|
|
16277
16297
|
"stateVariable": true,
|
|
16278
16298
|
"storageLocation": "default",
|
|
@@ -16317,12 +16337,12 @@
|
|
|
16317
16337
|
"mutability": "mutable",
|
|
16318
16338
|
"name": "LPs",
|
|
16319
16339
|
"nodeType": "VariableDeclaration",
|
|
16320
|
-
"scope":
|
|
16340
|
+
"scope": 3237,
|
|
16321
16341
|
"src": "793:33:8",
|
|
16322
16342
|
"stateVariable": true,
|
|
16323
16343
|
"storageLocation": "default",
|
|
16324
16344
|
"typeDescriptions": {
|
|
16325
|
-
"typeIdentifier": "t_array$_t_struct$_provider_$
|
|
16345
|
+
"typeIdentifier": "t_array$_t_struct$_provider_$3326_storage_$dyn_storage",
|
|
16326
16346
|
"typeString": "struct ILiquidity.provider[]"
|
|
16327
16347
|
},
|
|
16328
16348
|
"typeName": {
|
|
@@ -16333,13 +16353,13 @@
|
|
|
16333
16353
|
"id": 1838,
|
|
16334
16354
|
"name": "ILiquidity.provider",
|
|
16335
16355
|
"nodeType": "IdentifierPath",
|
|
16336
|
-
"referencedDeclaration":
|
|
16356
|
+
"referencedDeclaration": 3326,
|
|
16337
16357
|
"src": "793:19:8"
|
|
16338
16358
|
},
|
|
16339
|
-
"referencedDeclaration":
|
|
16359
|
+
"referencedDeclaration": 3326,
|
|
16340
16360
|
"src": "793:19:8",
|
|
16341
16361
|
"typeDescriptions": {
|
|
16342
|
-
"typeIdentifier": "t_struct$_provider_$
|
|
16362
|
+
"typeIdentifier": "t_struct$_provider_$3326_storage_ptr",
|
|
16343
16363
|
"typeString": "struct ILiquidity.provider"
|
|
16344
16364
|
}
|
|
16345
16365
|
},
|
|
@@ -16347,7 +16367,7 @@
|
|
|
16347
16367
|
"nodeType": "ArrayTypeName",
|
|
16348
16368
|
"src": "793:21:8",
|
|
16349
16369
|
"typeDescriptions": {
|
|
16350
|
-
"typeIdentifier": "t_array$_t_struct$_provider_$
|
|
16370
|
+
"typeIdentifier": "t_array$_t_struct$_provider_$3326_storage_$dyn_storage_ptr",
|
|
16351
16371
|
"typeString": "struct ILiquidity.provider[]"
|
|
16352
16372
|
}
|
|
16353
16373
|
},
|
|
@@ -16359,7 +16379,7 @@
|
|
|
16359
16379
|
"mutability": "mutable",
|
|
16360
16380
|
"name": "investmentCap",
|
|
16361
16381
|
"nodeType": "VariableDeclaration",
|
|
16362
|
-
"scope":
|
|
16382
|
+
"scope": 3237,
|
|
16363
16383
|
"src": "835:23:8",
|
|
16364
16384
|
"stateVariable": true,
|
|
16365
16385
|
"storageLocation": "default",
|
|
@@ -16401,7 +16421,7 @@
|
|
|
16401
16421
|
"mutability": "mutable",
|
|
16402
16422
|
"name": "timeLimit",
|
|
16403
16423
|
"nodeType": "VariableDeclaration",
|
|
16404
|
-
"scope":
|
|
16424
|
+
"scope": 3237,
|
|
16405
16425
|
"src": "865:19:8",
|
|
16406
16426
|
"stateVariable": true,
|
|
16407
16427
|
"storageLocation": "default",
|
|
@@ -16443,7 +16463,7 @@
|
|
|
16443
16463
|
"mutability": "mutable",
|
|
16444
16464
|
"name": "totalStaked",
|
|
16445
16465
|
"nodeType": "VariableDeclaration",
|
|
16446
|
-
"scope":
|
|
16466
|
+
"scope": 3237,
|
|
16447
16467
|
"src": "897:21:8",
|
|
16448
16468
|
"stateVariable": true,
|
|
16449
16469
|
"storageLocation": "default",
|
|
@@ -16485,7 +16505,7 @@
|
|
|
16485
16505
|
"mutability": "mutable",
|
|
16486
16506
|
"name": "totalLiquidity",
|
|
16487
16507
|
"nodeType": "VariableDeclaration",
|
|
16488
|
-
"scope":
|
|
16508
|
+
"scope": 3237,
|
|
16489
16509
|
"src": "925:24:8",
|
|
16490
16510
|
"stateVariable": true,
|
|
16491
16511
|
"storageLocation": "default",
|
|
@@ -16527,7 +16547,7 @@
|
|
|
16527
16547
|
"mutability": "mutable",
|
|
16528
16548
|
"name": "totalIssued",
|
|
16529
16549
|
"nodeType": "VariableDeclaration",
|
|
16530
|
-
"scope":
|
|
16550
|
+
"scope": 3237,
|
|
16531
16551
|
"src": "956:21:8",
|
|
16532
16552
|
"stateVariable": true,
|
|
16533
16553
|
"storageLocation": "default",
|
|
@@ -16569,7 +16589,7 @@
|
|
|
16569
16589
|
"mutability": "mutable",
|
|
16570
16590
|
"name": "verified",
|
|
16571
16591
|
"nodeType": "VariableDeclaration",
|
|
16572
|
-
"scope":
|
|
16592
|
+
"scope": 3237,
|
|
16573
16593
|
"src": "986:24:8",
|
|
16574
16594
|
"stateVariable": true,
|
|
16575
16595
|
"storageLocation": "default",
|
|
@@ -16650,7 +16670,7 @@
|
|
|
16650
16670
|
],
|
|
16651
16671
|
"name": "investment",
|
|
16652
16672
|
"nodeType": "StructDefinition",
|
|
16653
|
-
"scope":
|
|
16673
|
+
"scope": 3237,
|
|
16654
16674
|
"src": "1019:86:8",
|
|
16655
16675
|
"visibility": "public"
|
|
16656
16676
|
},
|
|
@@ -16713,7 +16733,7 @@
|
|
|
16713
16733
|
],
|
|
16714
16734
|
"name": "liquidity",
|
|
16715
16735
|
"nodeType": "StructDefinition",
|
|
16716
|
-
"scope":
|
|
16736
|
+
"scope": 3237,
|
|
16717
16737
|
"src": "1113:74:8",
|
|
16718
16738
|
"visibility": "public"
|
|
16719
16739
|
},
|
|
@@ -16776,7 +16796,7 @@
|
|
|
16776
16796
|
],
|
|
16777
16797
|
"name": "performance",
|
|
16778
16798
|
"nodeType": "StructDefinition",
|
|
16779
|
-
"scope":
|
|
16799
|
+
"scope": 3237,
|
|
16780
16800
|
"src": "1195:98:8",
|
|
16781
16801
|
"visibility": "public"
|
|
16782
16802
|
},
|
|
@@ -16786,7 +16806,7 @@
|
|
|
16786
16806
|
"mutability": "mutable",
|
|
16787
16807
|
"name": "investors",
|
|
16788
16808
|
"nodeType": "VariableDeclaration",
|
|
16789
|
-
"scope":
|
|
16809
|
+
"scope": 3237,
|
|
16790
16810
|
"src": "1345:67:8",
|
|
16791
16811
|
"stateVariable": true,
|
|
16792
16812
|
"storageLocation": "default",
|
|
@@ -16857,7 +16877,7 @@
|
|
|
16857
16877
|
"mutability": "mutable",
|
|
16858
16878
|
"name": "stakes",
|
|
16859
16879
|
"nodeType": "VariableDeclaration",
|
|
16860
|
-
"scope":
|
|
16880
|
+
"scope": 3237,
|
|
16861
16881
|
"src": "1482:44:8",
|
|
16862
16882
|
"stateVariable": true,
|
|
16863
16883
|
"storageLocation": "default",
|
|
@@ -16909,7 +16929,7 @@
|
|
|
16909
16929
|
"mutability": "mutable",
|
|
16910
16930
|
"name": "managers",
|
|
16911
16931
|
"nodeType": "VariableDeclaration",
|
|
16912
|
-
"scope":
|
|
16932
|
+
"scope": 3237,
|
|
16913
16933
|
"src": "1586:46:8",
|
|
16914
16934
|
"stateVariable": true,
|
|
16915
16935
|
"storageLocation": "default",
|
|
@@ -16964,7 +16984,7 @@
|
|
|
16964
16984
|
"mutability": "mutable",
|
|
16965
16985
|
"name": "managerIndex",
|
|
16966
16986
|
"nodeType": "VariableDeclaration",
|
|
16967
|
-
"scope":
|
|
16987
|
+
"scope": 3237,
|
|
16968
16988
|
"src": "1699:68:8",
|
|
16969
16989
|
"stateVariable": true,
|
|
16970
16990
|
"storageLocation": "default",
|
|
@@ -17028,7 +17048,7 @@
|
|
|
17028
17048
|
"mutability": "mutable",
|
|
17029
17049
|
"name": "managerRoi",
|
|
17030
17050
|
"nodeType": "VariableDeclaration",
|
|
17031
|
-
"scope":
|
|
17051
|
+
"scope": 3237,
|
|
17032
17052
|
"src": "1902:90:8",
|
|
17033
17053
|
"stateVariable": true,
|
|
17034
17054
|
"storageLocation": "default",
|
|
@@ -17118,7 +17138,7 @@
|
|
|
17118
17138
|
"mutability": "mutable",
|
|
17119
17139
|
"name": "platformRoi",
|
|
17120
17140
|
"nodeType": "VariableDeclaration",
|
|
17121
|
-
"scope":
|
|
17141
|
+
"scope": 3237,
|
|
17122
17142
|
"src": "2039:51:8",
|
|
17123
17143
|
"stateVariable": true,
|
|
17124
17144
|
"storageLocation": "default",
|
|
@@ -17170,7 +17190,7 @@
|
|
|
17170
17190
|
"mutability": "mutable",
|
|
17171
17191
|
"name": "lock",
|
|
17172
17192
|
"nodeType": "VariableDeclaration",
|
|
17173
|
-
"scope":
|
|
17193
|
+
"scope": 3237,
|
|
17174
17194
|
"src": "2112:9:8",
|
|
17175
17195
|
"stateVariable": true,
|
|
17176
17196
|
"storageLocation": "default",
|
|
@@ -17809,7 +17829,7 @@
|
|
|
17809
17829
|
"parameters": [],
|
|
17810
17830
|
"src": "2544:0:8"
|
|
17811
17831
|
},
|
|
17812
|
-
"scope":
|
|
17832
|
+
"scope": 3237,
|
|
17813
17833
|
"src": "2449:290:8",
|
|
17814
17834
|
"stateMutability": "nonpayable",
|
|
17815
17835
|
"virtual": false,
|
|
@@ -18109,7 +18129,7 @@
|
|
|
18109
18129
|
"parameters": [],
|
|
18110
18130
|
"src": "3125:0:8"
|
|
18111
18131
|
},
|
|
18112
|
-
"scope":
|
|
18132
|
+
"scope": 3237,
|
|
18113
18133
|
"src": "3037:193:8",
|
|
18114
18134
|
"stateMutability": "nonpayable",
|
|
18115
18135
|
"virtual": false,
|
|
@@ -18217,7 +18237,7 @@
|
|
|
18217
18237
|
"stateVariable": false,
|
|
18218
18238
|
"storageLocation": "memory",
|
|
18219
18239
|
"typeDescriptions": {
|
|
18220
|
-
"typeIdentifier": "t_struct$_token_$
|
|
18240
|
+
"typeIdentifier": "t_struct$_token_$3321_memory_ptr",
|
|
18221
18241
|
"typeString": "struct ILiquidity.token"
|
|
18222
18242
|
},
|
|
18223
18243
|
"typeName": {
|
|
@@ -18227,13 +18247,13 @@
|
|
|
18227
18247
|
"id": 2009,
|
|
18228
18248
|
"name": "ILiquidity.token",
|
|
18229
18249
|
"nodeType": "IdentifierPath",
|
|
18230
|
-
"referencedDeclaration":
|
|
18250
|
+
"referencedDeclaration": 3321,
|
|
18231
18251
|
"src": "3578:16:8"
|
|
18232
18252
|
},
|
|
18233
|
-
"referencedDeclaration":
|
|
18253
|
+
"referencedDeclaration": 3321,
|
|
18234
18254
|
"src": "3578:16:8",
|
|
18235
18255
|
"typeDescriptions": {
|
|
18236
|
-
"typeIdentifier": "t_struct$_token_$
|
|
18256
|
+
"typeIdentifier": "t_struct$_token_$3321_storage_ptr",
|
|
18237
18257
|
"typeString": "struct ILiquidity.token"
|
|
18238
18258
|
}
|
|
18239
18259
|
},
|
|
@@ -18284,10 +18304,10 @@
|
|
|
18284
18304
|
"name": "ILiquidity",
|
|
18285
18305
|
"nodeType": "Identifier",
|
|
18286
18306
|
"overloadedDeclarations": [],
|
|
18287
|
-
"referencedDeclaration":
|
|
18307
|
+
"referencedDeclaration": 3492,
|
|
18288
18308
|
"src": "3606:10:8",
|
|
18289
18309
|
"typeDescriptions": {
|
|
18290
|
-
"typeIdentifier": "t_type$_t_contract$_ILiquidity_$
|
|
18310
|
+
"typeIdentifier": "t_type$_t_contract$_ILiquidity_$3492_$",
|
|
18291
18311
|
"typeString": "type(contract ILiquidity)"
|
|
18292
18312
|
}
|
|
18293
18313
|
},
|
|
@@ -18298,10 +18318,10 @@
|
|
|
18298
18318
|
"lValueRequested": false,
|
|
18299
18319
|
"memberName": "token",
|
|
18300
18320
|
"nodeType": "MemberAccess",
|
|
18301
|
-
"referencedDeclaration":
|
|
18321
|
+
"referencedDeclaration": 3321,
|
|
18302
18322
|
"src": "3606:16:8",
|
|
18303
18323
|
"typeDescriptions": {
|
|
18304
|
-
"typeIdentifier": "t_type$_t_struct$_token_$
|
|
18324
|
+
"typeIdentifier": "t_type$_t_struct$_token_$3321_storage_ptr_$",
|
|
18305
18325
|
"typeString": "type(struct ILiquidity.token storage pointer)"
|
|
18306
18326
|
}
|
|
18307
18327
|
},
|
|
@@ -18319,7 +18339,7 @@
|
|
|
18319
18339
|
"src": "3606:108:8",
|
|
18320
18340
|
"tryCall": false,
|
|
18321
18341
|
"typeDescriptions": {
|
|
18322
|
-
"typeIdentifier": "t_struct$_token_$
|
|
18342
|
+
"typeIdentifier": "t_struct$_token_$3321_memory_ptr",
|
|
18323
18343
|
"typeString": "struct ILiquidity.token memory"
|
|
18324
18344
|
}
|
|
18325
18345
|
},
|
|
@@ -18337,7 +18357,7 @@
|
|
|
18337
18357
|
"referencedDeclaration": 2011,
|
|
18338
18358
|
"src": "3741:1:8",
|
|
18339
18359
|
"typeDescriptions": {
|
|
18340
|
-
"typeIdentifier": "t_struct$_token_$
|
|
18360
|
+
"typeIdentifier": "t_struct$_token_$3321_memory_ptr",
|
|
18341
18361
|
"typeString": "struct ILiquidity.token memory"
|
|
18342
18362
|
}
|
|
18343
18363
|
}
|
|
@@ -18345,7 +18365,7 @@
|
|
|
18345
18365
|
"expression": {
|
|
18346
18366
|
"argumentTypes": [
|
|
18347
18367
|
{
|
|
18348
|
-
"typeIdentifier": "t_struct$_token_$
|
|
18368
|
+
"typeIdentifier": "t_struct$_token_$3321_memory_ptr",
|
|
18349
18369
|
"typeString": "struct ILiquidity.token memory"
|
|
18350
18370
|
}
|
|
18351
18371
|
],
|
|
@@ -18357,7 +18377,7 @@
|
|
|
18357
18377
|
"referencedDeclaration": 1833,
|
|
18358
18378
|
"src": "3729:6:8",
|
|
18359
18379
|
"typeDescriptions": {
|
|
18360
|
-
"typeIdentifier": "t_array$_t_struct$_token_$
|
|
18380
|
+
"typeIdentifier": "t_array$_t_struct$_token_$3321_storage_$dyn_storage",
|
|
18361
18381
|
"typeString": "struct ILiquidity.token storage ref[] storage ref"
|
|
18362
18382
|
}
|
|
18363
18383
|
},
|
|
@@ -18370,7 +18390,7 @@
|
|
|
18370
18390
|
"nodeType": "MemberAccess",
|
|
18371
18391
|
"src": "3729:11:8",
|
|
18372
18392
|
"typeDescriptions": {
|
|
18373
|
-
"typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_token_$
|
|
18393
|
+
"typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_token_$3321_storage_$returns$__$",
|
|
18374
18394
|
"typeString": "function (struct ILiquidity.token storage ref)"
|
|
18375
18395
|
}
|
|
18376
18396
|
},
|
|
@@ -18448,7 +18468,7 @@
|
|
|
18448
18468
|
"referencedDeclaration": 1833,
|
|
18449
18469
|
"src": "3779:6:8",
|
|
18450
18470
|
"typeDescriptions": {
|
|
18451
|
-
"typeIdentifier": "t_array$_t_struct$_token_$
|
|
18471
|
+
"typeIdentifier": "t_array$_t_struct$_token_$3321_storage_$dyn_storage",
|
|
18452
18472
|
"typeString": "struct ILiquidity.token storage ref[] storage ref"
|
|
18453
18473
|
}
|
|
18454
18474
|
},
|
|
@@ -18572,7 +18592,7 @@
|
|
|
18572
18592
|
"parameters": [],
|
|
18573
18593
|
"src": "3527:0:8"
|
|
18574
18594
|
},
|
|
18575
|
-
"scope":
|
|
18595
|
+
"scope": 3237,
|
|
18576
18596
|
"src": "3454:357:8",
|
|
18577
18597
|
"stateMutability": "nonpayable",
|
|
18578
18598
|
"virtual": false,
|
|
@@ -18786,7 +18806,7 @@
|
|
|
18786
18806
|
],
|
|
18787
18807
|
"src": "4064:6:8"
|
|
18788
18808
|
},
|
|
18789
|
-
"scope":
|
|
18809
|
+
"scope": 3237,
|
|
18790
18810
|
"src": "3997:182:8",
|
|
18791
18811
|
"stateMutability": "view",
|
|
18792
18812
|
"virtual": false,
|
|
@@ -18807,7 +18827,7 @@
|
|
|
18807
18827
|
"referencedDeclaration": 1833,
|
|
18808
18828
|
"src": "4343:6:8",
|
|
18809
18829
|
"typeDescriptions": {
|
|
18810
|
-
"typeIdentifier": "t_array$_t_struct$_token_$
|
|
18830
|
+
"typeIdentifier": "t_array$_t_struct$_token_$3321_storage_$dyn_storage",
|
|
18811
18831
|
"typeString": "struct ILiquidity.token storage ref[] storage ref"
|
|
18812
18832
|
}
|
|
18813
18833
|
},
|
|
@@ -18852,7 +18872,7 @@
|
|
|
18852
18872
|
"stateVariable": false,
|
|
18853
18873
|
"storageLocation": "memory",
|
|
18854
18874
|
"typeDescriptions": {
|
|
18855
|
-
"typeIdentifier": "t_array$_t_struct$_token_$
|
|
18875
|
+
"typeIdentifier": "t_array$_t_struct$_token_$3321_memory_ptr_$dyn_memory_ptr",
|
|
18856
18876
|
"typeString": "struct ILiquidity.token[]"
|
|
18857
18877
|
},
|
|
18858
18878
|
"typeName": {
|
|
@@ -18863,13 +18883,13 @@
|
|
|
18863
18883
|
"id": 2056,
|
|
18864
18884
|
"name": "ILiquidity.token",
|
|
18865
18885
|
"nodeType": "IdentifierPath",
|
|
18866
|
-
"referencedDeclaration":
|
|
18886
|
+
"referencedDeclaration": 3321,
|
|
18867
18887
|
"src": "4299:16:8"
|
|
18868
18888
|
},
|
|
18869
|
-
"referencedDeclaration":
|
|
18889
|
+
"referencedDeclaration": 3321,
|
|
18870
18890
|
"src": "4299:16:8",
|
|
18871
18891
|
"typeDescriptions": {
|
|
18872
|
-
"typeIdentifier": "t_struct$_token_$
|
|
18892
|
+
"typeIdentifier": "t_struct$_token_$3321_storage_ptr",
|
|
18873
18893
|
"typeString": "struct ILiquidity.token"
|
|
18874
18894
|
}
|
|
18875
18895
|
},
|
|
@@ -18877,7 +18897,7 @@
|
|
|
18877
18897
|
"nodeType": "ArrayTypeName",
|
|
18878
18898
|
"src": "4299:18:8",
|
|
18879
18899
|
"typeDescriptions": {
|
|
18880
|
-
"typeIdentifier": "t_array$_t_struct$_token_$
|
|
18900
|
+
"typeIdentifier": "t_array$_t_struct$_token_$3321_storage_$dyn_storage_ptr",
|
|
18881
18901
|
"typeString": "struct ILiquidity.token[]"
|
|
18882
18902
|
}
|
|
18883
18903
|
},
|
|
@@ -18886,7 +18906,7 @@
|
|
|
18886
18906
|
],
|
|
18887
18907
|
"src": "4298:27:8"
|
|
18888
18908
|
},
|
|
18889
|
-
"scope":
|
|
18909
|
+
"scope": 3237,
|
|
18890
18910
|
"src": "4247:110:8",
|
|
18891
18911
|
"stateMutability": "view",
|
|
18892
18912
|
"virtual": false,
|
|
@@ -18994,7 +19014,7 @@
|
|
|
18994
19014
|
"stateVariable": false,
|
|
18995
19015
|
"storageLocation": "memory",
|
|
18996
19016
|
"typeDescriptions": {
|
|
18997
|
-
"typeIdentifier": "t_struct$_platform_$
|
|
19017
|
+
"typeIdentifier": "t_struct$_platform_$3316_memory_ptr",
|
|
18998
19018
|
"typeString": "struct ILiquidity.platform"
|
|
18999
19019
|
},
|
|
19000
19020
|
"typeName": {
|
|
@@ -19004,13 +19024,13 @@
|
|
|
19004
19024
|
"id": 2081,
|
|
19005
19025
|
"name": "ILiquidity.platform",
|
|
19006
19026
|
"nodeType": "IdentifierPath",
|
|
19007
|
-
"referencedDeclaration":
|
|
19027
|
+
"referencedDeclaration": 3316,
|
|
19008
19028
|
"src": "4808:19:8"
|
|
19009
19029
|
},
|
|
19010
|
-
"referencedDeclaration":
|
|
19030
|
+
"referencedDeclaration": 3316,
|
|
19011
19031
|
"src": "4808:19:8",
|
|
19012
19032
|
"typeDescriptions": {
|
|
19013
|
-
"typeIdentifier": "t_struct$_platform_$
|
|
19033
|
+
"typeIdentifier": "t_struct$_platform_$3316_storage_ptr",
|
|
19014
19034
|
"typeString": "struct ILiquidity.platform"
|
|
19015
19035
|
}
|
|
19016
19036
|
},
|
|
@@ -19061,10 +19081,10 @@
|
|
|
19061
19081
|
"name": "ILiquidity",
|
|
19062
19082
|
"nodeType": "Identifier",
|
|
19063
19083
|
"overloadedDeclarations": [],
|
|
19064
|
-
"referencedDeclaration":
|
|
19084
|
+
"referencedDeclaration": 3492,
|
|
19065
19085
|
"src": "4839:10:8",
|
|
19066
19086
|
"typeDescriptions": {
|
|
19067
|
-
"typeIdentifier": "t_type$_t_contract$_ILiquidity_$
|
|
19087
|
+
"typeIdentifier": "t_type$_t_contract$_ILiquidity_$3492_$",
|
|
19068
19088
|
"typeString": "type(contract ILiquidity)"
|
|
19069
19089
|
}
|
|
19070
19090
|
},
|
|
@@ -19075,10 +19095,10 @@
|
|
|
19075
19095
|
"lValueRequested": false,
|
|
19076
19096
|
"memberName": "platform",
|
|
19077
19097
|
"nodeType": "MemberAccess",
|
|
19078
|
-
"referencedDeclaration":
|
|
19098
|
+
"referencedDeclaration": 3316,
|
|
19079
19099
|
"src": "4839:19:8",
|
|
19080
19100
|
"typeDescriptions": {
|
|
19081
|
-
"typeIdentifier": "t_type$_t_struct$_platform_$
|
|
19101
|
+
"typeIdentifier": "t_type$_t_struct$_platform_$3316_storage_ptr_$",
|
|
19082
19102
|
"typeString": "type(struct ILiquidity.platform storage pointer)"
|
|
19083
19103
|
}
|
|
19084
19104
|
},
|
|
@@ -19096,7 +19116,7 @@
|
|
|
19096
19116
|
"src": "4839:136:8",
|
|
19097
19117
|
"tryCall": false,
|
|
19098
19118
|
"typeDescriptions": {
|
|
19099
|
-
"typeIdentifier": "t_struct$_platform_$
|
|
19119
|
+
"typeIdentifier": "t_struct$_platform_$3316_memory_ptr",
|
|
19100
19120
|
"typeString": "struct ILiquidity.platform memory"
|
|
19101
19121
|
}
|
|
19102
19122
|
},
|
|
@@ -19114,7 +19134,7 @@
|
|
|
19114
19134
|
"referencedDeclaration": 2083,
|
|
19115
19135
|
"src": "5005:1:8",
|
|
19116
19136
|
"typeDescriptions": {
|
|
19117
|
-
"typeIdentifier": "t_struct$_platform_$
|
|
19137
|
+
"typeIdentifier": "t_struct$_platform_$3316_memory_ptr",
|
|
19118
19138
|
"typeString": "struct ILiquidity.platform memory"
|
|
19119
19139
|
}
|
|
19120
19140
|
}
|
|
@@ -19122,7 +19142,7 @@
|
|
|
19122
19142
|
"expression": {
|
|
19123
19143
|
"argumentTypes": [
|
|
19124
19144
|
{
|
|
19125
|
-
"typeIdentifier": "t_struct$_platform_$
|
|
19145
|
+
"typeIdentifier": "t_struct$_platform_$3316_memory_ptr",
|
|
19126
19146
|
"typeString": "struct ILiquidity.platform memory"
|
|
19127
19147
|
}
|
|
19128
19148
|
],
|
|
@@ -19134,7 +19154,7 @@
|
|
|
19134
19154
|
"referencedDeclaration": 1825,
|
|
19135
19155
|
"src": "4990:9:8",
|
|
19136
19156
|
"typeDescriptions": {
|
|
19137
|
-
"typeIdentifier": "t_array$_t_struct$_platform_$
|
|
19157
|
+
"typeIdentifier": "t_array$_t_struct$_platform_$3316_storage_$dyn_storage",
|
|
19138
19158
|
"typeString": "struct ILiquidity.platform storage ref[] storage ref"
|
|
19139
19159
|
}
|
|
19140
19160
|
},
|
|
@@ -19147,7 +19167,7 @@
|
|
|
19147
19167
|
"nodeType": "MemberAccess",
|
|
19148
19168
|
"src": "4990:14:8",
|
|
19149
19169
|
"typeDescriptions": {
|
|
19150
|
-
"typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_platform_$
|
|
19170
|
+
"typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_platform_$3316_storage_$returns$__$",
|
|
19151
19171
|
"typeString": "function (struct ILiquidity.platform storage ref)"
|
|
19152
19172
|
}
|
|
19153
19173
|
},
|
|
@@ -19225,7 +19245,7 @@
|
|
|
19225
19245
|
"referencedDeclaration": 1825,
|
|
19226
19246
|
"src": "5058:9:8",
|
|
19227
19247
|
"typeDescriptions": {
|
|
19228
|
-
"typeIdentifier": "t_array$_t_struct$_platform_$
|
|
19248
|
+
"typeIdentifier": "t_array$_t_struct$_platform_$3316_storage_$dyn_storage",
|
|
19229
19249
|
"typeString": "struct ILiquidity.platform storage ref[] storage ref"
|
|
19230
19250
|
}
|
|
19231
19251
|
},
|
|
@@ -19349,7 +19369,7 @@
|
|
|
19349
19369
|
"parameters": [],
|
|
19350
19370
|
"src": "4742:0:8"
|
|
19351
19371
|
},
|
|
19352
|
-
"scope":
|
|
19372
|
+
"scope": 3237,
|
|
19353
19373
|
"src": "4646:447:8",
|
|
19354
19374
|
"stateMutability": "nonpayable",
|
|
19355
19375
|
"virtual": false,
|
|
@@ -19370,7 +19390,7 @@
|
|
|
19370
19390
|
"referencedDeclaration": 1825,
|
|
19371
19391
|
"src": "5269:9:8",
|
|
19372
19392
|
"typeDescriptions": {
|
|
19373
|
-
"typeIdentifier": "t_array$_t_struct$_platform_$
|
|
19393
|
+
"typeIdentifier": "t_array$_t_struct$_platform_$3316_storage_$dyn_storage",
|
|
19374
19394
|
"typeString": "struct ILiquidity.platform storage ref[] storage ref"
|
|
19375
19395
|
}
|
|
19376
19396
|
},
|
|
@@ -19428,7 +19448,7 @@
|
|
|
19428
19448
|
"stateVariable": false,
|
|
19429
19449
|
"storageLocation": "memory",
|
|
19430
19450
|
"typeDescriptions": {
|
|
19431
|
-
"typeIdentifier": "t_array$_t_struct$_platform_$
|
|
19451
|
+
"typeIdentifier": "t_array$_t_struct$_platform_$3316_memory_ptr_$dyn_memory_ptr",
|
|
19432
19452
|
"typeString": "struct ILiquidity.platform[]"
|
|
19433
19453
|
},
|
|
19434
19454
|
"typeName": {
|
|
@@ -19439,13 +19459,13 @@
|
|
|
19439
19459
|
"id": 2111,
|
|
19440
19460
|
"name": "ILiquidity.platform",
|
|
19441
19461
|
"nodeType": "IdentifierPath",
|
|
19442
|
-
"referencedDeclaration":
|
|
19462
|
+
"referencedDeclaration": 3316,
|
|
19443
19463
|
"src": "5222:19:8"
|
|
19444
19464
|
},
|
|
19445
|
-
"referencedDeclaration":
|
|
19465
|
+
"referencedDeclaration": 3316,
|
|
19446
19466
|
"src": "5222:19:8",
|
|
19447
19467
|
"typeDescriptions": {
|
|
19448
|
-
"typeIdentifier": "t_struct$_platform_$
|
|
19468
|
+
"typeIdentifier": "t_struct$_platform_$3316_storage_ptr",
|
|
19449
19469
|
"typeString": "struct ILiquidity.platform"
|
|
19450
19470
|
}
|
|
19451
19471
|
},
|
|
@@ -19453,7 +19473,7 @@
|
|
|
19453
19473
|
"nodeType": "ArrayTypeName",
|
|
19454
19474
|
"src": "5222:21:8",
|
|
19455
19475
|
"typeDescriptions": {
|
|
19456
|
-
"typeIdentifier": "t_array$_t_struct$_platform_$
|
|
19476
|
+
"typeIdentifier": "t_array$_t_struct$_platform_$3316_storage_$dyn_storage_ptr",
|
|
19457
19477
|
"typeString": "struct ILiquidity.platform[]"
|
|
19458
19478
|
}
|
|
19459
19479
|
},
|
|
@@ -19462,7 +19482,7 @@
|
|
|
19462
19482
|
],
|
|
19463
19483
|
"src": "5221:30:8"
|
|
19464
19484
|
},
|
|
19465
|
-
"scope":
|
|
19485
|
+
"scope": 3237,
|
|
19466
19486
|
"src": "5166:120:8",
|
|
19467
19487
|
"stateMutability": "view",
|
|
19468
19488
|
"virtual": false,
|
|
@@ -19901,7 +19921,7 @@
|
|
|
19901
19921
|
"parameters": [],
|
|
19902
19922
|
"src": "5570:0:8"
|
|
19903
19923
|
},
|
|
19904
|
-
"scope":
|
|
19924
|
+
"scope": 3237,
|
|
19905
19925
|
"src": "5495:271:8",
|
|
19906
19926
|
"stateMutability": "nonpayable",
|
|
19907
19927
|
"virtual": false,
|
|
@@ -22054,7 +22074,7 @@
|
|
|
22054
22074
|
"parameters": [],
|
|
22055
22075
|
"src": "6054:0:8"
|
|
22056
22076
|
},
|
|
22057
|
-
"scope":
|
|
22077
|
+
"scope": 3237,
|
|
22058
22078
|
"src": "5976:1314:8",
|
|
22059
22079
|
"stateMutability": "nonpayable",
|
|
22060
22080
|
"virtual": false,
|
|
@@ -22214,7 +22234,7 @@
|
|
|
22214
22234
|
],
|
|
22215
22235
|
"src": "7502:18:8"
|
|
22216
22236
|
},
|
|
22217
|
-
"scope":
|
|
22237
|
+
"scope": 3237,
|
|
22218
22238
|
"src": "7431:134:8",
|
|
22219
22239
|
"stateMutability": "view",
|
|
22220
22240
|
"virtual": false,
|
|
@@ -23038,7 +23058,7 @@
|
|
|
23038
23058
|
"stateVariable": false,
|
|
23039
23059
|
"storageLocation": "memory",
|
|
23040
23060
|
"typeDescriptions": {
|
|
23041
|
-
"typeIdentifier": "t_struct$_provider_$
|
|
23061
|
+
"typeIdentifier": "t_struct$_provider_$3326_memory_ptr",
|
|
23042
23062
|
"typeString": "struct ILiquidity.provider"
|
|
23043
23063
|
},
|
|
23044
23064
|
"typeName": {
|
|
@@ -23048,13 +23068,13 @@
|
|
|
23048
23068
|
"id": 2412,
|
|
23049
23069
|
"name": "ILiquidity.provider",
|
|
23050
23070
|
"nodeType": "IdentifierPath",
|
|
23051
|
-
"referencedDeclaration":
|
|
23071
|
+
"referencedDeclaration": 3326,
|
|
23052
23072
|
"src": "8216:19:8"
|
|
23053
23073
|
},
|
|
23054
|
-
"referencedDeclaration":
|
|
23074
|
+
"referencedDeclaration": 3326,
|
|
23055
23075
|
"src": "8216:19:8",
|
|
23056
23076
|
"typeDescriptions": {
|
|
23057
|
-
"typeIdentifier": "t_struct$_provider_$
|
|
23077
|
+
"typeIdentifier": "t_struct$_provider_$3326_storage_ptr",
|
|
23058
23078
|
"typeString": "struct ILiquidity.provider"
|
|
23059
23079
|
}
|
|
23060
23080
|
},
|
|
@@ -23167,10 +23187,10 @@
|
|
|
23167
23187
|
"name": "ILiquidity",
|
|
23168
23188
|
"nodeType": "Identifier",
|
|
23169
23189
|
"overloadedDeclarations": [],
|
|
23170
|
-
"referencedDeclaration":
|
|
23190
|
+
"referencedDeclaration": 3492,
|
|
23171
23191
|
"src": "8248:10:8",
|
|
23172
23192
|
"typeDescriptions": {
|
|
23173
|
-
"typeIdentifier": "t_type$_t_contract$_ILiquidity_$
|
|
23193
|
+
"typeIdentifier": "t_type$_t_contract$_ILiquidity_$3492_$",
|
|
23174
23194
|
"typeString": "type(contract ILiquidity)"
|
|
23175
23195
|
}
|
|
23176
23196
|
},
|
|
@@ -23181,10 +23201,10 @@
|
|
|
23181
23201
|
"lValueRequested": false,
|
|
23182
23202
|
"memberName": "provider",
|
|
23183
23203
|
"nodeType": "MemberAccess",
|
|
23184
|
-
"referencedDeclaration":
|
|
23204
|
+
"referencedDeclaration": 3326,
|
|
23185
23205
|
"src": "8248:19:8",
|
|
23186
23206
|
"typeDescriptions": {
|
|
23187
|
-
"typeIdentifier": "t_type$_t_struct$_provider_$
|
|
23207
|
+
"typeIdentifier": "t_type$_t_struct$_provider_$3326_storage_ptr_$",
|
|
23188
23208
|
"typeString": "type(struct ILiquidity.provider storage pointer)"
|
|
23189
23209
|
}
|
|
23190
23210
|
},
|
|
@@ -23202,7 +23222,7 @@
|
|
|
23202
23222
|
"src": "8248:131:8",
|
|
23203
23223
|
"tryCall": false,
|
|
23204
23224
|
"typeDescriptions": {
|
|
23205
|
-
"typeIdentifier": "t_struct$_provider_$
|
|
23225
|
+
"typeIdentifier": "t_struct$_provider_$3326_memory_ptr",
|
|
23206
23226
|
"typeString": "struct ILiquidity.provider memory"
|
|
23207
23227
|
}
|
|
23208
23228
|
},
|
|
@@ -23220,7 +23240,7 @@
|
|
|
23220
23240
|
"referencedDeclaration": 2414,
|
|
23221
23241
|
"src": "8403:2:8",
|
|
23222
23242
|
"typeDescriptions": {
|
|
23223
|
-
"typeIdentifier": "t_struct$_provider_$
|
|
23243
|
+
"typeIdentifier": "t_struct$_provider_$3326_memory_ptr",
|
|
23224
23244
|
"typeString": "struct ILiquidity.provider memory"
|
|
23225
23245
|
}
|
|
23226
23246
|
}
|
|
@@ -23228,7 +23248,7 @@
|
|
|
23228
23248
|
"expression": {
|
|
23229
23249
|
"argumentTypes": [
|
|
23230
23250
|
{
|
|
23231
|
-
"typeIdentifier": "t_struct$_provider_$
|
|
23251
|
+
"typeIdentifier": "t_struct$_provider_$3326_memory_ptr",
|
|
23232
23252
|
"typeString": "struct ILiquidity.provider memory"
|
|
23233
23253
|
}
|
|
23234
23254
|
],
|
|
@@ -23240,7 +23260,7 @@
|
|
|
23240
23260
|
"referencedDeclaration": 1841,
|
|
23241
23261
|
"src": "8394:3:8",
|
|
23242
23262
|
"typeDescriptions": {
|
|
23243
|
-
"typeIdentifier": "t_array$_t_struct$_provider_$
|
|
23263
|
+
"typeIdentifier": "t_array$_t_struct$_provider_$3326_storage_$dyn_storage",
|
|
23244
23264
|
"typeString": "struct ILiquidity.provider storage ref[] storage ref"
|
|
23245
23265
|
}
|
|
23246
23266
|
},
|
|
@@ -23253,7 +23273,7 @@
|
|
|
23253
23273
|
"nodeType": "MemberAccess",
|
|
23254
23274
|
"src": "8394:8:8",
|
|
23255
23275
|
"typeDescriptions": {
|
|
23256
|
-
"typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_provider_$
|
|
23276
|
+
"typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_provider_$3326_storage_$returns$__$",
|
|
23257
23277
|
"typeString": "function (struct ILiquidity.provider storage ref)"
|
|
23258
23278
|
}
|
|
23259
23279
|
},
|
|
@@ -23642,7 +23662,7 @@
|
|
|
23642
23662
|
"parameters": [],
|
|
23643
23663
|
"src": "7685:0:8"
|
|
23644
23664
|
},
|
|
23645
|
-
"scope":
|
|
23665
|
+
"scope": 3237,
|
|
23646
23666
|
"src": "7659:912:8",
|
|
23647
23667
|
"stateMutability": "payable",
|
|
23648
23668
|
"virtual": false,
|
|
@@ -24306,7 +24326,7 @@
|
|
|
24306
24326
|
"referencedDeclaration": 4294967268,
|
|
24307
24327
|
"src": "9353:4:8",
|
|
24308
24328
|
"typeDescriptions": {
|
|
24309
|
-
"typeIdentifier": "t_contract$_Liquidity_$
|
|
24329
|
+
"typeIdentifier": "t_contract$_Liquidity_$3237",
|
|
24310
24330
|
"typeString": "contract Liquidity"
|
|
24311
24331
|
}
|
|
24312
24332
|
}
|
|
@@ -24314,7 +24334,7 @@
|
|
|
24314
24334
|
"expression": {
|
|
24315
24335
|
"argumentTypes": [
|
|
24316
24336
|
{
|
|
24317
|
-
"typeIdentifier": "t_contract$_Liquidity_$
|
|
24337
|
+
"typeIdentifier": "t_contract$_Liquidity_$3237",
|
|
24318
24338
|
"typeString": "contract Liquidity"
|
|
24319
24339
|
}
|
|
24320
24340
|
],
|
|
@@ -24852,7 +24872,7 @@
|
|
|
24852
24872
|
"stateVariable": false,
|
|
24853
24873
|
"storageLocation": "memory",
|
|
24854
24874
|
"typeDescriptions": {
|
|
24855
|
-
"typeIdentifier": "t_struct$_provider_$
|
|
24875
|
+
"typeIdentifier": "t_struct$_provider_$3326_memory_ptr",
|
|
24856
24876
|
"typeString": "struct ILiquidity.provider"
|
|
24857
24877
|
},
|
|
24858
24878
|
"typeName": {
|
|
@@ -24862,13 +24882,13 @@
|
|
|
24862
24882
|
"id": 2549,
|
|
24863
24883
|
"name": "ILiquidity.provider",
|
|
24864
24884
|
"nodeType": "IdentifierPath",
|
|
24865
|
-
"referencedDeclaration":
|
|
24885
|
+
"referencedDeclaration": 3326,
|
|
24866
24886
|
"src": "9552:19:8"
|
|
24867
24887
|
},
|
|
24868
|
-
"referencedDeclaration":
|
|
24888
|
+
"referencedDeclaration": 3326,
|
|
24869
24889
|
"src": "9552:19:8",
|
|
24870
24890
|
"typeDescriptions": {
|
|
24871
|
-
"typeIdentifier": "t_struct$_provider_$
|
|
24891
|
+
"typeIdentifier": "t_struct$_provider_$3326_storage_ptr",
|
|
24872
24892
|
"typeString": "struct ILiquidity.provider"
|
|
24873
24893
|
}
|
|
24874
24894
|
},
|
|
@@ -25002,10 +25022,10 @@
|
|
|
25002
25022
|
"name": "ILiquidity",
|
|
25003
25023
|
"nodeType": "Identifier",
|
|
25004
25024
|
"overloadedDeclarations": [],
|
|
25005
|
-
"referencedDeclaration":
|
|
25025
|
+
"referencedDeclaration": 3492,
|
|
25006
25026
|
"src": "9584:10:8",
|
|
25007
25027
|
"typeDescriptions": {
|
|
25008
|
-
"typeIdentifier": "t_type$_t_contract$_ILiquidity_$
|
|
25028
|
+
"typeIdentifier": "t_type$_t_contract$_ILiquidity_$3492_$",
|
|
25009
25029
|
"typeString": "type(contract ILiquidity)"
|
|
25010
25030
|
}
|
|
25011
25031
|
},
|
|
@@ -25016,10 +25036,10 @@
|
|
|
25016
25036
|
"lValueRequested": false,
|
|
25017
25037
|
"memberName": "provider",
|
|
25018
25038
|
"nodeType": "MemberAccess",
|
|
25019
|
-
"referencedDeclaration":
|
|
25039
|
+
"referencedDeclaration": 3326,
|
|
25020
25040
|
"src": "9584:19:8",
|
|
25021
25041
|
"typeDescriptions": {
|
|
25022
|
-
"typeIdentifier": "t_type$_t_struct$_provider_$
|
|
25042
|
+
"typeIdentifier": "t_type$_t_struct$_provider_$3326_storage_ptr_$",
|
|
25023
25043
|
"typeString": "type(struct ILiquidity.provider storage pointer)"
|
|
25024
25044
|
}
|
|
25025
25045
|
},
|
|
@@ -25037,7 +25057,7 @@
|
|
|
25037
25057
|
"src": "9584:160:8",
|
|
25038
25058
|
"tryCall": false,
|
|
25039
25059
|
"typeDescriptions": {
|
|
25040
|
-
"typeIdentifier": "t_struct$_provider_$
|
|
25060
|
+
"typeIdentifier": "t_struct$_provider_$3326_memory_ptr",
|
|
25041
25061
|
"typeString": "struct ILiquidity.provider memory"
|
|
25042
25062
|
}
|
|
25043
25063
|
},
|
|
@@ -25055,7 +25075,7 @@
|
|
|
25055
25075
|
"referencedDeclaration": 2551,
|
|
25056
25076
|
"src": "9776:2:8",
|
|
25057
25077
|
"typeDescriptions": {
|
|
25058
|
-
"typeIdentifier": "t_struct$_provider_$
|
|
25078
|
+
"typeIdentifier": "t_struct$_provider_$3326_memory_ptr",
|
|
25059
25079
|
"typeString": "struct ILiquidity.provider memory"
|
|
25060
25080
|
}
|
|
25061
25081
|
}
|
|
@@ -25063,7 +25083,7 @@
|
|
|
25063
25083
|
"expression": {
|
|
25064
25084
|
"argumentTypes": [
|
|
25065
25085
|
{
|
|
25066
|
-
"typeIdentifier": "t_struct$_provider_$
|
|
25086
|
+
"typeIdentifier": "t_struct$_provider_$3326_memory_ptr",
|
|
25067
25087
|
"typeString": "struct ILiquidity.provider memory"
|
|
25068
25088
|
}
|
|
25069
25089
|
],
|
|
@@ -25075,7 +25095,7 @@
|
|
|
25075
25095
|
"referencedDeclaration": 1841,
|
|
25076
25096
|
"src": "9767:3:8",
|
|
25077
25097
|
"typeDescriptions": {
|
|
25078
|
-
"typeIdentifier": "t_array$_t_struct$_provider_$
|
|
25098
|
+
"typeIdentifier": "t_array$_t_struct$_provider_$3326_storage_$dyn_storage",
|
|
25079
25099
|
"typeString": "struct ILiquidity.provider storage ref[] storage ref"
|
|
25080
25100
|
}
|
|
25081
25101
|
},
|
|
@@ -25088,7 +25108,7 @@
|
|
|
25088
25108
|
"nodeType": "MemberAccess",
|
|
25089
25109
|
"src": "9767:8:8",
|
|
25090
25110
|
"typeDescriptions": {
|
|
25091
|
-
"typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_provider_$
|
|
25111
|
+
"typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_provider_$3326_storage_$returns$__$",
|
|
25092
25112
|
"typeString": "function (struct ILiquidity.provider storage ref)"
|
|
25093
25113
|
}
|
|
25094
25114
|
},
|
|
@@ -25845,7 +25865,7 @@
|
|
|
25845
25865
|
"parameters": [],
|
|
25846
25866
|
"src": "8948:0:8"
|
|
25847
25867
|
},
|
|
25848
|
-
"scope":
|
|
25868
|
+
"scope": 3237,
|
|
25849
25869
|
"src": "8893:1205:8",
|
|
25850
25870
|
"stateMutability": "nonpayable",
|
|
25851
25871
|
"virtual": false,
|
|
@@ -25866,7 +25886,7 @@
|
|
|
25866
25886
|
"referencedDeclaration": 1841,
|
|
25867
25887
|
"src": "10263:3:8",
|
|
25868
25888
|
"typeDescriptions": {
|
|
25869
|
-
"typeIdentifier": "t_array$_t_struct$_provider_$
|
|
25889
|
+
"typeIdentifier": "t_array$_t_struct$_provider_$3326_storage_$dyn_storage",
|
|
25870
25890
|
"typeString": "struct ILiquidity.provider storage ref[] storage ref"
|
|
25871
25891
|
}
|
|
25872
25892
|
},
|
|
@@ -25924,7 +25944,7 @@
|
|
|
25924
25944
|
"stateVariable": false,
|
|
25925
25945
|
"storageLocation": "memory",
|
|
25926
25946
|
"typeDescriptions": {
|
|
25927
|
-
"typeIdentifier": "t_array$_t_struct$_provider_$
|
|
25947
|
+
"typeIdentifier": "t_array$_t_struct$_provider_$3326_memory_ptr_$dyn_memory_ptr",
|
|
25928
25948
|
"typeString": "struct ILiquidity.provider[]"
|
|
25929
25949
|
},
|
|
25930
25950
|
"typeName": {
|
|
@@ -25935,13 +25955,13 @@
|
|
|
25935
25955
|
"id": 2627,
|
|
25936
25956
|
"name": "ILiquidity.provider",
|
|
25937
25957
|
"nodeType": "IdentifierPath",
|
|
25938
|
-
"referencedDeclaration":
|
|
25958
|
+
"referencedDeclaration": 3326,
|
|
25939
25959
|
"src": "10216:19:8"
|
|
25940
25960
|
},
|
|
25941
|
-
"referencedDeclaration":
|
|
25961
|
+
"referencedDeclaration": 3326,
|
|
25942
25962
|
"src": "10216:19:8",
|
|
25943
25963
|
"typeDescriptions": {
|
|
25944
|
-
"typeIdentifier": "t_struct$_provider_$
|
|
25964
|
+
"typeIdentifier": "t_struct$_provider_$3326_storage_ptr",
|
|
25945
25965
|
"typeString": "struct ILiquidity.provider"
|
|
25946
25966
|
}
|
|
25947
25967
|
},
|
|
@@ -25949,7 +25969,7 @@
|
|
|
25949
25969
|
"nodeType": "ArrayTypeName",
|
|
25950
25970
|
"src": "10216:21:8",
|
|
25951
25971
|
"typeDescriptions": {
|
|
25952
|
-
"typeIdentifier": "t_array$_t_struct$_provider_$
|
|
25972
|
+
"typeIdentifier": "t_array$_t_struct$_provider_$3326_storage_$dyn_storage_ptr",
|
|
25953
25973
|
"typeString": "struct ILiquidity.provider[]"
|
|
25954
25974
|
}
|
|
25955
25975
|
},
|
|
@@ -25958,7 +25978,7 @@
|
|
|
25958
25978
|
],
|
|
25959
25979
|
"src": "10215:30:8"
|
|
25960
25980
|
},
|
|
25961
|
-
"scope":
|
|
25981
|
+
"scope": 3237,
|
|
25962
25982
|
"src": "10160:114:8",
|
|
25963
25983
|
"stateMutability": "view",
|
|
25964
25984
|
"virtual": false,
|
|
@@ -26190,7 +26210,7 @@
|
|
|
26190
26210
|
],
|
|
26191
26211
|
"src": "10578:9:8"
|
|
26192
26212
|
},
|
|
26193
|
-
"scope":
|
|
26213
|
+
"scope": 3237,
|
|
26194
26214
|
"src": "10479:180:8",
|
|
26195
26215
|
"stateMutability": "view",
|
|
26196
26216
|
"virtual": false,
|
|
@@ -27480,7 +27500,7 @@
|
|
|
27480
27500
|
"referencedDeclaration": 4294967268,
|
|
27481
27501
|
"src": "12561:4:8",
|
|
27482
27502
|
"typeDescriptions": {
|
|
27483
|
-
"typeIdentifier": "t_contract$_Liquidity_$
|
|
27503
|
+
"typeIdentifier": "t_contract$_Liquidity_$3237",
|
|
27484
27504
|
"typeString": "contract Liquidity"
|
|
27485
27505
|
}
|
|
27486
27506
|
}
|
|
@@ -27488,7 +27508,7 @@
|
|
|
27488
27508
|
"expression": {
|
|
27489
27509
|
"argumentTypes": [
|
|
27490
27510
|
{
|
|
27491
|
-
"typeIdentifier": "t_contract$_Liquidity_$
|
|
27511
|
+
"typeIdentifier": "t_contract$_Liquidity_$3237",
|
|
27492
27512
|
"typeString": "contract Liquidity"
|
|
27493
27513
|
}
|
|
27494
27514
|
],
|
|
@@ -28242,7 +28262,7 @@
|
|
|
28242
28262
|
"referencedDeclaration": 4294967268,
|
|
28243
28263
|
"src": "11707:4:8",
|
|
28244
28264
|
"typeDescriptions": {
|
|
28245
|
-
"typeIdentifier": "t_contract$_Liquidity_$
|
|
28265
|
+
"typeIdentifier": "t_contract$_Liquidity_$3237",
|
|
28246
28266
|
"typeString": "contract Liquidity"
|
|
28247
28267
|
}
|
|
28248
28268
|
}
|
|
@@ -28250,7 +28270,7 @@
|
|
|
28250
28270
|
"expression": {
|
|
28251
28271
|
"argumentTypes": [
|
|
28252
28272
|
{
|
|
28253
|
-
"typeIdentifier": "t_contract$_Liquidity_$
|
|
28273
|
+
"typeIdentifier": "t_contract$_Liquidity_$3237",
|
|
28254
28274
|
"typeString": "contract Liquidity"
|
|
28255
28275
|
}
|
|
28256
28276
|
],
|
|
@@ -28671,7 +28691,7 @@
|
|
|
28671
28691
|
"parameters": [],
|
|
28672
28692
|
"src": "11180:0:8"
|
|
28673
28693
|
},
|
|
28674
|
-
"scope":
|
|
28694
|
+
"scope": 3237,
|
|
28675
28695
|
"src": "11059:1644:8",
|
|
28676
28696
|
"stateMutability": "nonpayable",
|
|
28677
28697
|
"virtual": false,
|
|
@@ -29036,10 +29056,10 @@
|
|
|
29036
29056
|
"name": "IMarketMaker",
|
|
29037
29057
|
"nodeType": "Identifier",
|
|
29038
29058
|
"overloadedDeclarations": [],
|
|
29039
|
-
"referencedDeclaration":
|
|
29059
|
+
"referencedDeclaration": 3604,
|
|
29040
29060
|
"src": "14950:12:8",
|
|
29041
29061
|
"typeDescriptions": {
|
|
29042
|
-
"typeIdentifier": "t_type$_t_contract$_IMarketMaker_$
|
|
29062
|
+
"typeIdentifier": "t_type$_t_contract$_IMarketMaker_$3604_$",
|
|
29043
29063
|
"typeString": "type(contract IMarketMaker)"
|
|
29044
29064
|
}
|
|
29045
29065
|
},
|
|
@@ -29054,7 +29074,7 @@
|
|
|
29054
29074
|
"src": "14950:23:8",
|
|
29055
29075
|
"tryCall": false,
|
|
29056
29076
|
"typeDescriptions": {
|
|
29057
|
-
"typeIdentifier": "t_contract$_IMarketMaker_$
|
|
29077
|
+
"typeIdentifier": "t_contract$_IMarketMaker_$3604",
|
|
29058
29078
|
"typeString": "contract IMarketMaker"
|
|
29059
29079
|
}
|
|
29060
29080
|
},
|
|
@@ -29065,7 +29085,7 @@
|
|
|
29065
29085
|
"lValueRequested": false,
|
|
29066
29086
|
"memberName": "stake",
|
|
29067
29087
|
"nodeType": "MemberAccess",
|
|
29068
|
-
"referencedDeclaration":
|
|
29088
|
+
"referencedDeclaration": 3603,
|
|
29069
29089
|
"src": "14950:29:8",
|
|
29070
29090
|
"typeDescriptions": {
|
|
29071
29091
|
"typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_address_$returns$__$",
|
|
@@ -29737,7 +29757,7 @@
|
|
|
29737
29757
|
"referencedDeclaration": 4294967268,
|
|
29738
29758
|
"src": "15549:4:8",
|
|
29739
29759
|
"typeDescriptions": {
|
|
29740
|
-
"typeIdentifier": "t_contract$_Liquidity_$
|
|
29760
|
+
"typeIdentifier": "t_contract$_Liquidity_$3237",
|
|
29741
29761
|
"typeString": "contract Liquidity"
|
|
29742
29762
|
}
|
|
29743
29763
|
}
|
|
@@ -29745,7 +29765,7 @@
|
|
|
29745
29765
|
"expression": {
|
|
29746
29766
|
"argumentTypes": [
|
|
29747
29767
|
{
|
|
29748
|
-
"typeIdentifier": "t_contract$_Liquidity_$
|
|
29768
|
+
"typeIdentifier": "t_contract$_Liquidity_$3237",
|
|
29749
29769
|
"typeString": "contract Liquidity"
|
|
29750
29770
|
}
|
|
29751
29771
|
],
|
|
@@ -29887,7 +29907,7 @@
|
|
|
29887
29907
|
"referencedDeclaration": 4294967268,
|
|
29888
29908
|
"src": "15626:4:8",
|
|
29889
29909
|
"typeDescriptions": {
|
|
29890
|
-
"typeIdentifier": "t_contract$_Liquidity_$
|
|
29910
|
+
"typeIdentifier": "t_contract$_Liquidity_$3237",
|
|
29891
29911
|
"typeString": "contract Liquidity"
|
|
29892
29912
|
}
|
|
29893
29913
|
}
|
|
@@ -29895,7 +29915,7 @@
|
|
|
29895
29915
|
"expression": {
|
|
29896
29916
|
"argumentTypes": [
|
|
29897
29917
|
{
|
|
29898
|
-
"typeIdentifier": "t_contract$_Liquidity_$
|
|
29918
|
+
"typeIdentifier": "t_contract$_Liquidity_$3237",
|
|
29899
29919
|
"typeString": "contract Liquidity"
|
|
29900
29920
|
}
|
|
29901
29921
|
],
|
|
@@ -30178,7 +30198,7 @@
|
|
|
30178
30198
|
"parameters": [],
|
|
30179
30199
|
"src": "14792:0:8"
|
|
30180
30200
|
},
|
|
30181
|
-
"scope":
|
|
30201
|
+
"scope": 3237,
|
|
30182
30202
|
"src": "14690:988:8",
|
|
30183
30203
|
"stateMutability": "nonpayable",
|
|
30184
30204
|
"virtual": false,
|
|
@@ -31387,7 +31407,7 @@
|
|
|
31387
31407
|
"parameters": [],
|
|
31388
31408
|
"src": "16177:0:8"
|
|
31389
31409
|
},
|
|
31390
|
-
"scope":
|
|
31410
|
+
"scope": 3237,
|
|
31391
31411
|
"src": "16091:586:8",
|
|
31392
31412
|
"stateMutability": "nonpayable",
|
|
31393
31413
|
"virtual": false,
|
|
@@ -32028,7 +32048,7 @@
|
|
|
32028
32048
|
],
|
|
32029
32049
|
"src": "16905:399:8"
|
|
32030
32050
|
},
|
|
32031
|
-
"scope":
|
|
32051
|
+
"scope": 3237,
|
|
32032
32052
|
"src": "16823:822:8",
|
|
32033
32053
|
"stateMutability": "view",
|
|
32034
32054
|
"virtual": false,
|
|
@@ -32539,7 +32559,7 @@
|
|
|
32539
32559
|
],
|
|
32540
32560
|
"src": "17994:153:8"
|
|
32541
32561
|
},
|
|
32542
|
-
"scope":
|
|
32562
|
+
"scope": 3237,
|
|
32543
32563
|
"src": "17879:546:8",
|
|
32544
32564
|
"stateMutability": "view",
|
|
32545
32565
|
"virtual": false,
|
|
@@ -32894,7 +32914,7 @@
|
|
|
32894
32914
|
"referencedDeclaration": 1841,
|
|
32895
32915
|
"src": "19019:3:8",
|
|
32896
32916
|
"typeDescriptions": {
|
|
32897
|
-
"typeIdentifier": "t_array$_t_struct$_provider_$
|
|
32917
|
+
"typeIdentifier": "t_array$_t_struct$_provider_$3326_storage_$dyn_storage",
|
|
32898
32918
|
"typeString": "struct ILiquidity.provider storage ref[] storage ref"
|
|
32899
32919
|
}
|
|
32900
32920
|
},
|
|
@@ -32918,7 +32938,7 @@
|
|
|
32918
32938
|
"nodeType": "IndexAccess",
|
|
32919
32939
|
"src": "19019:6:8",
|
|
32920
32940
|
"typeDescriptions": {
|
|
32921
|
-
"typeIdentifier": "t_struct$_provider_$
|
|
32941
|
+
"typeIdentifier": "t_struct$_provider_$3326_storage",
|
|
32922
32942
|
"typeString": "struct ILiquidity.provider storage ref"
|
|
32923
32943
|
}
|
|
32924
32944
|
},
|
|
@@ -32929,7 +32949,7 @@
|
|
|
32929
32949
|
"lValueRequested": false,
|
|
32930
32950
|
"memberName": "investorAddress",
|
|
32931
32951
|
"nodeType": "MemberAccess",
|
|
32932
|
-
"referencedDeclaration":
|
|
32952
|
+
"referencedDeclaration": 3325,
|
|
32933
32953
|
"src": "19019:22:8",
|
|
32934
32954
|
"typeDescriptions": {
|
|
32935
32955
|
"typeIdentifier": "t_address",
|
|
@@ -33072,7 +33092,7 @@
|
|
|
33072
33092
|
"referencedDeclaration": 1841,
|
|
33073
33093
|
"src": "19100:3:8",
|
|
33074
33094
|
"typeDescriptions": {
|
|
33075
|
-
"typeIdentifier": "t_array$_t_struct$_provider_$
|
|
33095
|
+
"typeIdentifier": "t_array$_t_struct$_provider_$3326_storage_$dyn_storage",
|
|
33076
33096
|
"typeString": "struct ILiquidity.provider storage ref[] storage ref"
|
|
33077
33097
|
}
|
|
33078
33098
|
},
|
|
@@ -33096,7 +33116,7 @@
|
|
|
33096
33116
|
"nodeType": "IndexAccess",
|
|
33097
33117
|
"src": "19100:6:8",
|
|
33098
33118
|
"typeDescriptions": {
|
|
33099
|
-
"typeIdentifier": "t_struct$_provider_$
|
|
33119
|
+
"typeIdentifier": "t_struct$_provider_$3326_storage",
|
|
33100
33120
|
"typeString": "struct ILiquidity.provider storage ref"
|
|
33101
33121
|
}
|
|
33102
33122
|
},
|
|
@@ -33107,7 +33127,7 @@
|
|
|
33107
33127
|
"lValueRequested": false,
|
|
33108
33128
|
"memberName": "investorAddress",
|
|
33109
33129
|
"nodeType": "MemberAccess",
|
|
33110
|
-
"referencedDeclaration":
|
|
33130
|
+
"referencedDeclaration": 3325,
|
|
33111
33131
|
"src": "19100:22:8",
|
|
33112
33132
|
"typeDescriptions": {
|
|
33113
33133
|
"typeIdentifier": "t_address",
|
|
@@ -33274,7 +33294,7 @@
|
|
|
33274
33294
|
"referencedDeclaration": 1841,
|
|
33275
33295
|
"src": "18945:3:8",
|
|
33276
33296
|
"typeDescriptions": {
|
|
33277
|
-
"typeIdentifier": "t_array$_t_struct$_provider_$
|
|
33297
|
+
"typeIdentifier": "t_array$_t_struct$_provider_$3326_storage_$dyn_storage",
|
|
33278
33298
|
"typeString": "struct ILiquidity.provider storage ref[] storage ref"
|
|
33279
33299
|
}
|
|
33280
33300
|
},
|
|
@@ -33479,7 +33499,7 @@
|
|
|
33479
33499
|
"parameters": [],
|
|
33480
33500
|
"src": "18755:0:8"
|
|
33481
33501
|
},
|
|
33482
|
-
"scope":
|
|
33502
|
+
"scope": 3237,
|
|
33483
33503
|
"src": "18678:523:8",
|
|
33484
33504
|
"stateMutability": "nonpayable",
|
|
33485
33505
|
"virtual": false,
|
|
@@ -33487,27 +33507,169 @@
|
|
|
33487
33507
|
},
|
|
33488
33508
|
{
|
|
33489
33509
|
"body": {
|
|
33490
|
-
"id":
|
|
33510
|
+
"id": 3215,
|
|
33511
|
+
"nodeType": "Block",
|
|
33512
|
+
"src": "19290:45:8",
|
|
33513
|
+
"statements": [
|
|
33514
|
+
{
|
|
33515
|
+
"expression": {
|
|
33516
|
+
"arguments": [
|
|
33517
|
+
{
|
|
33518
|
+
"id": 3212,
|
|
33519
|
+
"name": "investor",
|
|
33520
|
+
"nodeType": "Identifier",
|
|
33521
|
+
"overloadedDeclarations": [],
|
|
33522
|
+
"referencedDeclaration": 3206,
|
|
33523
|
+
"src": "19318:8:8",
|
|
33524
|
+
"typeDescriptions": {
|
|
33525
|
+
"typeIdentifier": "t_address",
|
|
33526
|
+
"typeString": "address"
|
|
33527
|
+
}
|
|
33528
|
+
}
|
|
33529
|
+
],
|
|
33530
|
+
"expression": {
|
|
33531
|
+
"argumentTypes": [
|
|
33532
|
+
{
|
|
33533
|
+
"typeIdentifier": "t_address",
|
|
33534
|
+
"typeString": "address"
|
|
33535
|
+
}
|
|
33536
|
+
],
|
|
33537
|
+
"id": 3211,
|
|
33538
|
+
"name": "balanceOf",
|
|
33539
|
+
"nodeType": "Identifier",
|
|
33540
|
+
"overloadedDeclarations": [],
|
|
33541
|
+
"referencedDeclaration": 294,
|
|
33542
|
+
"src": "19308:9:8",
|
|
33543
|
+
"typeDescriptions": {
|
|
33544
|
+
"typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$",
|
|
33545
|
+
"typeString": "function (address) view returns (uint256)"
|
|
33546
|
+
}
|
|
33547
|
+
},
|
|
33548
|
+
"id": 3213,
|
|
33549
|
+
"isConstant": false,
|
|
33550
|
+
"isLValue": false,
|
|
33551
|
+
"isPure": false,
|
|
33552
|
+
"kind": "functionCall",
|
|
33553
|
+
"lValueRequested": false,
|
|
33554
|
+
"names": [],
|
|
33555
|
+
"nodeType": "FunctionCall",
|
|
33556
|
+
"src": "19308:19:8",
|
|
33557
|
+
"tryCall": false,
|
|
33558
|
+
"typeDescriptions": {
|
|
33559
|
+
"typeIdentifier": "t_uint256",
|
|
33560
|
+
"typeString": "uint256"
|
|
33561
|
+
}
|
|
33562
|
+
},
|
|
33563
|
+
"functionReturnParameters": 3210,
|
|
33564
|
+
"id": 3214,
|
|
33565
|
+
"nodeType": "Return",
|
|
33566
|
+
"src": "19301:26:8"
|
|
33567
|
+
}
|
|
33568
|
+
]
|
|
33569
|
+
},
|
|
33570
|
+
"functionSelector": "e3d670d7",
|
|
33571
|
+
"id": 3216,
|
|
33572
|
+
"implemented": true,
|
|
33573
|
+
"kind": "function",
|
|
33574
|
+
"modifiers": [],
|
|
33575
|
+
"name": "balance",
|
|
33576
|
+
"nodeType": "FunctionDefinition",
|
|
33577
|
+
"parameters": {
|
|
33578
|
+
"id": 3207,
|
|
33579
|
+
"nodeType": "ParameterList",
|
|
33580
|
+
"parameters": [
|
|
33581
|
+
{
|
|
33582
|
+
"constant": false,
|
|
33583
|
+
"id": 3206,
|
|
33584
|
+
"mutability": "mutable",
|
|
33585
|
+
"name": "investor",
|
|
33586
|
+
"nodeType": "VariableDeclaration",
|
|
33587
|
+
"scope": 3216,
|
|
33588
|
+
"src": "19226:16:8",
|
|
33589
|
+
"stateVariable": false,
|
|
33590
|
+
"storageLocation": "default",
|
|
33591
|
+
"typeDescriptions": {
|
|
33592
|
+
"typeIdentifier": "t_address",
|
|
33593
|
+
"typeString": "address"
|
|
33594
|
+
},
|
|
33595
|
+
"typeName": {
|
|
33596
|
+
"id": 3205,
|
|
33597
|
+
"name": "address",
|
|
33598
|
+
"nodeType": "ElementaryTypeName",
|
|
33599
|
+
"src": "19226:7:8",
|
|
33600
|
+
"stateMutability": "nonpayable",
|
|
33601
|
+
"typeDescriptions": {
|
|
33602
|
+
"typeIdentifier": "t_address",
|
|
33603
|
+
"typeString": "address"
|
|
33604
|
+
}
|
|
33605
|
+
},
|
|
33606
|
+
"visibility": "internal"
|
|
33607
|
+
}
|
|
33608
|
+
],
|
|
33609
|
+
"src": "19225:18:8"
|
|
33610
|
+
},
|
|
33611
|
+
"returnParameters": {
|
|
33612
|
+
"id": 3210,
|
|
33613
|
+
"nodeType": "ParameterList",
|
|
33614
|
+
"parameters": [
|
|
33615
|
+
{
|
|
33616
|
+
"constant": false,
|
|
33617
|
+
"id": 3209,
|
|
33618
|
+
"mutability": "mutable",
|
|
33619
|
+
"name": "investorBalance",
|
|
33620
|
+
"nodeType": "VariableDeclaration",
|
|
33621
|
+
"scope": 3216,
|
|
33622
|
+
"src": "19266:23:8",
|
|
33623
|
+
"stateVariable": false,
|
|
33624
|
+
"storageLocation": "default",
|
|
33625
|
+
"typeDescriptions": {
|
|
33626
|
+
"typeIdentifier": "t_uint256",
|
|
33627
|
+
"typeString": "uint256"
|
|
33628
|
+
},
|
|
33629
|
+
"typeName": {
|
|
33630
|
+
"id": 3208,
|
|
33631
|
+
"name": "uint256",
|
|
33632
|
+
"nodeType": "ElementaryTypeName",
|
|
33633
|
+
"src": "19266:7:8",
|
|
33634
|
+
"typeDescriptions": {
|
|
33635
|
+
"typeIdentifier": "t_uint256",
|
|
33636
|
+
"typeString": "uint256"
|
|
33637
|
+
}
|
|
33638
|
+
},
|
|
33639
|
+
"visibility": "internal"
|
|
33640
|
+
}
|
|
33641
|
+
],
|
|
33642
|
+
"src": "19265:25:8"
|
|
33643
|
+
},
|
|
33644
|
+
"scope": 3237,
|
|
33645
|
+
"src": "19209:126:8",
|
|
33646
|
+
"stateMutability": "view",
|
|
33647
|
+
"virtual": false,
|
|
33648
|
+
"visibility": "external"
|
|
33649
|
+
},
|
|
33650
|
+
{
|
|
33651
|
+
"body": {
|
|
33652
|
+
"id": 3225,
|
|
33491
33653
|
"nodeType": "Block",
|
|
33492
|
-
"src": "
|
|
33654
|
+
"src": "19425:27:8",
|
|
33493
33655
|
"statements": [
|
|
33494
33656
|
{
|
|
33495
33657
|
"expression": {
|
|
33496
33658
|
"arguments": [],
|
|
33497
33659
|
"expression": {
|
|
33498
33660
|
"argumentTypes": [],
|
|
33499
|
-
"id":
|
|
33661
|
+
"id": 3222,
|
|
33500
33662
|
"name": "_pause",
|
|
33501
33663
|
"nodeType": "Identifier",
|
|
33502
33664
|
"overloadedDeclarations": [],
|
|
33503
33665
|
"referencedDeclaration": 178,
|
|
33504
|
-
"src": "
|
|
33666
|
+
"src": "19436:6:8",
|
|
33505
33667
|
"typeDescriptions": {
|
|
33506
33668
|
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
|
|
33507
33669
|
"typeString": "function ()"
|
|
33508
33670
|
}
|
|
33509
33671
|
},
|
|
33510
|
-
"id":
|
|
33672
|
+
"id": 3223,
|
|
33511
33673
|
"isConstant": false,
|
|
33512
33674
|
"isLValue": false,
|
|
33513
33675
|
"isPure": false,
|
|
@@ -33515,86 +33677,86 @@
|
|
|
33515
33677
|
"lValueRequested": false,
|
|
33516
33678
|
"names": [],
|
|
33517
33679
|
"nodeType": "FunctionCall",
|
|
33518
|
-
"src": "
|
|
33680
|
+
"src": "19436:8:8",
|
|
33519
33681
|
"tryCall": false,
|
|
33520
33682
|
"typeDescriptions": {
|
|
33521
33683
|
"typeIdentifier": "t_tuple$__$",
|
|
33522
33684
|
"typeString": "tuple()"
|
|
33523
33685
|
}
|
|
33524
33686
|
},
|
|
33525
|
-
"id":
|
|
33687
|
+
"id": 3224,
|
|
33526
33688
|
"nodeType": "ExpressionStatement",
|
|
33527
|
-
"src": "
|
|
33689
|
+
"src": "19436:8:8"
|
|
33528
33690
|
}
|
|
33529
33691
|
]
|
|
33530
33692
|
},
|
|
33531
33693
|
"documentation": {
|
|
33532
|
-
"id":
|
|
33694
|
+
"id": 3217,
|
|
33533
33695
|
"nodeType": "StructuredDocumentation",
|
|
33534
|
-
"src": "
|
|
33696
|
+
"src": "19343:42:8",
|
|
33535
33697
|
"text": "Pauses this contract"
|
|
33536
33698
|
},
|
|
33537
33699
|
"functionSelector": "8456cb59",
|
|
33538
|
-
"id":
|
|
33700
|
+
"id": 3226,
|
|
33539
33701
|
"implemented": true,
|
|
33540
33702
|
"kind": "function",
|
|
33541
33703
|
"modifiers": [
|
|
33542
33704
|
{
|
|
33543
|
-
"id":
|
|
33705
|
+
"id": 3220,
|
|
33544
33706
|
"modifierName": {
|
|
33545
|
-
"id":
|
|
33707
|
+
"id": 3219,
|
|
33546
33708
|
"name": "onlyOwner",
|
|
33547
33709
|
"nodeType": "IdentifierPath",
|
|
33548
33710
|
"referencedDeclaration": 46,
|
|
33549
|
-
"src": "
|
|
33711
|
+
"src": "19408:9:8"
|
|
33550
33712
|
},
|
|
33551
33713
|
"nodeType": "ModifierInvocation",
|
|
33552
|
-
"src": "
|
|
33714
|
+
"src": "19408:9:8"
|
|
33553
33715
|
}
|
|
33554
33716
|
],
|
|
33555
33717
|
"name": "pause",
|
|
33556
33718
|
"nodeType": "FunctionDefinition",
|
|
33557
33719
|
"parameters": {
|
|
33558
|
-
"id":
|
|
33720
|
+
"id": 3218,
|
|
33559
33721
|
"nodeType": "ParameterList",
|
|
33560
33722
|
"parameters": [],
|
|
33561
|
-
"src": "
|
|
33723
|
+
"src": "19405:2:8"
|
|
33562
33724
|
},
|
|
33563
33725
|
"returnParameters": {
|
|
33564
|
-
"id":
|
|
33726
|
+
"id": 3221,
|
|
33565
33727
|
"nodeType": "ParameterList",
|
|
33566
33728
|
"parameters": [],
|
|
33567
|
-
"src": "
|
|
33729
|
+
"src": "19425:0:8"
|
|
33568
33730
|
},
|
|
33569
|
-
"scope":
|
|
33570
|
-
"src": "
|
|
33731
|
+
"scope": 3237,
|
|
33732
|
+
"src": "19391:61:8",
|
|
33571
33733
|
"stateMutability": "nonpayable",
|
|
33572
33734
|
"virtual": false,
|
|
33573
33735
|
"visibility": "public"
|
|
33574
33736
|
},
|
|
33575
33737
|
{
|
|
33576
33738
|
"body": {
|
|
33577
|
-
"id":
|
|
33739
|
+
"id": 3235,
|
|
33578
33740
|
"nodeType": "Block",
|
|
33579
|
-
"src": "
|
|
33741
|
+
"src": "19550:29:8",
|
|
33580
33742
|
"statements": [
|
|
33581
33743
|
{
|
|
33582
33744
|
"expression": {
|
|
33583
33745
|
"arguments": [],
|
|
33584
33746
|
"expression": {
|
|
33585
33747
|
"argumentTypes": [],
|
|
33586
|
-
"id":
|
|
33748
|
+
"id": 3232,
|
|
33587
33749
|
"name": "_unpause",
|
|
33588
33750
|
"nodeType": "Identifier",
|
|
33589
33751
|
"overloadedDeclarations": [],
|
|
33590
33752
|
"referencedDeclaration": 194,
|
|
33591
|
-
"src": "
|
|
33753
|
+
"src": "19561:8:8",
|
|
33592
33754
|
"typeDescriptions": {
|
|
33593
33755
|
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
|
|
33594
33756
|
"typeString": "function ()"
|
|
33595
33757
|
}
|
|
33596
33758
|
},
|
|
33597
|
-
"id":
|
|
33759
|
+
"id": 3233,
|
|
33598
33760
|
"isConstant": false,
|
|
33599
33761
|
"isLValue": false,
|
|
33600
33762
|
"isPure": false,
|
|
@@ -33602,69 +33764,69 @@
|
|
|
33602
33764
|
"lValueRequested": false,
|
|
33603
33765
|
"names": [],
|
|
33604
33766
|
"nodeType": "FunctionCall",
|
|
33605
|
-
"src": "
|
|
33767
|
+
"src": "19561:10:8",
|
|
33606
33768
|
"tryCall": false,
|
|
33607
33769
|
"typeDescriptions": {
|
|
33608
33770
|
"typeIdentifier": "t_tuple$__$",
|
|
33609
33771
|
"typeString": "tuple()"
|
|
33610
33772
|
}
|
|
33611
33773
|
},
|
|
33612
|
-
"id":
|
|
33774
|
+
"id": 3234,
|
|
33613
33775
|
"nodeType": "ExpressionStatement",
|
|
33614
|
-
"src": "
|
|
33776
|
+
"src": "19561:10:8"
|
|
33615
33777
|
}
|
|
33616
33778
|
]
|
|
33617
33779
|
},
|
|
33618
33780
|
"documentation": {
|
|
33619
|
-
"id":
|
|
33781
|
+
"id": 3227,
|
|
33620
33782
|
"nodeType": "StructuredDocumentation",
|
|
33621
|
-
"src": "
|
|
33783
|
+
"src": "19464:44:8",
|
|
33622
33784
|
"text": "Unpauses this contract"
|
|
33623
33785
|
},
|
|
33624
33786
|
"functionSelector": "3f4ba83a",
|
|
33625
|
-
"id":
|
|
33787
|
+
"id": 3236,
|
|
33626
33788
|
"implemented": true,
|
|
33627
33789
|
"kind": "function",
|
|
33628
33790
|
"modifiers": [
|
|
33629
33791
|
{
|
|
33630
|
-
"id":
|
|
33792
|
+
"id": 3230,
|
|
33631
33793
|
"modifierName": {
|
|
33632
|
-
"id":
|
|
33794
|
+
"id": 3229,
|
|
33633
33795
|
"name": "onlyOwner",
|
|
33634
33796
|
"nodeType": "IdentifierPath",
|
|
33635
33797
|
"referencedDeclaration": 46,
|
|
33636
|
-
"src": "
|
|
33798
|
+
"src": "19533:9:8"
|
|
33637
33799
|
},
|
|
33638
33800
|
"nodeType": "ModifierInvocation",
|
|
33639
|
-
"src": "
|
|
33801
|
+
"src": "19533:9:8"
|
|
33640
33802
|
}
|
|
33641
33803
|
],
|
|
33642
33804
|
"name": "unpause",
|
|
33643
33805
|
"nodeType": "FunctionDefinition",
|
|
33644
33806
|
"parameters": {
|
|
33645
|
-
"id":
|
|
33807
|
+
"id": 3228,
|
|
33646
33808
|
"nodeType": "ParameterList",
|
|
33647
33809
|
"parameters": [],
|
|
33648
|
-
"src": "
|
|
33810
|
+
"src": "19530:2:8"
|
|
33649
33811
|
},
|
|
33650
33812
|
"returnParameters": {
|
|
33651
|
-
"id":
|
|
33813
|
+
"id": 3231,
|
|
33652
33814
|
"nodeType": "ParameterList",
|
|
33653
33815
|
"parameters": [],
|
|
33654
|
-
"src": "
|
|
33816
|
+
"src": "19550:0:8"
|
|
33655
33817
|
},
|
|
33656
|
-
"scope":
|
|
33657
|
-
"src": "
|
|
33818
|
+
"scope": 3237,
|
|
33819
|
+
"src": "19514:65:8",
|
|
33658
33820
|
"stateMutability": "nonpayable",
|
|
33659
33821
|
"virtual": false,
|
|
33660
33822
|
"visibility": "public"
|
|
33661
33823
|
}
|
|
33662
33824
|
],
|
|
33663
|
-
"scope":
|
|
33664
|
-
"src": "499:
|
|
33825
|
+
"scope": 3238,
|
|
33826
|
+
"src": "499:19085:8"
|
|
33665
33827
|
}
|
|
33666
33828
|
],
|
|
33667
|
-
"src": "102:
|
|
33829
|
+
"src": "102:19486:8"
|
|
33668
33830
|
},
|
|
33669
33831
|
"legacyAST": {
|
|
33670
33832
|
"absolutePath": "project:/contracts/Liquidity.sol",
|
|
@@ -33682,13 +33844,13 @@
|
|
|
33682
33844
|
844
|
|
33683
33845
|
],
|
|
33684
33846
|
"ILiquidity": [
|
|
33685
|
-
|
|
33847
|
+
3492
|
|
33686
33848
|
],
|
|
33687
33849
|
"IMarketMaker": [
|
|
33688
|
-
|
|
33850
|
+
3604
|
|
33689
33851
|
],
|
|
33690
33852
|
"Liquidity": [
|
|
33691
|
-
|
|
33853
|
+
3237
|
|
33692
33854
|
],
|
|
33693
33855
|
"Ownable": [
|
|
33694
33856
|
103
|
|
@@ -33700,7 +33862,7 @@
|
|
|
33700
33862
|
1178
|
|
33701
33863
|
]
|
|
33702
33864
|
},
|
|
33703
|
-
"id":
|
|
33865
|
+
"id": 3238,
|
|
33704
33866
|
"license": "UNLICENSED",
|
|
33705
33867
|
"nodeType": "SourceUnit",
|
|
33706
33868
|
"nodes": [
|
|
@@ -33719,7 +33881,7 @@
|
|
|
33719
33881
|
"file": "@openzeppelin/contracts/access/Ownable.sol",
|
|
33720
33882
|
"id": 1806,
|
|
33721
33883
|
"nodeType": "ImportDirective",
|
|
33722
|
-
"scope":
|
|
33884
|
+
"scope": 3238,
|
|
33723
33885
|
"sourceUnit": 104,
|
|
33724
33886
|
"src": "128:52:8",
|
|
33725
33887
|
"symbolAliases": [],
|
|
@@ -33730,7 +33892,7 @@
|
|
|
33730
33892
|
"file": "@openzeppelin/contracts/security/Pausable.sol",
|
|
33731
33893
|
"id": 1807,
|
|
33732
33894
|
"nodeType": "ImportDirective",
|
|
33733
|
-
"scope":
|
|
33895
|
+
"scope": 3238,
|
|
33734
33896
|
"sourceUnit": 196,
|
|
33735
33897
|
"src": "182:55:8",
|
|
33736
33898
|
"symbolAliases": [],
|
|
@@ -33741,7 +33903,7 @@
|
|
|
33741
33903
|
"file": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
|
|
33742
33904
|
"id": 1808,
|
|
33743
33905
|
"nodeType": "ImportDirective",
|
|
33744
|
-
"scope":
|
|
33906
|
+
"scope": 3238,
|
|
33745
33907
|
"sourceUnit": 742,
|
|
33746
33908
|
"src": "241:55:8",
|
|
33747
33909
|
"symbolAliases": [],
|
|
@@ -33752,7 +33914,7 @@
|
|
|
33752
33914
|
"file": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
|
|
33753
33915
|
"id": 1809,
|
|
33754
33916
|
"nodeType": "ImportDirective",
|
|
33755
|
-
"scope":
|
|
33917
|
+
"scope": 3238,
|
|
33756
33918
|
"sourceUnit": 820,
|
|
33757
33919
|
"src": "298:56:8",
|
|
33758
33920
|
"symbolAliases": [],
|
|
@@ -33763,7 +33925,7 @@
|
|
|
33763
33925
|
"file": "@openzeppelin/contracts/utils/math/SafeMath.sol",
|
|
33764
33926
|
"id": 1810,
|
|
33765
33927
|
"nodeType": "ImportDirective",
|
|
33766
|
-
"scope":
|
|
33928
|
+
"scope": 3238,
|
|
33767
33929
|
"sourceUnit": 1179,
|
|
33768
33930
|
"src": "356:57:8",
|
|
33769
33931
|
"symbolAliases": [],
|
|
@@ -33774,8 +33936,8 @@
|
|
|
33774
33936
|
"file": "./interfaces/IMarketMaker.sol",
|
|
33775
33937
|
"id": 1811,
|
|
33776
33938
|
"nodeType": "ImportDirective",
|
|
33777
|
-
"scope":
|
|
33778
|
-
"sourceUnit":
|
|
33939
|
+
"scope": 3238,
|
|
33940
|
+
"sourceUnit": 3605,
|
|
33779
33941
|
"src": "417:39:8",
|
|
33780
33942
|
"symbolAliases": [],
|
|
33781
33943
|
"unitAlias": ""
|
|
@@ -33785,8 +33947,8 @@
|
|
|
33785
33947
|
"file": "./interfaces/ILiquidity.sol",
|
|
33786
33948
|
"id": 1812,
|
|
33787
33949
|
"nodeType": "ImportDirective",
|
|
33788
|
-
"scope":
|
|
33789
|
-
"sourceUnit":
|
|
33950
|
+
"scope": 3238,
|
|
33951
|
+
"sourceUnit": 3493,
|
|
33790
33952
|
"src": "458:37:8",
|
|
33791
33953
|
"symbolAliases": [],
|
|
33792
33954
|
"unitAlias": ""
|
|
@@ -33841,9 +34003,9 @@
|
|
|
33841
34003
|
],
|
|
33842
34004
|
"contractKind": "contract",
|
|
33843
34005
|
"fullyImplemented": true,
|
|
33844
|
-
"id":
|
|
34006
|
+
"id": 3237,
|
|
33845
34007
|
"linearizedBaseContracts": [
|
|
33846
|
-
|
|
34008
|
+
3237,
|
|
33847
34009
|
195,
|
|
33848
34010
|
103,
|
|
33849
34011
|
741,
|
|
@@ -33882,12 +34044,12 @@
|
|
|
33882
34044
|
"mutability": "mutable",
|
|
33883
34045
|
"name": "platforms",
|
|
33884
34046
|
"nodeType": "VariableDeclaration",
|
|
33885
|
-
"scope":
|
|
34047
|
+
"scope": 3237,
|
|
33886
34048
|
"src": "590:39:8",
|
|
33887
34049
|
"stateVariable": true,
|
|
33888
34050
|
"storageLocation": "default",
|
|
33889
34051
|
"typeDescriptions": {
|
|
33890
|
-
"typeIdentifier": "t_array$_t_struct$_platform_$
|
|
34052
|
+
"typeIdentifier": "t_array$_t_struct$_platform_$3316_storage_$dyn_storage",
|
|
33891
34053
|
"typeString": "struct ILiquidity.platform[]"
|
|
33892
34054
|
},
|
|
33893
34055
|
"typeName": {
|
|
@@ -33898,13 +34060,13 @@
|
|
|
33898
34060
|
"id": 1822,
|
|
33899
34061
|
"name": "ILiquidity.platform",
|
|
33900
34062
|
"nodeType": "IdentifierPath",
|
|
33901
|
-
"referencedDeclaration":
|
|
34063
|
+
"referencedDeclaration": 3316,
|
|
33902
34064
|
"src": "590:19:8"
|
|
33903
34065
|
},
|
|
33904
|
-
"referencedDeclaration":
|
|
34066
|
+
"referencedDeclaration": 3316,
|
|
33905
34067
|
"src": "590:19:8",
|
|
33906
34068
|
"typeDescriptions": {
|
|
33907
|
-
"typeIdentifier": "t_struct$_platform_$
|
|
34069
|
+
"typeIdentifier": "t_struct$_platform_$3316_storage_ptr",
|
|
33908
34070
|
"typeString": "struct ILiquidity.platform"
|
|
33909
34071
|
}
|
|
33910
34072
|
},
|
|
@@ -33912,7 +34074,7 @@
|
|
|
33912
34074
|
"nodeType": "ArrayTypeName",
|
|
33913
34075
|
"src": "590:21:8",
|
|
33914
34076
|
"typeDescriptions": {
|
|
33915
|
-
"typeIdentifier": "t_array$_t_struct$_platform_$
|
|
34077
|
+
"typeIdentifier": "t_array$_t_struct$_platform_$3316_storage_$dyn_storage_ptr",
|
|
33916
34078
|
"typeString": "struct ILiquidity.platform[]"
|
|
33917
34079
|
}
|
|
33918
34080
|
},
|
|
@@ -33924,7 +34086,7 @@
|
|
|
33924
34086
|
"mutability": "mutable",
|
|
33925
34087
|
"name": "platformIndex",
|
|
33926
34088
|
"nodeType": "VariableDeclaration",
|
|
33927
|
-
"scope":
|
|
34089
|
+
"scope": 3237,
|
|
33928
34090
|
"src": "636:49:8",
|
|
33929
34091
|
"stateVariable": true,
|
|
33930
34092
|
"storageLocation": "default",
|
|
@@ -33969,12 +34131,12 @@
|
|
|
33969
34131
|
"mutability": "mutable",
|
|
33970
34132
|
"name": "tokens",
|
|
33971
34133
|
"nodeType": "VariableDeclaration",
|
|
33972
|
-
"scope":
|
|
34134
|
+
"scope": 3237,
|
|
33973
34135
|
"src": "694:33:8",
|
|
33974
34136
|
"stateVariable": true,
|
|
33975
34137
|
"storageLocation": "default",
|
|
33976
34138
|
"typeDescriptions": {
|
|
33977
|
-
"typeIdentifier": "t_array$_t_struct$_token_$
|
|
34139
|
+
"typeIdentifier": "t_array$_t_struct$_token_$3321_storage_$dyn_storage",
|
|
33978
34140
|
"typeString": "struct ILiquidity.token[]"
|
|
33979
34141
|
},
|
|
33980
34142
|
"typeName": {
|
|
@@ -33985,13 +34147,13 @@
|
|
|
33985
34147
|
"id": 1830,
|
|
33986
34148
|
"name": "ILiquidity.token",
|
|
33987
34149
|
"nodeType": "IdentifierPath",
|
|
33988
|
-
"referencedDeclaration":
|
|
34150
|
+
"referencedDeclaration": 3321,
|
|
33989
34151
|
"src": "694:16:8"
|
|
33990
34152
|
},
|
|
33991
|
-
"referencedDeclaration":
|
|
34153
|
+
"referencedDeclaration": 3321,
|
|
33992
34154
|
"src": "694:16:8",
|
|
33993
34155
|
"typeDescriptions": {
|
|
33994
|
-
"typeIdentifier": "t_struct$_token_$
|
|
34156
|
+
"typeIdentifier": "t_struct$_token_$3321_storage_ptr",
|
|
33995
34157
|
"typeString": "struct ILiquidity.token"
|
|
33996
34158
|
}
|
|
33997
34159
|
},
|
|
@@ -33999,7 +34161,7 @@
|
|
|
33999
34161
|
"nodeType": "ArrayTypeName",
|
|
34000
34162
|
"src": "694:18:8",
|
|
34001
34163
|
"typeDescriptions": {
|
|
34002
|
-
"typeIdentifier": "t_array$_t_struct$_token_$
|
|
34164
|
+
"typeIdentifier": "t_array$_t_struct$_token_$3321_storage_$dyn_storage_ptr",
|
|
34003
34165
|
"typeString": "struct ILiquidity.token[]"
|
|
34004
34166
|
}
|
|
34005
34167
|
},
|
|
@@ -34011,7 +34173,7 @@
|
|
|
34011
34173
|
"mutability": "mutable",
|
|
34012
34174
|
"name": "tokenIndex",
|
|
34013
34175
|
"nodeType": "VariableDeclaration",
|
|
34014
|
-
"scope":
|
|
34176
|
+
"scope": 3237,
|
|
34015
34177
|
"src": "734:46:8",
|
|
34016
34178
|
"stateVariable": true,
|
|
34017
34179
|
"storageLocation": "default",
|
|
@@ -34056,12 +34218,12 @@
|
|
|
34056
34218
|
"mutability": "mutable",
|
|
34057
34219
|
"name": "LPs",
|
|
34058
34220
|
"nodeType": "VariableDeclaration",
|
|
34059
|
-
"scope":
|
|
34221
|
+
"scope": 3237,
|
|
34060
34222
|
"src": "793:33:8",
|
|
34061
34223
|
"stateVariable": true,
|
|
34062
34224
|
"storageLocation": "default",
|
|
34063
34225
|
"typeDescriptions": {
|
|
34064
|
-
"typeIdentifier": "t_array$_t_struct$_provider_$
|
|
34226
|
+
"typeIdentifier": "t_array$_t_struct$_provider_$3326_storage_$dyn_storage",
|
|
34065
34227
|
"typeString": "struct ILiquidity.provider[]"
|
|
34066
34228
|
},
|
|
34067
34229
|
"typeName": {
|
|
@@ -34072,13 +34234,13 @@
|
|
|
34072
34234
|
"id": 1838,
|
|
34073
34235
|
"name": "ILiquidity.provider",
|
|
34074
34236
|
"nodeType": "IdentifierPath",
|
|
34075
|
-
"referencedDeclaration":
|
|
34237
|
+
"referencedDeclaration": 3326,
|
|
34076
34238
|
"src": "793:19:8"
|
|
34077
34239
|
},
|
|
34078
|
-
"referencedDeclaration":
|
|
34240
|
+
"referencedDeclaration": 3326,
|
|
34079
34241
|
"src": "793:19:8",
|
|
34080
34242
|
"typeDescriptions": {
|
|
34081
|
-
"typeIdentifier": "t_struct$_provider_$
|
|
34243
|
+
"typeIdentifier": "t_struct$_provider_$3326_storage_ptr",
|
|
34082
34244
|
"typeString": "struct ILiquidity.provider"
|
|
34083
34245
|
}
|
|
34084
34246
|
},
|
|
@@ -34086,7 +34248,7 @@
|
|
|
34086
34248
|
"nodeType": "ArrayTypeName",
|
|
34087
34249
|
"src": "793:21:8",
|
|
34088
34250
|
"typeDescriptions": {
|
|
34089
|
-
"typeIdentifier": "t_array$_t_struct$_provider_$
|
|
34251
|
+
"typeIdentifier": "t_array$_t_struct$_provider_$3326_storage_$dyn_storage_ptr",
|
|
34090
34252
|
"typeString": "struct ILiquidity.provider[]"
|
|
34091
34253
|
}
|
|
34092
34254
|
},
|
|
@@ -34098,7 +34260,7 @@
|
|
|
34098
34260
|
"mutability": "mutable",
|
|
34099
34261
|
"name": "investmentCap",
|
|
34100
34262
|
"nodeType": "VariableDeclaration",
|
|
34101
|
-
"scope":
|
|
34263
|
+
"scope": 3237,
|
|
34102
34264
|
"src": "835:23:8",
|
|
34103
34265
|
"stateVariable": true,
|
|
34104
34266
|
"storageLocation": "default",
|
|
@@ -34140,7 +34302,7 @@
|
|
|
34140
34302
|
"mutability": "mutable",
|
|
34141
34303
|
"name": "timeLimit",
|
|
34142
34304
|
"nodeType": "VariableDeclaration",
|
|
34143
|
-
"scope":
|
|
34305
|
+
"scope": 3237,
|
|
34144
34306
|
"src": "865:19:8",
|
|
34145
34307
|
"stateVariable": true,
|
|
34146
34308
|
"storageLocation": "default",
|
|
@@ -34182,7 +34344,7 @@
|
|
|
34182
34344
|
"mutability": "mutable",
|
|
34183
34345
|
"name": "totalStaked",
|
|
34184
34346
|
"nodeType": "VariableDeclaration",
|
|
34185
|
-
"scope":
|
|
34347
|
+
"scope": 3237,
|
|
34186
34348
|
"src": "897:21:8",
|
|
34187
34349
|
"stateVariable": true,
|
|
34188
34350
|
"storageLocation": "default",
|
|
@@ -34224,7 +34386,7 @@
|
|
|
34224
34386
|
"mutability": "mutable",
|
|
34225
34387
|
"name": "totalLiquidity",
|
|
34226
34388
|
"nodeType": "VariableDeclaration",
|
|
34227
|
-
"scope":
|
|
34389
|
+
"scope": 3237,
|
|
34228
34390
|
"src": "925:24:8",
|
|
34229
34391
|
"stateVariable": true,
|
|
34230
34392
|
"storageLocation": "default",
|
|
@@ -34266,7 +34428,7 @@
|
|
|
34266
34428
|
"mutability": "mutable",
|
|
34267
34429
|
"name": "totalIssued",
|
|
34268
34430
|
"nodeType": "VariableDeclaration",
|
|
34269
|
-
"scope":
|
|
34431
|
+
"scope": 3237,
|
|
34270
34432
|
"src": "956:21:8",
|
|
34271
34433
|
"stateVariable": true,
|
|
34272
34434
|
"storageLocation": "default",
|
|
@@ -34308,7 +34470,7 @@
|
|
|
34308
34470
|
"mutability": "mutable",
|
|
34309
34471
|
"name": "verified",
|
|
34310
34472
|
"nodeType": "VariableDeclaration",
|
|
34311
|
-
"scope":
|
|
34473
|
+
"scope": 3237,
|
|
34312
34474
|
"src": "986:24:8",
|
|
34313
34475
|
"stateVariable": true,
|
|
34314
34476
|
"storageLocation": "default",
|
|
@@ -34389,7 +34551,7 @@
|
|
|
34389
34551
|
],
|
|
34390
34552
|
"name": "investment",
|
|
34391
34553
|
"nodeType": "StructDefinition",
|
|
34392
|
-
"scope":
|
|
34554
|
+
"scope": 3237,
|
|
34393
34555
|
"src": "1019:86:8",
|
|
34394
34556
|
"visibility": "public"
|
|
34395
34557
|
},
|
|
@@ -34452,7 +34614,7 @@
|
|
|
34452
34614
|
],
|
|
34453
34615
|
"name": "liquidity",
|
|
34454
34616
|
"nodeType": "StructDefinition",
|
|
34455
|
-
"scope":
|
|
34617
|
+
"scope": 3237,
|
|
34456
34618
|
"src": "1113:74:8",
|
|
34457
34619
|
"visibility": "public"
|
|
34458
34620
|
},
|
|
@@ -34515,7 +34677,7 @@
|
|
|
34515
34677
|
],
|
|
34516
34678
|
"name": "performance",
|
|
34517
34679
|
"nodeType": "StructDefinition",
|
|
34518
|
-
"scope":
|
|
34680
|
+
"scope": 3237,
|
|
34519
34681
|
"src": "1195:98:8",
|
|
34520
34682
|
"visibility": "public"
|
|
34521
34683
|
},
|
|
@@ -34525,7 +34687,7 @@
|
|
|
34525
34687
|
"mutability": "mutable",
|
|
34526
34688
|
"name": "investors",
|
|
34527
34689
|
"nodeType": "VariableDeclaration",
|
|
34528
|
-
"scope":
|
|
34690
|
+
"scope": 3237,
|
|
34529
34691
|
"src": "1345:67:8",
|
|
34530
34692
|
"stateVariable": true,
|
|
34531
34693
|
"storageLocation": "default",
|
|
@@ -34596,7 +34758,7 @@
|
|
|
34596
34758
|
"mutability": "mutable",
|
|
34597
34759
|
"name": "stakes",
|
|
34598
34760
|
"nodeType": "VariableDeclaration",
|
|
34599
|
-
"scope":
|
|
34761
|
+
"scope": 3237,
|
|
34600
34762
|
"src": "1482:44:8",
|
|
34601
34763
|
"stateVariable": true,
|
|
34602
34764
|
"storageLocation": "default",
|
|
@@ -34648,7 +34810,7 @@
|
|
|
34648
34810
|
"mutability": "mutable",
|
|
34649
34811
|
"name": "managers",
|
|
34650
34812
|
"nodeType": "VariableDeclaration",
|
|
34651
|
-
"scope":
|
|
34813
|
+
"scope": 3237,
|
|
34652
34814
|
"src": "1586:46:8",
|
|
34653
34815
|
"stateVariable": true,
|
|
34654
34816
|
"storageLocation": "default",
|
|
@@ -34703,7 +34865,7 @@
|
|
|
34703
34865
|
"mutability": "mutable",
|
|
34704
34866
|
"name": "managerIndex",
|
|
34705
34867
|
"nodeType": "VariableDeclaration",
|
|
34706
|
-
"scope":
|
|
34868
|
+
"scope": 3237,
|
|
34707
34869
|
"src": "1699:68:8",
|
|
34708
34870
|
"stateVariable": true,
|
|
34709
34871
|
"storageLocation": "default",
|
|
@@ -34767,7 +34929,7 @@
|
|
|
34767
34929
|
"mutability": "mutable",
|
|
34768
34930
|
"name": "managerRoi",
|
|
34769
34931
|
"nodeType": "VariableDeclaration",
|
|
34770
|
-
"scope":
|
|
34932
|
+
"scope": 3237,
|
|
34771
34933
|
"src": "1902:90:8",
|
|
34772
34934
|
"stateVariable": true,
|
|
34773
34935
|
"storageLocation": "default",
|
|
@@ -34857,7 +35019,7 @@
|
|
|
34857
35019
|
"mutability": "mutable",
|
|
34858
35020
|
"name": "platformRoi",
|
|
34859
35021
|
"nodeType": "VariableDeclaration",
|
|
34860
|
-
"scope":
|
|
35022
|
+
"scope": 3237,
|
|
34861
35023
|
"src": "2039:51:8",
|
|
34862
35024
|
"stateVariable": true,
|
|
34863
35025
|
"storageLocation": "default",
|
|
@@ -34909,7 +35071,7 @@
|
|
|
34909
35071
|
"mutability": "mutable",
|
|
34910
35072
|
"name": "lock",
|
|
34911
35073
|
"nodeType": "VariableDeclaration",
|
|
34912
|
-
"scope":
|
|
35074
|
+
"scope": 3237,
|
|
34913
35075
|
"src": "2112:9:8",
|
|
34914
35076
|
"stateVariable": true,
|
|
34915
35077
|
"storageLocation": "default",
|
|
@@ -35548,7 +35710,7 @@
|
|
|
35548
35710
|
"parameters": [],
|
|
35549
35711
|
"src": "2544:0:8"
|
|
35550
35712
|
},
|
|
35551
|
-
"scope":
|
|
35713
|
+
"scope": 3237,
|
|
35552
35714
|
"src": "2449:290:8",
|
|
35553
35715
|
"stateMutability": "nonpayable",
|
|
35554
35716
|
"virtual": false,
|
|
@@ -35848,7 +36010,7 @@
|
|
|
35848
36010
|
"parameters": [],
|
|
35849
36011
|
"src": "3125:0:8"
|
|
35850
36012
|
},
|
|
35851
|
-
"scope":
|
|
36013
|
+
"scope": 3237,
|
|
35852
36014
|
"src": "3037:193:8",
|
|
35853
36015
|
"stateMutability": "nonpayable",
|
|
35854
36016
|
"virtual": false,
|
|
@@ -35956,7 +36118,7 @@
|
|
|
35956
36118
|
"stateVariable": false,
|
|
35957
36119
|
"storageLocation": "memory",
|
|
35958
36120
|
"typeDescriptions": {
|
|
35959
|
-
"typeIdentifier": "t_struct$_token_$
|
|
36121
|
+
"typeIdentifier": "t_struct$_token_$3321_memory_ptr",
|
|
35960
36122
|
"typeString": "struct ILiquidity.token"
|
|
35961
36123
|
},
|
|
35962
36124
|
"typeName": {
|
|
@@ -35966,13 +36128,13 @@
|
|
|
35966
36128
|
"id": 2009,
|
|
35967
36129
|
"name": "ILiquidity.token",
|
|
35968
36130
|
"nodeType": "IdentifierPath",
|
|
35969
|
-
"referencedDeclaration":
|
|
36131
|
+
"referencedDeclaration": 3321,
|
|
35970
36132
|
"src": "3578:16:8"
|
|
35971
36133
|
},
|
|
35972
|
-
"referencedDeclaration":
|
|
36134
|
+
"referencedDeclaration": 3321,
|
|
35973
36135
|
"src": "3578:16:8",
|
|
35974
36136
|
"typeDescriptions": {
|
|
35975
|
-
"typeIdentifier": "t_struct$_token_$
|
|
36137
|
+
"typeIdentifier": "t_struct$_token_$3321_storage_ptr",
|
|
35976
36138
|
"typeString": "struct ILiquidity.token"
|
|
35977
36139
|
}
|
|
35978
36140
|
},
|
|
@@ -36023,10 +36185,10 @@
|
|
|
36023
36185
|
"name": "ILiquidity",
|
|
36024
36186
|
"nodeType": "Identifier",
|
|
36025
36187
|
"overloadedDeclarations": [],
|
|
36026
|
-
"referencedDeclaration":
|
|
36188
|
+
"referencedDeclaration": 3492,
|
|
36027
36189
|
"src": "3606:10:8",
|
|
36028
36190
|
"typeDescriptions": {
|
|
36029
|
-
"typeIdentifier": "t_type$_t_contract$_ILiquidity_$
|
|
36191
|
+
"typeIdentifier": "t_type$_t_contract$_ILiquidity_$3492_$",
|
|
36030
36192
|
"typeString": "type(contract ILiquidity)"
|
|
36031
36193
|
}
|
|
36032
36194
|
},
|
|
@@ -36037,10 +36199,10 @@
|
|
|
36037
36199
|
"lValueRequested": false,
|
|
36038
36200
|
"memberName": "token",
|
|
36039
36201
|
"nodeType": "MemberAccess",
|
|
36040
|
-
"referencedDeclaration":
|
|
36202
|
+
"referencedDeclaration": 3321,
|
|
36041
36203
|
"src": "3606:16:8",
|
|
36042
36204
|
"typeDescriptions": {
|
|
36043
|
-
"typeIdentifier": "t_type$_t_struct$_token_$
|
|
36205
|
+
"typeIdentifier": "t_type$_t_struct$_token_$3321_storage_ptr_$",
|
|
36044
36206
|
"typeString": "type(struct ILiquidity.token storage pointer)"
|
|
36045
36207
|
}
|
|
36046
36208
|
},
|
|
@@ -36058,7 +36220,7 @@
|
|
|
36058
36220
|
"src": "3606:108:8",
|
|
36059
36221
|
"tryCall": false,
|
|
36060
36222
|
"typeDescriptions": {
|
|
36061
|
-
"typeIdentifier": "t_struct$_token_$
|
|
36223
|
+
"typeIdentifier": "t_struct$_token_$3321_memory_ptr",
|
|
36062
36224
|
"typeString": "struct ILiquidity.token memory"
|
|
36063
36225
|
}
|
|
36064
36226
|
},
|
|
@@ -36076,7 +36238,7 @@
|
|
|
36076
36238
|
"referencedDeclaration": 2011,
|
|
36077
36239
|
"src": "3741:1:8",
|
|
36078
36240
|
"typeDescriptions": {
|
|
36079
|
-
"typeIdentifier": "t_struct$_token_$
|
|
36241
|
+
"typeIdentifier": "t_struct$_token_$3321_memory_ptr",
|
|
36080
36242
|
"typeString": "struct ILiquidity.token memory"
|
|
36081
36243
|
}
|
|
36082
36244
|
}
|
|
@@ -36084,7 +36246,7 @@
|
|
|
36084
36246
|
"expression": {
|
|
36085
36247
|
"argumentTypes": [
|
|
36086
36248
|
{
|
|
36087
|
-
"typeIdentifier": "t_struct$_token_$
|
|
36249
|
+
"typeIdentifier": "t_struct$_token_$3321_memory_ptr",
|
|
36088
36250
|
"typeString": "struct ILiquidity.token memory"
|
|
36089
36251
|
}
|
|
36090
36252
|
],
|
|
@@ -36096,7 +36258,7 @@
|
|
|
36096
36258
|
"referencedDeclaration": 1833,
|
|
36097
36259
|
"src": "3729:6:8",
|
|
36098
36260
|
"typeDescriptions": {
|
|
36099
|
-
"typeIdentifier": "t_array$_t_struct$_token_$
|
|
36261
|
+
"typeIdentifier": "t_array$_t_struct$_token_$3321_storage_$dyn_storage",
|
|
36100
36262
|
"typeString": "struct ILiquidity.token storage ref[] storage ref"
|
|
36101
36263
|
}
|
|
36102
36264
|
},
|
|
@@ -36109,7 +36271,7 @@
|
|
|
36109
36271
|
"nodeType": "MemberAccess",
|
|
36110
36272
|
"src": "3729:11:8",
|
|
36111
36273
|
"typeDescriptions": {
|
|
36112
|
-
"typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_token_$
|
|
36274
|
+
"typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_token_$3321_storage_$returns$__$",
|
|
36113
36275
|
"typeString": "function (struct ILiquidity.token storage ref)"
|
|
36114
36276
|
}
|
|
36115
36277
|
},
|
|
@@ -36187,7 +36349,7 @@
|
|
|
36187
36349
|
"referencedDeclaration": 1833,
|
|
36188
36350
|
"src": "3779:6:8",
|
|
36189
36351
|
"typeDescriptions": {
|
|
36190
|
-
"typeIdentifier": "t_array$_t_struct$_token_$
|
|
36352
|
+
"typeIdentifier": "t_array$_t_struct$_token_$3321_storage_$dyn_storage",
|
|
36191
36353
|
"typeString": "struct ILiquidity.token storage ref[] storage ref"
|
|
36192
36354
|
}
|
|
36193
36355
|
},
|
|
@@ -36311,7 +36473,7 @@
|
|
|
36311
36473
|
"parameters": [],
|
|
36312
36474
|
"src": "3527:0:8"
|
|
36313
36475
|
},
|
|
36314
|
-
"scope":
|
|
36476
|
+
"scope": 3237,
|
|
36315
36477
|
"src": "3454:357:8",
|
|
36316
36478
|
"stateMutability": "nonpayable",
|
|
36317
36479
|
"virtual": false,
|
|
@@ -36525,7 +36687,7 @@
|
|
|
36525
36687
|
],
|
|
36526
36688
|
"src": "4064:6:8"
|
|
36527
36689
|
},
|
|
36528
|
-
"scope":
|
|
36690
|
+
"scope": 3237,
|
|
36529
36691
|
"src": "3997:182:8",
|
|
36530
36692
|
"stateMutability": "view",
|
|
36531
36693
|
"virtual": false,
|
|
@@ -36546,7 +36708,7 @@
|
|
|
36546
36708
|
"referencedDeclaration": 1833,
|
|
36547
36709
|
"src": "4343:6:8",
|
|
36548
36710
|
"typeDescriptions": {
|
|
36549
|
-
"typeIdentifier": "t_array$_t_struct$_token_$
|
|
36711
|
+
"typeIdentifier": "t_array$_t_struct$_token_$3321_storage_$dyn_storage",
|
|
36550
36712
|
"typeString": "struct ILiquidity.token storage ref[] storage ref"
|
|
36551
36713
|
}
|
|
36552
36714
|
},
|
|
@@ -36591,7 +36753,7 @@
|
|
|
36591
36753
|
"stateVariable": false,
|
|
36592
36754
|
"storageLocation": "memory",
|
|
36593
36755
|
"typeDescriptions": {
|
|
36594
|
-
"typeIdentifier": "t_array$_t_struct$_token_$
|
|
36756
|
+
"typeIdentifier": "t_array$_t_struct$_token_$3321_memory_ptr_$dyn_memory_ptr",
|
|
36595
36757
|
"typeString": "struct ILiquidity.token[]"
|
|
36596
36758
|
},
|
|
36597
36759
|
"typeName": {
|
|
@@ -36602,13 +36764,13 @@
|
|
|
36602
36764
|
"id": 2056,
|
|
36603
36765
|
"name": "ILiquidity.token",
|
|
36604
36766
|
"nodeType": "IdentifierPath",
|
|
36605
|
-
"referencedDeclaration":
|
|
36767
|
+
"referencedDeclaration": 3321,
|
|
36606
36768
|
"src": "4299:16:8"
|
|
36607
36769
|
},
|
|
36608
|
-
"referencedDeclaration":
|
|
36770
|
+
"referencedDeclaration": 3321,
|
|
36609
36771
|
"src": "4299:16:8",
|
|
36610
36772
|
"typeDescriptions": {
|
|
36611
|
-
"typeIdentifier": "t_struct$_token_$
|
|
36773
|
+
"typeIdentifier": "t_struct$_token_$3321_storage_ptr",
|
|
36612
36774
|
"typeString": "struct ILiquidity.token"
|
|
36613
36775
|
}
|
|
36614
36776
|
},
|
|
@@ -36616,7 +36778,7 @@
|
|
|
36616
36778
|
"nodeType": "ArrayTypeName",
|
|
36617
36779
|
"src": "4299:18:8",
|
|
36618
36780
|
"typeDescriptions": {
|
|
36619
|
-
"typeIdentifier": "t_array$_t_struct$_token_$
|
|
36781
|
+
"typeIdentifier": "t_array$_t_struct$_token_$3321_storage_$dyn_storage_ptr",
|
|
36620
36782
|
"typeString": "struct ILiquidity.token[]"
|
|
36621
36783
|
}
|
|
36622
36784
|
},
|
|
@@ -36625,7 +36787,7 @@
|
|
|
36625
36787
|
],
|
|
36626
36788
|
"src": "4298:27:8"
|
|
36627
36789
|
},
|
|
36628
|
-
"scope":
|
|
36790
|
+
"scope": 3237,
|
|
36629
36791
|
"src": "4247:110:8",
|
|
36630
36792
|
"stateMutability": "view",
|
|
36631
36793
|
"virtual": false,
|
|
@@ -36733,7 +36895,7 @@
|
|
|
36733
36895
|
"stateVariable": false,
|
|
36734
36896
|
"storageLocation": "memory",
|
|
36735
36897
|
"typeDescriptions": {
|
|
36736
|
-
"typeIdentifier": "t_struct$_platform_$
|
|
36898
|
+
"typeIdentifier": "t_struct$_platform_$3316_memory_ptr",
|
|
36737
36899
|
"typeString": "struct ILiquidity.platform"
|
|
36738
36900
|
},
|
|
36739
36901
|
"typeName": {
|
|
@@ -36743,13 +36905,13 @@
|
|
|
36743
36905
|
"id": 2081,
|
|
36744
36906
|
"name": "ILiquidity.platform",
|
|
36745
36907
|
"nodeType": "IdentifierPath",
|
|
36746
|
-
"referencedDeclaration":
|
|
36908
|
+
"referencedDeclaration": 3316,
|
|
36747
36909
|
"src": "4808:19:8"
|
|
36748
36910
|
},
|
|
36749
|
-
"referencedDeclaration":
|
|
36911
|
+
"referencedDeclaration": 3316,
|
|
36750
36912
|
"src": "4808:19:8",
|
|
36751
36913
|
"typeDescriptions": {
|
|
36752
|
-
"typeIdentifier": "t_struct$_platform_$
|
|
36914
|
+
"typeIdentifier": "t_struct$_platform_$3316_storage_ptr",
|
|
36753
36915
|
"typeString": "struct ILiquidity.platform"
|
|
36754
36916
|
}
|
|
36755
36917
|
},
|
|
@@ -36800,10 +36962,10 @@
|
|
|
36800
36962
|
"name": "ILiquidity",
|
|
36801
36963
|
"nodeType": "Identifier",
|
|
36802
36964
|
"overloadedDeclarations": [],
|
|
36803
|
-
"referencedDeclaration":
|
|
36965
|
+
"referencedDeclaration": 3492,
|
|
36804
36966
|
"src": "4839:10:8",
|
|
36805
36967
|
"typeDescriptions": {
|
|
36806
|
-
"typeIdentifier": "t_type$_t_contract$_ILiquidity_$
|
|
36968
|
+
"typeIdentifier": "t_type$_t_contract$_ILiquidity_$3492_$",
|
|
36807
36969
|
"typeString": "type(contract ILiquidity)"
|
|
36808
36970
|
}
|
|
36809
36971
|
},
|
|
@@ -36814,10 +36976,10 @@
|
|
|
36814
36976
|
"lValueRequested": false,
|
|
36815
36977
|
"memberName": "platform",
|
|
36816
36978
|
"nodeType": "MemberAccess",
|
|
36817
|
-
"referencedDeclaration":
|
|
36979
|
+
"referencedDeclaration": 3316,
|
|
36818
36980
|
"src": "4839:19:8",
|
|
36819
36981
|
"typeDescriptions": {
|
|
36820
|
-
"typeIdentifier": "t_type$_t_struct$_platform_$
|
|
36982
|
+
"typeIdentifier": "t_type$_t_struct$_platform_$3316_storage_ptr_$",
|
|
36821
36983
|
"typeString": "type(struct ILiquidity.platform storage pointer)"
|
|
36822
36984
|
}
|
|
36823
36985
|
},
|
|
@@ -36835,7 +36997,7 @@
|
|
|
36835
36997
|
"src": "4839:136:8",
|
|
36836
36998
|
"tryCall": false,
|
|
36837
36999
|
"typeDescriptions": {
|
|
36838
|
-
"typeIdentifier": "t_struct$_platform_$
|
|
37000
|
+
"typeIdentifier": "t_struct$_platform_$3316_memory_ptr",
|
|
36839
37001
|
"typeString": "struct ILiquidity.platform memory"
|
|
36840
37002
|
}
|
|
36841
37003
|
},
|
|
@@ -36853,7 +37015,7 @@
|
|
|
36853
37015
|
"referencedDeclaration": 2083,
|
|
36854
37016
|
"src": "5005:1:8",
|
|
36855
37017
|
"typeDescriptions": {
|
|
36856
|
-
"typeIdentifier": "t_struct$_platform_$
|
|
37018
|
+
"typeIdentifier": "t_struct$_platform_$3316_memory_ptr",
|
|
36857
37019
|
"typeString": "struct ILiquidity.platform memory"
|
|
36858
37020
|
}
|
|
36859
37021
|
}
|
|
@@ -36861,7 +37023,7 @@
|
|
|
36861
37023
|
"expression": {
|
|
36862
37024
|
"argumentTypes": [
|
|
36863
37025
|
{
|
|
36864
|
-
"typeIdentifier": "t_struct$_platform_$
|
|
37026
|
+
"typeIdentifier": "t_struct$_platform_$3316_memory_ptr",
|
|
36865
37027
|
"typeString": "struct ILiquidity.platform memory"
|
|
36866
37028
|
}
|
|
36867
37029
|
],
|
|
@@ -36873,7 +37035,7 @@
|
|
|
36873
37035
|
"referencedDeclaration": 1825,
|
|
36874
37036
|
"src": "4990:9:8",
|
|
36875
37037
|
"typeDescriptions": {
|
|
36876
|
-
"typeIdentifier": "t_array$_t_struct$_platform_$
|
|
37038
|
+
"typeIdentifier": "t_array$_t_struct$_platform_$3316_storage_$dyn_storage",
|
|
36877
37039
|
"typeString": "struct ILiquidity.platform storage ref[] storage ref"
|
|
36878
37040
|
}
|
|
36879
37041
|
},
|
|
@@ -36886,7 +37048,7 @@
|
|
|
36886
37048
|
"nodeType": "MemberAccess",
|
|
36887
37049
|
"src": "4990:14:8",
|
|
36888
37050
|
"typeDescriptions": {
|
|
36889
|
-
"typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_platform_$
|
|
37051
|
+
"typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_platform_$3316_storage_$returns$__$",
|
|
36890
37052
|
"typeString": "function (struct ILiquidity.platform storage ref)"
|
|
36891
37053
|
}
|
|
36892
37054
|
},
|
|
@@ -36964,7 +37126,7 @@
|
|
|
36964
37126
|
"referencedDeclaration": 1825,
|
|
36965
37127
|
"src": "5058:9:8",
|
|
36966
37128
|
"typeDescriptions": {
|
|
36967
|
-
"typeIdentifier": "t_array$_t_struct$_platform_$
|
|
37129
|
+
"typeIdentifier": "t_array$_t_struct$_platform_$3316_storage_$dyn_storage",
|
|
36968
37130
|
"typeString": "struct ILiquidity.platform storage ref[] storage ref"
|
|
36969
37131
|
}
|
|
36970
37132
|
},
|
|
@@ -37088,7 +37250,7 @@
|
|
|
37088
37250
|
"parameters": [],
|
|
37089
37251
|
"src": "4742:0:8"
|
|
37090
37252
|
},
|
|
37091
|
-
"scope":
|
|
37253
|
+
"scope": 3237,
|
|
37092
37254
|
"src": "4646:447:8",
|
|
37093
37255
|
"stateMutability": "nonpayable",
|
|
37094
37256
|
"virtual": false,
|
|
@@ -37109,7 +37271,7 @@
|
|
|
37109
37271
|
"referencedDeclaration": 1825,
|
|
37110
37272
|
"src": "5269:9:8",
|
|
37111
37273
|
"typeDescriptions": {
|
|
37112
|
-
"typeIdentifier": "t_array$_t_struct$_platform_$
|
|
37274
|
+
"typeIdentifier": "t_array$_t_struct$_platform_$3316_storage_$dyn_storage",
|
|
37113
37275
|
"typeString": "struct ILiquidity.platform storage ref[] storage ref"
|
|
37114
37276
|
}
|
|
37115
37277
|
},
|
|
@@ -37167,7 +37329,7 @@
|
|
|
37167
37329
|
"stateVariable": false,
|
|
37168
37330
|
"storageLocation": "memory",
|
|
37169
37331
|
"typeDescriptions": {
|
|
37170
|
-
"typeIdentifier": "t_array$_t_struct$_platform_$
|
|
37332
|
+
"typeIdentifier": "t_array$_t_struct$_platform_$3316_memory_ptr_$dyn_memory_ptr",
|
|
37171
37333
|
"typeString": "struct ILiquidity.platform[]"
|
|
37172
37334
|
},
|
|
37173
37335
|
"typeName": {
|
|
@@ -37178,13 +37340,13 @@
|
|
|
37178
37340
|
"id": 2111,
|
|
37179
37341
|
"name": "ILiquidity.platform",
|
|
37180
37342
|
"nodeType": "IdentifierPath",
|
|
37181
|
-
"referencedDeclaration":
|
|
37343
|
+
"referencedDeclaration": 3316,
|
|
37182
37344
|
"src": "5222:19:8"
|
|
37183
37345
|
},
|
|
37184
|
-
"referencedDeclaration":
|
|
37346
|
+
"referencedDeclaration": 3316,
|
|
37185
37347
|
"src": "5222:19:8",
|
|
37186
37348
|
"typeDescriptions": {
|
|
37187
|
-
"typeIdentifier": "t_struct$_platform_$
|
|
37349
|
+
"typeIdentifier": "t_struct$_platform_$3316_storage_ptr",
|
|
37188
37350
|
"typeString": "struct ILiquidity.platform"
|
|
37189
37351
|
}
|
|
37190
37352
|
},
|
|
@@ -37192,7 +37354,7 @@
|
|
|
37192
37354
|
"nodeType": "ArrayTypeName",
|
|
37193
37355
|
"src": "5222:21:8",
|
|
37194
37356
|
"typeDescriptions": {
|
|
37195
|
-
"typeIdentifier": "t_array$_t_struct$_platform_$
|
|
37357
|
+
"typeIdentifier": "t_array$_t_struct$_platform_$3316_storage_$dyn_storage_ptr",
|
|
37196
37358
|
"typeString": "struct ILiquidity.platform[]"
|
|
37197
37359
|
}
|
|
37198
37360
|
},
|
|
@@ -37201,7 +37363,7 @@
|
|
|
37201
37363
|
],
|
|
37202
37364
|
"src": "5221:30:8"
|
|
37203
37365
|
},
|
|
37204
|
-
"scope":
|
|
37366
|
+
"scope": 3237,
|
|
37205
37367
|
"src": "5166:120:8",
|
|
37206
37368
|
"stateMutability": "view",
|
|
37207
37369
|
"virtual": false,
|
|
@@ -37640,7 +37802,7 @@
|
|
|
37640
37802
|
"parameters": [],
|
|
37641
37803
|
"src": "5570:0:8"
|
|
37642
37804
|
},
|
|
37643
|
-
"scope":
|
|
37805
|
+
"scope": 3237,
|
|
37644
37806
|
"src": "5495:271:8",
|
|
37645
37807
|
"stateMutability": "nonpayable",
|
|
37646
37808
|
"virtual": false,
|
|
@@ -39793,7 +39955,7 @@
|
|
|
39793
39955
|
"parameters": [],
|
|
39794
39956
|
"src": "6054:0:8"
|
|
39795
39957
|
},
|
|
39796
|
-
"scope":
|
|
39958
|
+
"scope": 3237,
|
|
39797
39959
|
"src": "5976:1314:8",
|
|
39798
39960
|
"stateMutability": "nonpayable",
|
|
39799
39961
|
"virtual": false,
|
|
@@ -39953,7 +40115,7 @@
|
|
|
39953
40115
|
],
|
|
39954
40116
|
"src": "7502:18:8"
|
|
39955
40117
|
},
|
|
39956
|
-
"scope":
|
|
40118
|
+
"scope": 3237,
|
|
39957
40119
|
"src": "7431:134:8",
|
|
39958
40120
|
"stateMutability": "view",
|
|
39959
40121
|
"virtual": false,
|
|
@@ -40777,7 +40939,7 @@
|
|
|
40777
40939
|
"stateVariable": false,
|
|
40778
40940
|
"storageLocation": "memory",
|
|
40779
40941
|
"typeDescriptions": {
|
|
40780
|
-
"typeIdentifier": "t_struct$_provider_$
|
|
40942
|
+
"typeIdentifier": "t_struct$_provider_$3326_memory_ptr",
|
|
40781
40943
|
"typeString": "struct ILiquidity.provider"
|
|
40782
40944
|
},
|
|
40783
40945
|
"typeName": {
|
|
@@ -40787,13 +40949,13 @@
|
|
|
40787
40949
|
"id": 2412,
|
|
40788
40950
|
"name": "ILiquidity.provider",
|
|
40789
40951
|
"nodeType": "IdentifierPath",
|
|
40790
|
-
"referencedDeclaration":
|
|
40952
|
+
"referencedDeclaration": 3326,
|
|
40791
40953
|
"src": "8216:19:8"
|
|
40792
40954
|
},
|
|
40793
|
-
"referencedDeclaration":
|
|
40955
|
+
"referencedDeclaration": 3326,
|
|
40794
40956
|
"src": "8216:19:8",
|
|
40795
40957
|
"typeDescriptions": {
|
|
40796
|
-
"typeIdentifier": "t_struct$_provider_$
|
|
40958
|
+
"typeIdentifier": "t_struct$_provider_$3326_storage_ptr",
|
|
40797
40959
|
"typeString": "struct ILiquidity.provider"
|
|
40798
40960
|
}
|
|
40799
40961
|
},
|
|
@@ -40906,10 +41068,10 @@
|
|
|
40906
41068
|
"name": "ILiquidity",
|
|
40907
41069
|
"nodeType": "Identifier",
|
|
40908
41070
|
"overloadedDeclarations": [],
|
|
40909
|
-
"referencedDeclaration":
|
|
41071
|
+
"referencedDeclaration": 3492,
|
|
40910
41072
|
"src": "8248:10:8",
|
|
40911
41073
|
"typeDescriptions": {
|
|
40912
|
-
"typeIdentifier": "t_type$_t_contract$_ILiquidity_$
|
|
41074
|
+
"typeIdentifier": "t_type$_t_contract$_ILiquidity_$3492_$",
|
|
40913
41075
|
"typeString": "type(contract ILiquidity)"
|
|
40914
41076
|
}
|
|
40915
41077
|
},
|
|
@@ -40920,10 +41082,10 @@
|
|
|
40920
41082
|
"lValueRequested": false,
|
|
40921
41083
|
"memberName": "provider",
|
|
40922
41084
|
"nodeType": "MemberAccess",
|
|
40923
|
-
"referencedDeclaration":
|
|
41085
|
+
"referencedDeclaration": 3326,
|
|
40924
41086
|
"src": "8248:19:8",
|
|
40925
41087
|
"typeDescriptions": {
|
|
40926
|
-
"typeIdentifier": "t_type$_t_struct$_provider_$
|
|
41088
|
+
"typeIdentifier": "t_type$_t_struct$_provider_$3326_storage_ptr_$",
|
|
40927
41089
|
"typeString": "type(struct ILiquidity.provider storage pointer)"
|
|
40928
41090
|
}
|
|
40929
41091
|
},
|
|
@@ -40941,7 +41103,7 @@
|
|
|
40941
41103
|
"src": "8248:131:8",
|
|
40942
41104
|
"tryCall": false,
|
|
40943
41105
|
"typeDescriptions": {
|
|
40944
|
-
"typeIdentifier": "t_struct$_provider_$
|
|
41106
|
+
"typeIdentifier": "t_struct$_provider_$3326_memory_ptr",
|
|
40945
41107
|
"typeString": "struct ILiquidity.provider memory"
|
|
40946
41108
|
}
|
|
40947
41109
|
},
|
|
@@ -40959,7 +41121,7 @@
|
|
|
40959
41121
|
"referencedDeclaration": 2414,
|
|
40960
41122
|
"src": "8403:2:8",
|
|
40961
41123
|
"typeDescriptions": {
|
|
40962
|
-
"typeIdentifier": "t_struct$_provider_$
|
|
41124
|
+
"typeIdentifier": "t_struct$_provider_$3326_memory_ptr",
|
|
40963
41125
|
"typeString": "struct ILiquidity.provider memory"
|
|
40964
41126
|
}
|
|
40965
41127
|
}
|
|
@@ -40967,7 +41129,7 @@
|
|
|
40967
41129
|
"expression": {
|
|
40968
41130
|
"argumentTypes": [
|
|
40969
41131
|
{
|
|
40970
|
-
"typeIdentifier": "t_struct$_provider_$
|
|
41132
|
+
"typeIdentifier": "t_struct$_provider_$3326_memory_ptr",
|
|
40971
41133
|
"typeString": "struct ILiquidity.provider memory"
|
|
40972
41134
|
}
|
|
40973
41135
|
],
|
|
@@ -40979,7 +41141,7 @@
|
|
|
40979
41141
|
"referencedDeclaration": 1841,
|
|
40980
41142
|
"src": "8394:3:8",
|
|
40981
41143
|
"typeDescriptions": {
|
|
40982
|
-
"typeIdentifier": "t_array$_t_struct$_provider_$
|
|
41144
|
+
"typeIdentifier": "t_array$_t_struct$_provider_$3326_storage_$dyn_storage",
|
|
40983
41145
|
"typeString": "struct ILiquidity.provider storage ref[] storage ref"
|
|
40984
41146
|
}
|
|
40985
41147
|
},
|
|
@@ -40992,7 +41154,7 @@
|
|
|
40992
41154
|
"nodeType": "MemberAccess",
|
|
40993
41155
|
"src": "8394:8:8",
|
|
40994
41156
|
"typeDescriptions": {
|
|
40995
|
-
"typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_provider_$
|
|
41157
|
+
"typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_provider_$3326_storage_$returns$__$",
|
|
40996
41158
|
"typeString": "function (struct ILiquidity.provider storage ref)"
|
|
40997
41159
|
}
|
|
40998
41160
|
},
|
|
@@ -41381,7 +41543,7 @@
|
|
|
41381
41543
|
"parameters": [],
|
|
41382
41544
|
"src": "7685:0:8"
|
|
41383
41545
|
},
|
|
41384
|
-
"scope":
|
|
41546
|
+
"scope": 3237,
|
|
41385
41547
|
"src": "7659:912:8",
|
|
41386
41548
|
"stateMutability": "payable",
|
|
41387
41549
|
"virtual": false,
|
|
@@ -42045,7 +42207,7 @@
|
|
|
42045
42207
|
"referencedDeclaration": 4294967268,
|
|
42046
42208
|
"src": "9353:4:8",
|
|
42047
42209
|
"typeDescriptions": {
|
|
42048
|
-
"typeIdentifier": "t_contract$_Liquidity_$
|
|
42210
|
+
"typeIdentifier": "t_contract$_Liquidity_$3237",
|
|
42049
42211
|
"typeString": "contract Liquidity"
|
|
42050
42212
|
}
|
|
42051
42213
|
}
|
|
@@ -42053,7 +42215,7 @@
|
|
|
42053
42215
|
"expression": {
|
|
42054
42216
|
"argumentTypes": [
|
|
42055
42217
|
{
|
|
42056
|
-
"typeIdentifier": "t_contract$_Liquidity_$
|
|
42218
|
+
"typeIdentifier": "t_contract$_Liquidity_$3237",
|
|
42057
42219
|
"typeString": "contract Liquidity"
|
|
42058
42220
|
}
|
|
42059
42221
|
],
|
|
@@ -42591,7 +42753,7 @@
|
|
|
42591
42753
|
"stateVariable": false,
|
|
42592
42754
|
"storageLocation": "memory",
|
|
42593
42755
|
"typeDescriptions": {
|
|
42594
|
-
"typeIdentifier": "t_struct$_provider_$
|
|
42756
|
+
"typeIdentifier": "t_struct$_provider_$3326_memory_ptr",
|
|
42595
42757
|
"typeString": "struct ILiquidity.provider"
|
|
42596
42758
|
},
|
|
42597
42759
|
"typeName": {
|
|
@@ -42601,13 +42763,13 @@
|
|
|
42601
42763
|
"id": 2549,
|
|
42602
42764
|
"name": "ILiquidity.provider",
|
|
42603
42765
|
"nodeType": "IdentifierPath",
|
|
42604
|
-
"referencedDeclaration":
|
|
42766
|
+
"referencedDeclaration": 3326,
|
|
42605
42767
|
"src": "9552:19:8"
|
|
42606
42768
|
},
|
|
42607
|
-
"referencedDeclaration":
|
|
42769
|
+
"referencedDeclaration": 3326,
|
|
42608
42770
|
"src": "9552:19:8",
|
|
42609
42771
|
"typeDescriptions": {
|
|
42610
|
-
"typeIdentifier": "t_struct$_provider_$
|
|
42772
|
+
"typeIdentifier": "t_struct$_provider_$3326_storage_ptr",
|
|
42611
42773
|
"typeString": "struct ILiquidity.provider"
|
|
42612
42774
|
}
|
|
42613
42775
|
},
|
|
@@ -42741,10 +42903,10 @@
|
|
|
42741
42903
|
"name": "ILiquidity",
|
|
42742
42904
|
"nodeType": "Identifier",
|
|
42743
42905
|
"overloadedDeclarations": [],
|
|
42744
|
-
"referencedDeclaration":
|
|
42906
|
+
"referencedDeclaration": 3492,
|
|
42745
42907
|
"src": "9584:10:8",
|
|
42746
42908
|
"typeDescriptions": {
|
|
42747
|
-
"typeIdentifier": "t_type$_t_contract$_ILiquidity_$
|
|
42909
|
+
"typeIdentifier": "t_type$_t_contract$_ILiquidity_$3492_$",
|
|
42748
42910
|
"typeString": "type(contract ILiquidity)"
|
|
42749
42911
|
}
|
|
42750
42912
|
},
|
|
@@ -42755,10 +42917,10 @@
|
|
|
42755
42917
|
"lValueRequested": false,
|
|
42756
42918
|
"memberName": "provider",
|
|
42757
42919
|
"nodeType": "MemberAccess",
|
|
42758
|
-
"referencedDeclaration":
|
|
42920
|
+
"referencedDeclaration": 3326,
|
|
42759
42921
|
"src": "9584:19:8",
|
|
42760
42922
|
"typeDescriptions": {
|
|
42761
|
-
"typeIdentifier": "t_type$_t_struct$_provider_$
|
|
42923
|
+
"typeIdentifier": "t_type$_t_struct$_provider_$3326_storage_ptr_$",
|
|
42762
42924
|
"typeString": "type(struct ILiquidity.provider storage pointer)"
|
|
42763
42925
|
}
|
|
42764
42926
|
},
|
|
@@ -42776,7 +42938,7 @@
|
|
|
42776
42938
|
"src": "9584:160:8",
|
|
42777
42939
|
"tryCall": false,
|
|
42778
42940
|
"typeDescriptions": {
|
|
42779
|
-
"typeIdentifier": "t_struct$_provider_$
|
|
42941
|
+
"typeIdentifier": "t_struct$_provider_$3326_memory_ptr",
|
|
42780
42942
|
"typeString": "struct ILiquidity.provider memory"
|
|
42781
42943
|
}
|
|
42782
42944
|
},
|
|
@@ -42794,7 +42956,7 @@
|
|
|
42794
42956
|
"referencedDeclaration": 2551,
|
|
42795
42957
|
"src": "9776:2:8",
|
|
42796
42958
|
"typeDescriptions": {
|
|
42797
|
-
"typeIdentifier": "t_struct$_provider_$
|
|
42959
|
+
"typeIdentifier": "t_struct$_provider_$3326_memory_ptr",
|
|
42798
42960
|
"typeString": "struct ILiquidity.provider memory"
|
|
42799
42961
|
}
|
|
42800
42962
|
}
|
|
@@ -42802,7 +42964,7 @@
|
|
|
42802
42964
|
"expression": {
|
|
42803
42965
|
"argumentTypes": [
|
|
42804
42966
|
{
|
|
42805
|
-
"typeIdentifier": "t_struct$_provider_$
|
|
42967
|
+
"typeIdentifier": "t_struct$_provider_$3326_memory_ptr",
|
|
42806
42968
|
"typeString": "struct ILiquidity.provider memory"
|
|
42807
42969
|
}
|
|
42808
42970
|
],
|
|
@@ -42814,7 +42976,7 @@
|
|
|
42814
42976
|
"referencedDeclaration": 1841,
|
|
42815
42977
|
"src": "9767:3:8",
|
|
42816
42978
|
"typeDescriptions": {
|
|
42817
|
-
"typeIdentifier": "t_array$_t_struct$_provider_$
|
|
42979
|
+
"typeIdentifier": "t_array$_t_struct$_provider_$3326_storage_$dyn_storage",
|
|
42818
42980
|
"typeString": "struct ILiquidity.provider storage ref[] storage ref"
|
|
42819
42981
|
}
|
|
42820
42982
|
},
|
|
@@ -42827,7 +42989,7 @@
|
|
|
42827
42989
|
"nodeType": "MemberAccess",
|
|
42828
42990
|
"src": "9767:8:8",
|
|
42829
42991
|
"typeDescriptions": {
|
|
42830
|
-
"typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_provider_$
|
|
42992
|
+
"typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_provider_$3326_storage_$returns$__$",
|
|
42831
42993
|
"typeString": "function (struct ILiquidity.provider storage ref)"
|
|
42832
42994
|
}
|
|
42833
42995
|
},
|
|
@@ -43584,7 +43746,7 @@
|
|
|
43584
43746
|
"parameters": [],
|
|
43585
43747
|
"src": "8948:0:8"
|
|
43586
43748
|
},
|
|
43587
|
-
"scope":
|
|
43749
|
+
"scope": 3237,
|
|
43588
43750
|
"src": "8893:1205:8",
|
|
43589
43751
|
"stateMutability": "nonpayable",
|
|
43590
43752
|
"virtual": false,
|
|
@@ -43605,7 +43767,7 @@
|
|
|
43605
43767
|
"referencedDeclaration": 1841,
|
|
43606
43768
|
"src": "10263:3:8",
|
|
43607
43769
|
"typeDescriptions": {
|
|
43608
|
-
"typeIdentifier": "t_array$_t_struct$_provider_$
|
|
43770
|
+
"typeIdentifier": "t_array$_t_struct$_provider_$3326_storage_$dyn_storage",
|
|
43609
43771
|
"typeString": "struct ILiquidity.provider storage ref[] storage ref"
|
|
43610
43772
|
}
|
|
43611
43773
|
},
|
|
@@ -43663,7 +43825,7 @@
|
|
|
43663
43825
|
"stateVariable": false,
|
|
43664
43826
|
"storageLocation": "memory",
|
|
43665
43827
|
"typeDescriptions": {
|
|
43666
|
-
"typeIdentifier": "t_array$_t_struct$_provider_$
|
|
43828
|
+
"typeIdentifier": "t_array$_t_struct$_provider_$3326_memory_ptr_$dyn_memory_ptr",
|
|
43667
43829
|
"typeString": "struct ILiquidity.provider[]"
|
|
43668
43830
|
},
|
|
43669
43831
|
"typeName": {
|
|
@@ -43674,13 +43836,13 @@
|
|
|
43674
43836
|
"id": 2627,
|
|
43675
43837
|
"name": "ILiquidity.provider",
|
|
43676
43838
|
"nodeType": "IdentifierPath",
|
|
43677
|
-
"referencedDeclaration":
|
|
43839
|
+
"referencedDeclaration": 3326,
|
|
43678
43840
|
"src": "10216:19:8"
|
|
43679
43841
|
},
|
|
43680
|
-
"referencedDeclaration":
|
|
43842
|
+
"referencedDeclaration": 3326,
|
|
43681
43843
|
"src": "10216:19:8",
|
|
43682
43844
|
"typeDescriptions": {
|
|
43683
|
-
"typeIdentifier": "t_struct$_provider_$
|
|
43845
|
+
"typeIdentifier": "t_struct$_provider_$3326_storage_ptr",
|
|
43684
43846
|
"typeString": "struct ILiquidity.provider"
|
|
43685
43847
|
}
|
|
43686
43848
|
},
|
|
@@ -43688,7 +43850,7 @@
|
|
|
43688
43850
|
"nodeType": "ArrayTypeName",
|
|
43689
43851
|
"src": "10216:21:8",
|
|
43690
43852
|
"typeDescriptions": {
|
|
43691
|
-
"typeIdentifier": "t_array$_t_struct$_provider_$
|
|
43853
|
+
"typeIdentifier": "t_array$_t_struct$_provider_$3326_storage_$dyn_storage_ptr",
|
|
43692
43854
|
"typeString": "struct ILiquidity.provider[]"
|
|
43693
43855
|
}
|
|
43694
43856
|
},
|
|
@@ -43697,7 +43859,7 @@
|
|
|
43697
43859
|
],
|
|
43698
43860
|
"src": "10215:30:8"
|
|
43699
43861
|
},
|
|
43700
|
-
"scope":
|
|
43862
|
+
"scope": 3237,
|
|
43701
43863
|
"src": "10160:114:8",
|
|
43702
43864
|
"stateMutability": "view",
|
|
43703
43865
|
"virtual": false,
|
|
@@ -43929,7 +44091,7 @@
|
|
|
43929
44091
|
],
|
|
43930
44092
|
"src": "10578:9:8"
|
|
43931
44093
|
},
|
|
43932
|
-
"scope":
|
|
44094
|
+
"scope": 3237,
|
|
43933
44095
|
"src": "10479:180:8",
|
|
43934
44096
|
"stateMutability": "view",
|
|
43935
44097
|
"virtual": false,
|
|
@@ -45219,7 +45381,7 @@
|
|
|
45219
45381
|
"referencedDeclaration": 4294967268,
|
|
45220
45382
|
"src": "12561:4:8",
|
|
45221
45383
|
"typeDescriptions": {
|
|
45222
|
-
"typeIdentifier": "t_contract$_Liquidity_$
|
|
45384
|
+
"typeIdentifier": "t_contract$_Liquidity_$3237",
|
|
45223
45385
|
"typeString": "contract Liquidity"
|
|
45224
45386
|
}
|
|
45225
45387
|
}
|
|
@@ -45227,7 +45389,7 @@
|
|
|
45227
45389
|
"expression": {
|
|
45228
45390
|
"argumentTypes": [
|
|
45229
45391
|
{
|
|
45230
|
-
"typeIdentifier": "t_contract$_Liquidity_$
|
|
45392
|
+
"typeIdentifier": "t_contract$_Liquidity_$3237",
|
|
45231
45393
|
"typeString": "contract Liquidity"
|
|
45232
45394
|
}
|
|
45233
45395
|
],
|
|
@@ -45981,7 +46143,7 @@
|
|
|
45981
46143
|
"referencedDeclaration": 4294967268,
|
|
45982
46144
|
"src": "11707:4:8",
|
|
45983
46145
|
"typeDescriptions": {
|
|
45984
|
-
"typeIdentifier": "t_contract$_Liquidity_$
|
|
46146
|
+
"typeIdentifier": "t_contract$_Liquidity_$3237",
|
|
45985
46147
|
"typeString": "contract Liquidity"
|
|
45986
46148
|
}
|
|
45987
46149
|
}
|
|
@@ -45989,7 +46151,7 @@
|
|
|
45989
46151
|
"expression": {
|
|
45990
46152
|
"argumentTypes": [
|
|
45991
46153
|
{
|
|
45992
|
-
"typeIdentifier": "t_contract$_Liquidity_$
|
|
46154
|
+
"typeIdentifier": "t_contract$_Liquidity_$3237",
|
|
45993
46155
|
"typeString": "contract Liquidity"
|
|
45994
46156
|
}
|
|
45995
46157
|
],
|
|
@@ -46410,7 +46572,7 @@
|
|
|
46410
46572
|
"parameters": [],
|
|
46411
46573
|
"src": "11180:0:8"
|
|
46412
46574
|
},
|
|
46413
|
-
"scope":
|
|
46575
|
+
"scope": 3237,
|
|
46414
46576
|
"src": "11059:1644:8",
|
|
46415
46577
|
"stateMutability": "nonpayable",
|
|
46416
46578
|
"virtual": false,
|
|
@@ -46775,10 +46937,10 @@
|
|
|
46775
46937
|
"name": "IMarketMaker",
|
|
46776
46938
|
"nodeType": "Identifier",
|
|
46777
46939
|
"overloadedDeclarations": [],
|
|
46778
|
-
"referencedDeclaration":
|
|
46940
|
+
"referencedDeclaration": 3604,
|
|
46779
46941
|
"src": "14950:12:8",
|
|
46780
46942
|
"typeDescriptions": {
|
|
46781
|
-
"typeIdentifier": "t_type$_t_contract$_IMarketMaker_$
|
|
46943
|
+
"typeIdentifier": "t_type$_t_contract$_IMarketMaker_$3604_$",
|
|
46782
46944
|
"typeString": "type(contract IMarketMaker)"
|
|
46783
46945
|
}
|
|
46784
46946
|
},
|
|
@@ -46793,7 +46955,7 @@
|
|
|
46793
46955
|
"src": "14950:23:8",
|
|
46794
46956
|
"tryCall": false,
|
|
46795
46957
|
"typeDescriptions": {
|
|
46796
|
-
"typeIdentifier": "t_contract$_IMarketMaker_$
|
|
46958
|
+
"typeIdentifier": "t_contract$_IMarketMaker_$3604",
|
|
46797
46959
|
"typeString": "contract IMarketMaker"
|
|
46798
46960
|
}
|
|
46799
46961
|
},
|
|
@@ -46804,7 +46966,7 @@
|
|
|
46804
46966
|
"lValueRequested": false,
|
|
46805
46967
|
"memberName": "stake",
|
|
46806
46968
|
"nodeType": "MemberAccess",
|
|
46807
|
-
"referencedDeclaration":
|
|
46969
|
+
"referencedDeclaration": 3603,
|
|
46808
46970
|
"src": "14950:29:8",
|
|
46809
46971
|
"typeDescriptions": {
|
|
46810
46972
|
"typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_address_$returns$__$",
|
|
@@ -47476,7 +47638,7 @@
|
|
|
47476
47638
|
"referencedDeclaration": 4294967268,
|
|
47477
47639
|
"src": "15549:4:8",
|
|
47478
47640
|
"typeDescriptions": {
|
|
47479
|
-
"typeIdentifier": "t_contract$_Liquidity_$
|
|
47641
|
+
"typeIdentifier": "t_contract$_Liquidity_$3237",
|
|
47480
47642
|
"typeString": "contract Liquidity"
|
|
47481
47643
|
}
|
|
47482
47644
|
}
|
|
@@ -47484,7 +47646,7 @@
|
|
|
47484
47646
|
"expression": {
|
|
47485
47647
|
"argumentTypes": [
|
|
47486
47648
|
{
|
|
47487
|
-
"typeIdentifier": "t_contract$_Liquidity_$
|
|
47649
|
+
"typeIdentifier": "t_contract$_Liquidity_$3237",
|
|
47488
47650
|
"typeString": "contract Liquidity"
|
|
47489
47651
|
}
|
|
47490
47652
|
],
|
|
@@ -47626,7 +47788,7 @@
|
|
|
47626
47788
|
"referencedDeclaration": 4294967268,
|
|
47627
47789
|
"src": "15626:4:8",
|
|
47628
47790
|
"typeDescriptions": {
|
|
47629
|
-
"typeIdentifier": "t_contract$_Liquidity_$
|
|
47791
|
+
"typeIdentifier": "t_contract$_Liquidity_$3237",
|
|
47630
47792
|
"typeString": "contract Liquidity"
|
|
47631
47793
|
}
|
|
47632
47794
|
}
|
|
@@ -47634,7 +47796,7 @@
|
|
|
47634
47796
|
"expression": {
|
|
47635
47797
|
"argumentTypes": [
|
|
47636
47798
|
{
|
|
47637
|
-
"typeIdentifier": "t_contract$_Liquidity_$
|
|
47799
|
+
"typeIdentifier": "t_contract$_Liquidity_$3237",
|
|
47638
47800
|
"typeString": "contract Liquidity"
|
|
47639
47801
|
}
|
|
47640
47802
|
],
|
|
@@ -47917,7 +48079,7 @@
|
|
|
47917
48079
|
"parameters": [],
|
|
47918
48080
|
"src": "14792:0:8"
|
|
47919
48081
|
},
|
|
47920
|
-
"scope":
|
|
48082
|
+
"scope": 3237,
|
|
47921
48083
|
"src": "14690:988:8",
|
|
47922
48084
|
"stateMutability": "nonpayable",
|
|
47923
48085
|
"virtual": false,
|
|
@@ -49126,7 +49288,7 @@
|
|
|
49126
49288
|
"parameters": [],
|
|
49127
49289
|
"src": "16177:0:8"
|
|
49128
49290
|
},
|
|
49129
|
-
"scope":
|
|
49291
|
+
"scope": 3237,
|
|
49130
49292
|
"src": "16091:586:8",
|
|
49131
49293
|
"stateMutability": "nonpayable",
|
|
49132
49294
|
"virtual": false,
|
|
@@ -49767,7 +49929,7 @@
|
|
|
49767
49929
|
],
|
|
49768
49930
|
"src": "16905:399:8"
|
|
49769
49931
|
},
|
|
49770
|
-
"scope":
|
|
49932
|
+
"scope": 3237,
|
|
49771
49933
|
"src": "16823:822:8",
|
|
49772
49934
|
"stateMutability": "view",
|
|
49773
49935
|
"virtual": false,
|
|
@@ -50278,7 +50440,7 @@
|
|
|
50278
50440
|
],
|
|
50279
50441
|
"src": "17994:153:8"
|
|
50280
50442
|
},
|
|
50281
|
-
"scope":
|
|
50443
|
+
"scope": 3237,
|
|
50282
50444
|
"src": "17879:546:8",
|
|
50283
50445
|
"stateMutability": "view",
|
|
50284
50446
|
"virtual": false,
|
|
@@ -50633,7 +50795,7 @@
|
|
|
50633
50795
|
"referencedDeclaration": 1841,
|
|
50634
50796
|
"src": "19019:3:8",
|
|
50635
50797
|
"typeDescriptions": {
|
|
50636
|
-
"typeIdentifier": "t_array$_t_struct$_provider_$
|
|
50798
|
+
"typeIdentifier": "t_array$_t_struct$_provider_$3326_storage_$dyn_storage",
|
|
50637
50799
|
"typeString": "struct ILiquidity.provider storage ref[] storage ref"
|
|
50638
50800
|
}
|
|
50639
50801
|
},
|
|
@@ -50657,7 +50819,7 @@
|
|
|
50657
50819
|
"nodeType": "IndexAccess",
|
|
50658
50820
|
"src": "19019:6:8",
|
|
50659
50821
|
"typeDescriptions": {
|
|
50660
|
-
"typeIdentifier": "t_struct$_provider_$
|
|
50822
|
+
"typeIdentifier": "t_struct$_provider_$3326_storage",
|
|
50661
50823
|
"typeString": "struct ILiquidity.provider storage ref"
|
|
50662
50824
|
}
|
|
50663
50825
|
},
|
|
@@ -50668,7 +50830,7 @@
|
|
|
50668
50830
|
"lValueRequested": false,
|
|
50669
50831
|
"memberName": "investorAddress",
|
|
50670
50832
|
"nodeType": "MemberAccess",
|
|
50671
|
-
"referencedDeclaration":
|
|
50833
|
+
"referencedDeclaration": 3325,
|
|
50672
50834
|
"src": "19019:22:8",
|
|
50673
50835
|
"typeDescriptions": {
|
|
50674
50836
|
"typeIdentifier": "t_address",
|
|
@@ -50811,7 +50973,7 @@
|
|
|
50811
50973
|
"referencedDeclaration": 1841,
|
|
50812
50974
|
"src": "19100:3:8",
|
|
50813
50975
|
"typeDescriptions": {
|
|
50814
|
-
"typeIdentifier": "t_array$_t_struct$_provider_$
|
|
50976
|
+
"typeIdentifier": "t_array$_t_struct$_provider_$3326_storage_$dyn_storage",
|
|
50815
50977
|
"typeString": "struct ILiquidity.provider storage ref[] storage ref"
|
|
50816
50978
|
}
|
|
50817
50979
|
},
|
|
@@ -50835,7 +50997,7 @@
|
|
|
50835
50997
|
"nodeType": "IndexAccess",
|
|
50836
50998
|
"src": "19100:6:8",
|
|
50837
50999
|
"typeDescriptions": {
|
|
50838
|
-
"typeIdentifier": "t_struct$_provider_$
|
|
51000
|
+
"typeIdentifier": "t_struct$_provider_$3326_storage",
|
|
50839
51001
|
"typeString": "struct ILiquidity.provider storage ref"
|
|
50840
51002
|
}
|
|
50841
51003
|
},
|
|
@@ -50846,7 +51008,7 @@
|
|
|
50846
51008
|
"lValueRequested": false,
|
|
50847
51009
|
"memberName": "investorAddress",
|
|
50848
51010
|
"nodeType": "MemberAccess",
|
|
50849
|
-
"referencedDeclaration":
|
|
51011
|
+
"referencedDeclaration": 3325,
|
|
50850
51012
|
"src": "19100:22:8",
|
|
50851
51013
|
"typeDescriptions": {
|
|
50852
51014
|
"typeIdentifier": "t_address",
|
|
@@ -51013,7 +51175,7 @@
|
|
|
51013
51175
|
"referencedDeclaration": 1841,
|
|
51014
51176
|
"src": "18945:3:8",
|
|
51015
51177
|
"typeDescriptions": {
|
|
51016
|
-
"typeIdentifier": "t_array$_t_struct$_provider_$
|
|
51178
|
+
"typeIdentifier": "t_array$_t_struct$_provider_$3326_storage_$dyn_storage",
|
|
51017
51179
|
"typeString": "struct ILiquidity.provider storage ref[] storage ref"
|
|
51018
51180
|
}
|
|
51019
51181
|
},
|
|
@@ -51218,7 +51380,7 @@
|
|
|
51218
51380
|
"parameters": [],
|
|
51219
51381
|
"src": "18755:0:8"
|
|
51220
51382
|
},
|
|
51221
|
-
"scope":
|
|
51383
|
+
"scope": 3237,
|
|
51222
51384
|
"src": "18678:523:8",
|
|
51223
51385
|
"stateMutability": "nonpayable",
|
|
51224
51386
|
"virtual": false,
|
|
@@ -51226,27 +51388,169 @@
|
|
|
51226
51388
|
},
|
|
51227
51389
|
{
|
|
51228
51390
|
"body": {
|
|
51229
|
-
"id":
|
|
51391
|
+
"id": 3215,
|
|
51392
|
+
"nodeType": "Block",
|
|
51393
|
+
"src": "19290:45:8",
|
|
51394
|
+
"statements": [
|
|
51395
|
+
{
|
|
51396
|
+
"expression": {
|
|
51397
|
+
"arguments": [
|
|
51398
|
+
{
|
|
51399
|
+
"id": 3212,
|
|
51400
|
+
"name": "investor",
|
|
51401
|
+
"nodeType": "Identifier",
|
|
51402
|
+
"overloadedDeclarations": [],
|
|
51403
|
+
"referencedDeclaration": 3206,
|
|
51404
|
+
"src": "19318:8:8",
|
|
51405
|
+
"typeDescriptions": {
|
|
51406
|
+
"typeIdentifier": "t_address",
|
|
51407
|
+
"typeString": "address"
|
|
51408
|
+
}
|
|
51409
|
+
}
|
|
51410
|
+
],
|
|
51411
|
+
"expression": {
|
|
51412
|
+
"argumentTypes": [
|
|
51413
|
+
{
|
|
51414
|
+
"typeIdentifier": "t_address",
|
|
51415
|
+
"typeString": "address"
|
|
51416
|
+
}
|
|
51417
|
+
],
|
|
51418
|
+
"id": 3211,
|
|
51419
|
+
"name": "balanceOf",
|
|
51420
|
+
"nodeType": "Identifier",
|
|
51421
|
+
"overloadedDeclarations": [],
|
|
51422
|
+
"referencedDeclaration": 294,
|
|
51423
|
+
"src": "19308:9:8",
|
|
51424
|
+
"typeDescriptions": {
|
|
51425
|
+
"typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$",
|
|
51426
|
+
"typeString": "function (address) view returns (uint256)"
|
|
51427
|
+
}
|
|
51428
|
+
},
|
|
51429
|
+
"id": 3213,
|
|
51430
|
+
"isConstant": false,
|
|
51431
|
+
"isLValue": false,
|
|
51432
|
+
"isPure": false,
|
|
51433
|
+
"kind": "functionCall",
|
|
51434
|
+
"lValueRequested": false,
|
|
51435
|
+
"names": [],
|
|
51436
|
+
"nodeType": "FunctionCall",
|
|
51437
|
+
"src": "19308:19:8",
|
|
51438
|
+
"tryCall": false,
|
|
51439
|
+
"typeDescriptions": {
|
|
51440
|
+
"typeIdentifier": "t_uint256",
|
|
51441
|
+
"typeString": "uint256"
|
|
51442
|
+
}
|
|
51443
|
+
},
|
|
51444
|
+
"functionReturnParameters": 3210,
|
|
51445
|
+
"id": 3214,
|
|
51446
|
+
"nodeType": "Return",
|
|
51447
|
+
"src": "19301:26:8"
|
|
51448
|
+
}
|
|
51449
|
+
]
|
|
51450
|
+
},
|
|
51451
|
+
"functionSelector": "e3d670d7",
|
|
51452
|
+
"id": 3216,
|
|
51453
|
+
"implemented": true,
|
|
51454
|
+
"kind": "function",
|
|
51455
|
+
"modifiers": [],
|
|
51456
|
+
"name": "balance",
|
|
51457
|
+
"nodeType": "FunctionDefinition",
|
|
51458
|
+
"parameters": {
|
|
51459
|
+
"id": 3207,
|
|
51460
|
+
"nodeType": "ParameterList",
|
|
51461
|
+
"parameters": [
|
|
51462
|
+
{
|
|
51463
|
+
"constant": false,
|
|
51464
|
+
"id": 3206,
|
|
51465
|
+
"mutability": "mutable",
|
|
51466
|
+
"name": "investor",
|
|
51467
|
+
"nodeType": "VariableDeclaration",
|
|
51468
|
+
"scope": 3216,
|
|
51469
|
+
"src": "19226:16:8",
|
|
51470
|
+
"stateVariable": false,
|
|
51471
|
+
"storageLocation": "default",
|
|
51472
|
+
"typeDescriptions": {
|
|
51473
|
+
"typeIdentifier": "t_address",
|
|
51474
|
+
"typeString": "address"
|
|
51475
|
+
},
|
|
51476
|
+
"typeName": {
|
|
51477
|
+
"id": 3205,
|
|
51478
|
+
"name": "address",
|
|
51479
|
+
"nodeType": "ElementaryTypeName",
|
|
51480
|
+
"src": "19226:7:8",
|
|
51481
|
+
"stateMutability": "nonpayable",
|
|
51482
|
+
"typeDescriptions": {
|
|
51483
|
+
"typeIdentifier": "t_address",
|
|
51484
|
+
"typeString": "address"
|
|
51485
|
+
}
|
|
51486
|
+
},
|
|
51487
|
+
"visibility": "internal"
|
|
51488
|
+
}
|
|
51489
|
+
],
|
|
51490
|
+
"src": "19225:18:8"
|
|
51491
|
+
},
|
|
51492
|
+
"returnParameters": {
|
|
51493
|
+
"id": 3210,
|
|
51494
|
+
"nodeType": "ParameterList",
|
|
51495
|
+
"parameters": [
|
|
51496
|
+
{
|
|
51497
|
+
"constant": false,
|
|
51498
|
+
"id": 3209,
|
|
51499
|
+
"mutability": "mutable",
|
|
51500
|
+
"name": "investorBalance",
|
|
51501
|
+
"nodeType": "VariableDeclaration",
|
|
51502
|
+
"scope": 3216,
|
|
51503
|
+
"src": "19266:23:8",
|
|
51504
|
+
"stateVariable": false,
|
|
51505
|
+
"storageLocation": "default",
|
|
51506
|
+
"typeDescriptions": {
|
|
51507
|
+
"typeIdentifier": "t_uint256",
|
|
51508
|
+
"typeString": "uint256"
|
|
51509
|
+
},
|
|
51510
|
+
"typeName": {
|
|
51511
|
+
"id": 3208,
|
|
51512
|
+
"name": "uint256",
|
|
51513
|
+
"nodeType": "ElementaryTypeName",
|
|
51514
|
+
"src": "19266:7:8",
|
|
51515
|
+
"typeDescriptions": {
|
|
51516
|
+
"typeIdentifier": "t_uint256",
|
|
51517
|
+
"typeString": "uint256"
|
|
51518
|
+
}
|
|
51519
|
+
},
|
|
51520
|
+
"visibility": "internal"
|
|
51521
|
+
}
|
|
51522
|
+
],
|
|
51523
|
+
"src": "19265:25:8"
|
|
51524
|
+
},
|
|
51525
|
+
"scope": 3237,
|
|
51526
|
+
"src": "19209:126:8",
|
|
51527
|
+
"stateMutability": "view",
|
|
51528
|
+
"virtual": false,
|
|
51529
|
+
"visibility": "external"
|
|
51530
|
+
},
|
|
51531
|
+
{
|
|
51532
|
+
"body": {
|
|
51533
|
+
"id": 3225,
|
|
51230
51534
|
"nodeType": "Block",
|
|
51231
|
-
"src": "
|
|
51535
|
+
"src": "19425:27:8",
|
|
51232
51536
|
"statements": [
|
|
51233
51537
|
{
|
|
51234
51538
|
"expression": {
|
|
51235
51539
|
"arguments": [],
|
|
51236
51540
|
"expression": {
|
|
51237
51541
|
"argumentTypes": [],
|
|
51238
|
-
"id":
|
|
51542
|
+
"id": 3222,
|
|
51239
51543
|
"name": "_pause",
|
|
51240
51544
|
"nodeType": "Identifier",
|
|
51241
51545
|
"overloadedDeclarations": [],
|
|
51242
51546
|
"referencedDeclaration": 178,
|
|
51243
|
-
"src": "
|
|
51547
|
+
"src": "19436:6:8",
|
|
51244
51548
|
"typeDescriptions": {
|
|
51245
51549
|
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
|
|
51246
51550
|
"typeString": "function ()"
|
|
51247
51551
|
}
|
|
51248
51552
|
},
|
|
51249
|
-
"id":
|
|
51553
|
+
"id": 3223,
|
|
51250
51554
|
"isConstant": false,
|
|
51251
51555
|
"isLValue": false,
|
|
51252
51556
|
"isPure": false,
|
|
@@ -51254,86 +51558,86 @@
|
|
|
51254
51558
|
"lValueRequested": false,
|
|
51255
51559
|
"names": [],
|
|
51256
51560
|
"nodeType": "FunctionCall",
|
|
51257
|
-
"src": "
|
|
51561
|
+
"src": "19436:8:8",
|
|
51258
51562
|
"tryCall": false,
|
|
51259
51563
|
"typeDescriptions": {
|
|
51260
51564
|
"typeIdentifier": "t_tuple$__$",
|
|
51261
51565
|
"typeString": "tuple()"
|
|
51262
51566
|
}
|
|
51263
51567
|
},
|
|
51264
|
-
"id":
|
|
51568
|
+
"id": 3224,
|
|
51265
51569
|
"nodeType": "ExpressionStatement",
|
|
51266
|
-
"src": "
|
|
51570
|
+
"src": "19436:8:8"
|
|
51267
51571
|
}
|
|
51268
51572
|
]
|
|
51269
51573
|
},
|
|
51270
51574
|
"documentation": {
|
|
51271
|
-
"id":
|
|
51575
|
+
"id": 3217,
|
|
51272
51576
|
"nodeType": "StructuredDocumentation",
|
|
51273
|
-
"src": "
|
|
51577
|
+
"src": "19343:42:8",
|
|
51274
51578
|
"text": "Pauses this contract"
|
|
51275
51579
|
},
|
|
51276
51580
|
"functionSelector": "8456cb59",
|
|
51277
|
-
"id":
|
|
51581
|
+
"id": 3226,
|
|
51278
51582
|
"implemented": true,
|
|
51279
51583
|
"kind": "function",
|
|
51280
51584
|
"modifiers": [
|
|
51281
51585
|
{
|
|
51282
|
-
"id":
|
|
51586
|
+
"id": 3220,
|
|
51283
51587
|
"modifierName": {
|
|
51284
|
-
"id":
|
|
51588
|
+
"id": 3219,
|
|
51285
51589
|
"name": "onlyOwner",
|
|
51286
51590
|
"nodeType": "IdentifierPath",
|
|
51287
51591
|
"referencedDeclaration": 46,
|
|
51288
|
-
"src": "
|
|
51592
|
+
"src": "19408:9:8"
|
|
51289
51593
|
},
|
|
51290
51594
|
"nodeType": "ModifierInvocation",
|
|
51291
|
-
"src": "
|
|
51595
|
+
"src": "19408:9:8"
|
|
51292
51596
|
}
|
|
51293
51597
|
],
|
|
51294
51598
|
"name": "pause",
|
|
51295
51599
|
"nodeType": "FunctionDefinition",
|
|
51296
51600
|
"parameters": {
|
|
51297
|
-
"id":
|
|
51601
|
+
"id": 3218,
|
|
51298
51602
|
"nodeType": "ParameterList",
|
|
51299
51603
|
"parameters": [],
|
|
51300
|
-
"src": "
|
|
51604
|
+
"src": "19405:2:8"
|
|
51301
51605
|
},
|
|
51302
51606
|
"returnParameters": {
|
|
51303
|
-
"id":
|
|
51607
|
+
"id": 3221,
|
|
51304
51608
|
"nodeType": "ParameterList",
|
|
51305
51609
|
"parameters": [],
|
|
51306
|
-
"src": "
|
|
51610
|
+
"src": "19425:0:8"
|
|
51307
51611
|
},
|
|
51308
|
-
"scope":
|
|
51309
|
-
"src": "
|
|
51612
|
+
"scope": 3237,
|
|
51613
|
+
"src": "19391:61:8",
|
|
51310
51614
|
"stateMutability": "nonpayable",
|
|
51311
51615
|
"virtual": false,
|
|
51312
51616
|
"visibility": "public"
|
|
51313
51617
|
},
|
|
51314
51618
|
{
|
|
51315
51619
|
"body": {
|
|
51316
|
-
"id":
|
|
51620
|
+
"id": 3235,
|
|
51317
51621
|
"nodeType": "Block",
|
|
51318
|
-
"src": "
|
|
51622
|
+
"src": "19550:29:8",
|
|
51319
51623
|
"statements": [
|
|
51320
51624
|
{
|
|
51321
51625
|
"expression": {
|
|
51322
51626
|
"arguments": [],
|
|
51323
51627
|
"expression": {
|
|
51324
51628
|
"argumentTypes": [],
|
|
51325
|
-
"id":
|
|
51629
|
+
"id": 3232,
|
|
51326
51630
|
"name": "_unpause",
|
|
51327
51631
|
"nodeType": "Identifier",
|
|
51328
51632
|
"overloadedDeclarations": [],
|
|
51329
51633
|
"referencedDeclaration": 194,
|
|
51330
|
-
"src": "
|
|
51634
|
+
"src": "19561:8:8",
|
|
51331
51635
|
"typeDescriptions": {
|
|
51332
51636
|
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
|
|
51333
51637
|
"typeString": "function ()"
|
|
51334
51638
|
}
|
|
51335
51639
|
},
|
|
51336
|
-
"id":
|
|
51640
|
+
"id": 3233,
|
|
51337
51641
|
"isConstant": false,
|
|
51338
51642
|
"isLValue": false,
|
|
51339
51643
|
"isPure": false,
|
|
@@ -51341,69 +51645,69 @@
|
|
|
51341
51645
|
"lValueRequested": false,
|
|
51342
51646
|
"names": [],
|
|
51343
51647
|
"nodeType": "FunctionCall",
|
|
51344
|
-
"src": "
|
|
51648
|
+
"src": "19561:10:8",
|
|
51345
51649
|
"tryCall": false,
|
|
51346
51650
|
"typeDescriptions": {
|
|
51347
51651
|
"typeIdentifier": "t_tuple$__$",
|
|
51348
51652
|
"typeString": "tuple()"
|
|
51349
51653
|
}
|
|
51350
51654
|
},
|
|
51351
|
-
"id":
|
|
51655
|
+
"id": 3234,
|
|
51352
51656
|
"nodeType": "ExpressionStatement",
|
|
51353
|
-
"src": "
|
|
51657
|
+
"src": "19561:10:8"
|
|
51354
51658
|
}
|
|
51355
51659
|
]
|
|
51356
51660
|
},
|
|
51357
51661
|
"documentation": {
|
|
51358
|
-
"id":
|
|
51662
|
+
"id": 3227,
|
|
51359
51663
|
"nodeType": "StructuredDocumentation",
|
|
51360
|
-
"src": "
|
|
51664
|
+
"src": "19464:44:8",
|
|
51361
51665
|
"text": "Unpauses this contract"
|
|
51362
51666
|
},
|
|
51363
51667
|
"functionSelector": "3f4ba83a",
|
|
51364
|
-
"id":
|
|
51668
|
+
"id": 3236,
|
|
51365
51669
|
"implemented": true,
|
|
51366
51670
|
"kind": "function",
|
|
51367
51671
|
"modifiers": [
|
|
51368
51672
|
{
|
|
51369
|
-
"id":
|
|
51673
|
+
"id": 3230,
|
|
51370
51674
|
"modifierName": {
|
|
51371
|
-
"id":
|
|
51675
|
+
"id": 3229,
|
|
51372
51676
|
"name": "onlyOwner",
|
|
51373
51677
|
"nodeType": "IdentifierPath",
|
|
51374
51678
|
"referencedDeclaration": 46,
|
|
51375
|
-
"src": "
|
|
51679
|
+
"src": "19533:9:8"
|
|
51376
51680
|
},
|
|
51377
51681
|
"nodeType": "ModifierInvocation",
|
|
51378
|
-
"src": "
|
|
51682
|
+
"src": "19533:9:8"
|
|
51379
51683
|
}
|
|
51380
51684
|
],
|
|
51381
51685
|
"name": "unpause",
|
|
51382
51686
|
"nodeType": "FunctionDefinition",
|
|
51383
51687
|
"parameters": {
|
|
51384
|
-
"id":
|
|
51688
|
+
"id": 3228,
|
|
51385
51689
|
"nodeType": "ParameterList",
|
|
51386
51690
|
"parameters": [],
|
|
51387
|
-
"src": "
|
|
51691
|
+
"src": "19530:2:8"
|
|
51388
51692
|
},
|
|
51389
51693
|
"returnParameters": {
|
|
51390
|
-
"id":
|
|
51694
|
+
"id": 3231,
|
|
51391
51695
|
"nodeType": "ParameterList",
|
|
51392
51696
|
"parameters": [],
|
|
51393
|
-
"src": "
|
|
51697
|
+
"src": "19550:0:8"
|
|
51394
51698
|
},
|
|
51395
|
-
"scope":
|
|
51396
|
-
"src": "
|
|
51699
|
+
"scope": 3237,
|
|
51700
|
+
"src": "19514:65:8",
|
|
51397
51701
|
"stateMutability": "nonpayable",
|
|
51398
51702
|
"virtual": false,
|
|
51399
51703
|
"visibility": "public"
|
|
51400
51704
|
}
|
|
51401
51705
|
],
|
|
51402
|
-
"scope":
|
|
51403
|
-
"src": "499:
|
|
51706
|
+
"scope": 3238,
|
|
51707
|
+
"src": "499:19085:8"
|
|
51404
51708
|
}
|
|
51405
51709
|
],
|
|
51406
|
-
"src": "102:
|
|
51710
|
+
"src": "102:19486:8"
|
|
51407
51711
|
},
|
|
51408
51712
|
"compiler": {
|
|
51409
51713
|
"name": "solc",
|
|
@@ -51413,12 +51717,12 @@
|
|
|
51413
51717
|
"3": {
|
|
51414
51718
|
"events": {},
|
|
51415
51719
|
"links": {},
|
|
51416
|
-
"address": "
|
|
51417
|
-
"transactionHash": "
|
|
51720
|
+
"address": "0x38465490aE03b2641D0497baf1F2CfeE3adB33a0",
|
|
51721
|
+
"transactionHash": "0x6277a53b08103c7ea24dc51d7b9aeb5b411a376f4d950af9d6ea9b7228d4ab2b"
|
|
51418
51722
|
}
|
|
51419
51723
|
},
|
|
51420
51724
|
"schemaVersion": "3.4.3",
|
|
51421
|
-
"updatedAt": "2022-04-
|
|
51725
|
+
"updatedAt": "2022-04-25T13:52:07.185Z",
|
|
51422
51726
|
"networkType": "ethereum",
|
|
51423
51727
|
"devdoc": {
|
|
51424
51728
|
"kind": "dev",
|