@dolomite-exchange/dolomite-margin
Version:
Ethereum Smart Contracts and TypeScript library used for the DolomiteMargin trading protocol
368 lines • 1.07 MB
JSON
{
"contractName": "DepositWithdrawalProxy",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "_dolomiteMargin",
"type": "address"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"payable": true,
"stateMutability": "payable",
"type": "fallback"
},
{
"constant": true,
"inputs": [],
"name": "DOLOMITE_MARGIN",
"outputs": [
{
"internalType": "contract IDolomiteMargin",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "PAYABLE_MARKET_ID",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "WRAPPED_PAYABLE_TOKEN",
"outputs": [
{
"internalType": "contract IWETH",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "g_initialized",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address payable",
"name": "_payableToken",
"type": "address"
}
],
"name": "initializePayableMarket",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "_toAccountNumber",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_marketId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_amountWei",
"type": "uint256"
}
],
"name": "depositWei",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "_toAccountNumber",
"type": "uint256"
}
],
"name": "depositPayable",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "_marketId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_amountWei",
"type": "uint256"
}
],
"name": "depositWeiIntoDefaultAccount",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "depositPayableIntoDefaultAccount",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "_fromAccountNumber",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_marketId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_amountWei",
"type": "uint256"
},
{
"internalType": "enum AccountBalanceLib.BalanceCheckFlag",
"name": "_balanceCheckFlag",
"type": "uint8"
}
],
"name": "withdrawWei",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "_fromAccountNumber",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_amountWei",
"type": "uint256"
},
{
"internalType": "enum AccountBalanceLib.BalanceCheckFlag",
"name": "_balanceCheckFlag",
"type": "uint8"
}
],
"name": "withdrawPayable",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "_marketId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_amountWei",
"type": "uint256"
},
{
"internalType": "enum AccountBalanceLib.BalanceCheckFlag",
"name": "_balanceCheckFlag",
"type": "uint8"
}
],
"name": "withdrawWeiFromDefaultAccount",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "_amountWei",
"type": "uint256"
},
{
"internalType": "enum AccountBalanceLib.BalanceCheckFlag",
"name": "_balanceCheckFlag",
"type": "uint8"
}
],
"name": "withdrawPayableFromDefaultAccount",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "_toAccountNumber",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_marketId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_amountPar",
"type": "uint256"
}
],
"name": "depositPar",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "_marketId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_amountPar",
"type": "uint256"
}
],
"name": "depositParIntoDefaultAccount",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "_fromAccountNumber",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_marketId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_amountPar",
"type": "uint256"
},
{
"internalType": "enum AccountBalanceLib.BalanceCheckFlag",
"name": "_balanceCheckFlag",
"type": "uint8"
}
],
"name": "withdrawPar",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "_marketId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_amountPar",
"type": "uint256"
},
{
"internalType": "enum AccountBalanceLib.BalanceCheckFlag",
"name": "_balanceCheckFlag",
"type": "uint8"
}
],
"name": "withdrawParFromDefaultAccount",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_dolomiteMargin\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"constant\":true,\"inputs\":[],\"name\":\"DOLOMITE_MARGIN\",\"outputs\":[{\"internalType\":\"contract IDolomiteMargin\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PAYABLE_MARKET_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"WRAPPED_PAYABLE_TOKEN\",\"outputs\":[{\"internalType\":\"contract IWETH\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_toAccountNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_marketId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_amountPar\",\"type\":\"uint256\"}],\"name\":\"depositPar\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_marketId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_amountPar\",\"type\":\"uint256\"}],\"name\":\"depositParIntoDefaultAccount\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_toAccountNumber\",\"type\":\"uint256\"}],\"name\":\"depositPayable\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"depositPayableIntoDefaultAccount\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_toAccountNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_marketId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_amountWei\",\"type\":\"uint256\"}],\"name\":\"depositWei\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_marketId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_amountWei\",\"type\":\"uint256\"}],\"name\":\"depositWeiIntoDefaultAccount\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"g_initialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_payableToken\",\"type\":\"address\"}],\"name\":\"initializePayableMarket\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_fromAccountNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_marketId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_amountPar\",\"type\":\"uint256\"},{\"internalType\":\"enum AccountBalanceLib.BalanceCheckFlag\",\"name\":\"_balanceCheckFlag\",\"type\":\"uint8\"}],\"name\":\"withdrawPar\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_marketId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_amountPar\",\"type\":\"uint256\"},{\"internalType\":\"enum AccountBalanceLib.BalanceCheckFlag\",\"name\":\"_balanceCheckFlag\",\"type\":\"uint8\"}],\"name\":\"withdrawParFromDefaultAccount\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_fromAccountNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_amountWei\",\"type\":\"uint256\"},{\"internalType\":\"enum AccountBalanceLib.BalanceCheckFlag\",\"name\":\"_balanceCheckFlag\",\"type\":\"uint8\"}],\"name\":\"withdrawPayable\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amountWei\",\"type\":\"uint256\"},{\"internalType\":\"enum AccountBalanceLib.BalanceCheckFlag\",\"name\":\"_balanceCheckFlag\",\"type\":\"uint8\"}],\"name\":\"withdrawPayableFromDefaultAccount\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_fromAccountNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_marketId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_amountWei\",\"type\":\"uint256\"},{\"internalType\":\"enum AccountBalanceLib.BalanceCheckFlag\",\"name\":\"_balanceCheckFlag\",\"type\":\"uint8\"}],\"name\":\"withdrawWei\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_marketId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_amountWei\",\"type\":\"uint256\"},{\"internalType\":\"enum AccountBalanceLib.BalanceCheckFlag\",\"name\":\"_balanceCheckFlag\",\"type\":\"uint8\"}],\"name\":\"withdrawWeiFromDefaultAccount\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Dolomite\",\"details\":\"Contract for depositing or withdrawing to/from Dolomite easily. This lowers gas costs on Arbitrum by minimizing callData\",\"methods\":{},\"title\":\"DepositWithdrawalProxy\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/external/proxies/DepositWithdrawalProxy.sol\":\"DepositWithdrawalProxy\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/external/helpers/OnlyDolomiteMargin.sol\":{\"keccak256\":\"0xe40babc0a6dd2a767d76f3e0f0a22de124c4c480f2b2227a7b924b44e57526ea\",\"urls\":[\"bzz-raw://458f7f1f16eacd4faae597090503dc1e58446e9d371640c77b2e01e3e3113f17\",\"dweb:/ipfs/QmXqTG4sWJeDh5XA286KarbqHT4qJ7m3dphS16enpqtQiX\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/external/interfaces/IDepositWithdrawalProxy.sol\":{\"keccak256\":\"0x3602a42de25e379b39e1d4d1fbe5b65ffbbf119c8657350189e627bbcab6bbfd\",\"urls\":[\"bzz-raw://d2e4c68fe59712bd13ebb64e600035c7da3cbfb76d1600892ee6e5cf16900421\",\"dweb:/ipfs/QmYFTa5BTJtVMg7QCtXtRxm2aD1cK6bA2pCpUghahNUGz9\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/external/interfaces/IExpiry.sol\":{\"keccak256\":\"0xa7b197139e570e823cab42c3b8500c9c5edc8a40110970a7d6fe60f05864ba10\",\"urls\":[\"bzz-raw://4f469be063d8f694c5277650bc53ac2c0d164f62e36c6a9ab7dad126479990a9\",\"dweb:/ipfs/Qme4sTbGi4T2QhsJSweqGzqm5rxQkypy27g1vLy8ipVijV\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/external/interfaces/IWETH.sol\":{\"keccak256\":\"0xe85314496167d5a47ea89275d8cdbe53f00927bf933242f67f2acc4126edda0d\",\"urls\":[\"bzz-raw://5b16b1b7602e31c1243f2514bf4bff17d2fc0de0843ad7de6548545d954e4650\",\"dweb:/ipfs/QmcQWaEdqTfkDhHxbFdJX2ytwFtoUGNWCRk1w8DhFhsuf7\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/external/lib/AccountActionLib.sol\":{\"keccak256\":\"0x5488dd7eae5ce96e479445f19301d9dd44d292a2d6739b9da1fe948eeb41edc4\",\"urls\":[\"bzz-raw://06977e07aea4d893db696173f3ee01a84008770c4e0d81fb5eb82af3a597ceaa\",\"dweb:/ipfs/QmYiH8CsXEbHypJ2gN31LnZv2tfzd2RBuSKoRgx2EbBw26\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/external/lib/AccountBalanceLib.sol\":{\"keccak256\":\"0x76fd16d615fe7cfceaf775b4e6524fd0462606c802b082498c768a7a4ca01a20\",\"urls\":[\"bzz-raw://56068145e300cde1c77c22e38cb753378abf2f0d4613dcb203e33ff101f169e2\",\"dweb:/ipfs/QmXvMzr9n7vzMHdUPgnc58KX4mrbQAqkq4kDETaj5Y55ZY\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/external/proxies/DepositWithdrawalProxy.sol\":{\"keccak256\":\"0x35df768c10793f5a1fa37d14b5ae5343a2caf3e0f2ef81a32b9f8bb23e3c9fd5\",\"urls\":[\"bzz-raw://4d34a1f817adce9c5b1600dd88d981b84c6de9ef7ef22e747b4aac7956185f0f\",\"dweb:/ipfs/Qmd27T86mccoen4GU3LijveGZayMrxZ3RoVM8VSWXuqc3z\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/interfaces/IAccountRiskOverrideSetter.sol\":{\"keccak256\":\"0x5b9fde139ddfdaae7b650b3c3f6699e0e44605f0d9d3daadc1622eb06ad4c3f8\",\"urls\":[\"bzz-raw://2dfd5af24b6de63f94519c99fd8777a264d7cd11266fa2d525c7d72d96a9c7cf\",\"dweb:/ipfs/QmPg9fjhbnmBayZMh6yTG79xsK1PWSoAHA5pfwSXfnKKjF\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/interfaces/IDolomiteMargin.sol\":{\"keccak256\":\"0x7e86ed1ed04dc205245db9f4e7cf7cca60c3bfc46c57ade8129a463780647967\",\"urls\":[\"bzz-raw://f8fbd85afd334c12bdccbb6523ebea9172b27b7b4b132c4a48b4b4dd03ceeb2b\",\"dweb:/ipfs/QmU1srfSqBTz3kw7oz1KEzfTUJvphZiE4K8MRZcy9uJjv1\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/interfaces/IERC20Detailed.sol\":{\"keccak256\":\"0x22a62e2a8155e70300773721902f4b9118e17aa0bb5d9d1b046050a014cfb223\",\"urls\":[\"bzz-raw://03af737a33c552fbe58f6f1fbd5496854fdc28dd57be4365d56663725c083a18\",\"dweb:/ipfs/QmbgLqGAQEd6tXsZB8QaPNCAMiU6nNzP75wNbKdS65BuUF\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/interfaces/IInterestSetter.sol\":{\"keccak256\":\"0x546825f65490a30e29d0f6446acec49c1e895ce6b33d48ca5c05092725a63a57\",\"urls\":[\"bzz-raw://6ad3013aed985bdf6e6234ae0f7f37e6bba76c3470c33bfa24678cf19b3b412c\",\"dweb:/ipfs/QmfYaSBzxGpgiHoR7ontMJY66S5L26XwkLYoEuzsEjpbQH\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/interfaces/IOracleSentinel.sol\":{\"keccak256\":\"0xa94499fda55ef112640daed2cb1d06062e72c51c7b925c323b4e0ffa9b456ce5\",\"urls\":[\"bzz-raw://18b4a16acac577590a57f34f7ec6583e3cb35f575c948abb928b308d29cac1ab\",\"dweb:/ipfs/QmR1jLkzj6w7SjrdZ7GVW4V2vofSdMJwzjTqKpeUKABvxu\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/interfaces/IPriceOracle.sol\":{\"keccak256\":\"0x3f7c3d1397390ea44c6d5e5730d49476431c3df3b28334fe38218de5edc31138\",\"urls\":[\"bzz-raw://63ebf926fca9ce33aaabaf93805686acc25daded1648d6dab59c8c4d05116918\",\"dweb:/ipfs/QmeGkDp7ycYstpfqCYBiqoCYwy876gabx8r42o5koj3H5A\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Account.sol\":{\"keccak256\":\"0x2059276ea5e478bd5ac7f2712e7b1b6c85d291c647a54b264909044844828e67\",\"urls\":[\"bzz-raw://f153777051d12131b13a57e5c3af10a2670927cfc7d22c9519ab20c9b4b9bc89\",\"dweb:/ipfs/QmQMP3qS5xDAVGYKDfNkbkSqBKozQGQsGqX4e8VyjRtxPS\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Actions.sol\":{\"keccak256\":\"0x7b2fcf441c034952dd042b6c8b20b148359db771e7c9ac07d06369560a9f0301\",\"urls\":[\"bzz-raw://84665ee4a780360fe6160d197ba98f0bf0ab0d7c6ad87bfed6226bf2f88d8d30\",\"dweb:/ipfs/QmRDfRdAd8hSXeu4SAeeYKkKoXBhStu7n4uReYBce2JD5Z\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Bits.sol\":{\"keccak256\":\"0x6d9a641163b2dd25e648c65f5d9e4949a57938e29ddc4c9dddefd74a9964aeef\",\"urls\":[\"bzz-raw://67e5a04ed4055faafbc100d6ccca9c54448ed378a1a8c71171562edda7bcbf7c\",\"dweb:/ipfs/QmYRikK3Xbgiq3UBJkgoo2zNUSSrShVabpRHmQj6iQHhrc\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Cache.sol\":{\"keccak256\":\"0xe57c80a7621a77fcb2acb9f883fb5248e71a6dce03bc2db56df0db3fee332950\",\"urls\":[\"bzz-raw://28e221c04629674490b9a0041d4f9a5f15e669dc0cc192a5df6e2c701c36369f\",\"dweb:/ipfs/QmaL3oh8c7v9cx91pB175pyCEuzxnhNTab4UxmBMsDYfUx\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Decimal.sol\":{\"keccak256\":\"0xd9a348c2b1eec076609ba12bbec6b9c2e4ea135790a7ef4f5411feb050af2144\",\"urls\":[\"bzz-raw://d5bcff29e47d5cd02d7a9966e9f44c46ccbb4f0e4adfc4b0b86646880677db39\",\"dweb:/ipfs/QmRKfJD4FFM1AvTynSFNx1NcDg94o9SAcjz7dvMaJCfecp\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/DolomiteMarginMath.sol\":{\"keccak256\":\"0x53f205f6a779d579be29faa9412c806a892b3e605fff092dfd9d14d936fa019f\",\"urls\":[\"bzz-raw://0ff936f89602a63b8e6a4eb4ce8f87673c0f45b7ce29694920905a3f0b5a6a69\",\"dweb:/ipfs/QmbYME9BeEvPC1ndV8EaUDX5fDMghLc3rocNUxFtgHmg8m\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/EnumerableSet.sol\":{\"keccak256\":\"0x41a3460e34b7b8635d936e35e6568ceb5354b638f53b884530e0d4875fa0f151\",\"urls\":[\"bzz-raw://d1a5ba866ee95d455afe5075dadd91fc71c2806371f2c1b358a1f67c632bb0df\",\"dweb:/ipfs/QmW4qCjmsG8J3UJv97GwDLDM7wt1K4yLDKAwzWMY7TFYi5\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Interest.sol\":{\"keccak256\":\"0x141a0ecb4a746f0e5767df4b99dbe33c6362df507ae9d5c02da1c1c17bc26df3\",\"urls\":[\"bzz-raw://9ff03e64a8ce5231acde07788624bf8c7a8ff55d90b157fa32f62fa887a0eff0\",\"dweb:/ipfs/QmUVxxWeE954RDXbmHJAYnHsXcit6rSXGqZUigu8t9oH2z\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Monetary.sol\":{\"keccak256\":\"0x5257274f2d4d3605f3e97ec45fb902111fe9a22506f0b4cf308ea933bc81bfe2\",\"urls\":[\"bzz-raw://85b8023b78805063a2ec8d376f1f5983994eabd96efd8ceadb0224dbb71c5678\",\"dweb:/ipfs/QmaDhzCzRqsuHuJfhToEC4pATQHwhh7yWWsjwfuRzFT1kG\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Require.sol\":{\"keccak256\":\"0x05a2a90b41b6a5f42f0a72da63d015fb0b406a9ba2172823352e522e8bf3a606\",\"urls\":[\"bzz-raw://19883f0c6d33266f756ec5c3d17539524aa24b993c46c33f8400801d09373a6c\",\"dweb:/ipfs/QmYX2fwK3vQQDSZLMrc5wMfeb8RWrcC9CGX8XECLty8QDk\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Storage.sol\":{\"keccak256\":\"0x9c27f3cd52af28c9b6bca18097b1793f114d08284d78417467d0d05f67e9e2a9\",\"urls\":[\"bzz-raw://d1ed0e7a7f76d59f30572996d4e164ab8fb5b2ec4bfca127983f9e936b904813\",\"dweb:/ipfs/QmePVYbgrY8Yw3Vf76pmEvE9pX916Jaa9we4kjM8tGM4J1\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Time.sol\":{\"keccak256\":\"0x87ee8d3c1d6e315a116426d8c8fc6f083e220fd14dda27fad4e8d7cab3dc7305\",\"urls\":[\"bzz-raw://7c20f2c52da682c3b5917fb6a19e81f43699b1d13c62b569ed723f34da72e766\",\"dweb:/ipfs/QmbXWYXi67nHBVNDKYUpo2E9ZaEVcHLvmXQkpYLMm1d5Vm\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Token.sol\":{\"keccak256\":\"0x095b5f8eb3665f6e246200311efc8a654fa3e90f9a1a522e27a4d089e8ab3917\",\"urls\":[\"bzz-raw://5db812b752a03d601d424e6e21be38153477082af0acf51b5c98eefa5553ed18\",\"dweb:/ipfs/QmbE549QUXYTurpx8hSMLBJvuBpfYqyNE6FBCgHJDY8PLf\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/protocol/lib/Types.sol\":{\"keccak256\":\"0xe1bab8c8799d83e86c7a49aaf815d8e3bc8d09562d46d44d921500db5e98de0e\",\"urls\":[\"bzz-raw://8ea3d0cc4fdab6dd9bba545a792170f939b342d8d1a7051c1c6365009af72658\",\"dweb:/ipfs/QmaLJgbavu88eEit6JPqfWnw6NmGBDZfveMXxumgWywBFG\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x1a8e5072509c5ea7365eb1d48030b9be865140c8fb779968da0a459a0e174a11\",\"urls\":[\"bzz-raw://03335b7b07c7c8c8d613cfdd8ec39a0b5ec133ee510bf2fe6cc5a496767bef4b\",\"dweb:/ipfs/Qmebp4nzPja645c9yXSdJkGq96oU3am3LUnG2K3R7XxyKf\"]},\"@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xb63221b23818d622bfd83d18e0968307e4fcb7a35536bdceded76e1cf8349acd\",\"urls\":[\"bzz-raw://44e1e8c22362c4708a8c3362735f1465f5b05e2f7315e16c7010d694ce019d73\",\"dweb:/ipfs/QmWj9g8X1hxkXRre2kwkEjLBetjuzmSbWHD81bsSojnBkS\"]}},\"version\":1}",
"bytecode": "0x60806040523480156200001157600080fd5b506040516200291d3803806200291d83398101604081905262000034916200007b565b6000805460ff60a01b196001600160a01b039093166001600160a01b03199091161791909116600160a01b179055620000d0565b80516200007581620000b6565b92915050565b6000602082840312156200008e57600080fd5b60006200009c848462000068565b949350505050565b60006001600160a01b03821662000075565b620000c181620000a4565b8114620000cd57600080fd5b50565b61283d80620000e06000396000f3fe60806040526004361061010e5760003560e01c8063735394ac116100a5578063bc6efe3111610074578063cfeb65fe11610059578063cfeb65fe14610315578063d8ddf43114610335578063fe491ee7146103555761010e565b8063bc6efe31146102d5578063c38fd74e146102f55761010e565b8063735394ac146102535780637e54cf0214610275578063807cb86a146102955780639d17b43c146102b55761010e565b80631f410930116100e15780631f4109301461020357806322efe22a1461021657806333282ded146102365780635f669ce21461023e5761010e565b80630a8a2a1114610176578063122373191461019657806315c14a4a146101b6578063197955d7146101e1575b6001546101749073ffffffffffffffffffffffffffffffffffffffff1633147f4465706f7369745769746864726177616c50726f7879000000000000000000007f696e76616c69642050617961626c652073656e64657200000000000000000000610375565b005b34801561018257600080fd5b50610174610191366004611fef565b610411565b3480156101a257600080fd5b506101746101b1366004611fbf565b610579565b3480156101c257600080fd5b506101cb610659565b6040516101d891906125da565b60405180910390f35b3480156101ed57600080fd5b506101f6610675565b6040516101d89190612644565b610174610211366004611f49565b61067b565b34801561022257600080fd5b50610174610231366004611eef565b6107b8565b6101746109c3565b34801561024a57600080fd5b506101cb610aec565b34801561025f57600080fd5b50610268610b08565b6040516101d891906125cc565b34801561028157600080fd5b5061017461029036600461203c565b610b11565b3480156102a157600080fd5b506101746102b0366004611fef565b610ba9565b3480156102c157600080fd5b506101746102d0366004611f85565b610c3d565b3480156102e157600080fd5b506101746102f0366004611fbf565b610d2e565b34801561030157600080fd5b5061017461031036600461207f565b610deb565b34801561032157600080fd5b5061017461033036600461207f565b610ebc565b34801561034157600080fd5b50610174610350366004611fef565b610f53565b34801561036157600080fd5b5061017461037036600461203c565b610fe8565b8261040c576103838261107f565b7f3a200000000000000000000000000000000000000000000000000000000000006103ad8361107f565b6040516020016103bf939291906124b1565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905262461bcd60e51b8252610403916004016125e8565b60405180910390fd5b505050565b6003546104629060ff167f4465706f7369745769746864726177616c50726f7879000000000000000000007f6e6f7420696e697469616c697a65640000000000000000000000000000000000610375565b60005474010000000000000000000000000000000000000000900460ff1661049c5760405162461bcd60e51b815260040161040390612619565b6000805474ff0000000000000000000000000000000000000000198116825560025460408051608081019091528381526105379373ffffffffffffffffffffffffffffffffffffffff9093169233928892309260208201905b81526020016000198a1461050a57600061050d565b60015b600181111561051857fe5b81526020016000198a1461052c578961052f565b60005b90528761113b565b61053f6112f1565b50506000805474ff000000000000000000000000000000000000000019167401000000000000000000000000000000000000000017905550565b60005474010000000000000000000000000000000000000000900460ff166105b35760405162461bcd60e51b815260040161040390612619565b6000805474ff00000000000000000000000000000000000000001981168255604080516080810190915260018082526106209373ffffffffffffffffffffffffffffffffffffffff909316923392839288919060208201905b815260200160008152602001889052611436565b50506000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b6003546106cc9060ff167f4465706f7369745769746864726177616c50726f7879000000000000000000007f6e6f7420696e697469616c697a65640000000000000000000000000000000000610375565b60005474010000000000000000000000000000000000000000900460ff166107065760405162461bcd60e51b815260040161040390612619565b6000805474ff00000000000000000000000000000000000000001916905561072c611596565b600080546002546040805160808101909152600181526107809373ffffffffffffffffffffffffffffffffffffffff9093169233923092879260208201905b81526020016000815260200134815250611436565b506000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b60035461080a9060ff16157f4465706f7369745769746864726177616c50726f7879000000000000000000007f616c726561647920696e697469616c697a656400000000000000000000000000610375565b6003805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00909116811790915580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff838116919091179091556000546040517f8fae3be1000000000000000000000000000000000000000000000000000000008152911690638fae3be1906108bc90849060040161257e565b60206040518083038186803b1580156108d457600080fd5b505afa1580156108e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061090c9190810190611f67565b6002556001546000546040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9283169263095ea7b39261096d929116906000199060040161258c565b602060405180830381600087803b15801561098757600080fd5b505af115801561099b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109bf9190810190611f0d565b5050565b600354610a149060ff167f4465706f7369745769746864726177616c50726f7879000000000000000000007f6e6f7420696e697469616c697a65640000000000000000000000000000000000610375565b60005474010000000000000000000000000000000000000000900460ff16610a4e5760405162461bcd60e51b815260040161040390612619565b6000805474ff000000000000000000000000000000000000000019169055610a74611596565b60008054600254604080516080810190915260018152610ab59373ffffffffffffffffffffffffffffffffffffffff9093169233923092602081018361076b565b6000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60035460ff1681565b60005474010000000000000000000000000000000000000000900460ff16610b4b5760405162461bcd60e51b815260040161040390612619565b6000805474ff00000000000000000000000000000000000000001981169091556040805160808101909152600180825261053f9273ffffffffffffffffffffffffffffffffffffffff1691339182918891889190602082019061060c565b60005474010000000000000000000000000000000000000000900460ff16610be35760405162461bcd60e51b815260040161040390612619565b6000805474ff00000000000000000000000000000000000000001981168255604080516080810190915282815261053f9273ffffffffffffffffffffffffffffffffffffffff9092169133918290889060208101846104f5565b600354610c8e9060ff167f4465706f7369745769746864726177616c50726f7879000000000000000000007f6e6f7420696e697469616c697a65640000000000000000000000000000000000610375565b60005474010000000000000000000000000000000000000000900460ff16610cc85760405162461bcd60e51b815260040161040390612619565b6000805474ff000000000000000000000000000000000000000019811682556002546040805160808101909152838152610d269373ffffffffffffffffffffffffffffffffffffffff909316923392909130919060208101846104f5565b6106206112f1565b60005474010000000000000000000000000000000000000000900460ff16610d685760405162461bcd60e51b815260040161040390612619565b6000805474ff000000000000000000000000000000000000000019811682556040805160808101909152600181526106209273ffffffffffffffffffffffffffffffffffffffff909216913391829190879060208101835b8152602001600081526020016000198914610ddb5788610de4565b610de48a61161b565b9052611436565b60005474010000000000000000000000000000000000000000900460ff16610e255760405162461bcd60e51b815260040161040390612619565b6000805474ff000000000000000000000000000000000000000019811682556040805160808101909152828152610e819273ffffffffffffffffffffffffffffffffffffffff90921691339188918391899160208201906104f5565b50506000805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000001790555050565b60005474010000000000000000000000000000000000000000900460ff16610ef65760405162461bcd60e51b815260040161040390612619565b6000805474ff000000000000000000000000000000000000000019811682556040805160808101909152918252610e819173ffffffffffffffffffffffffffffffffffffffff9091169033908790829088906020810160016104f5565b60005474010000000000000000000000000000000000000000900460ff16610f8d5760405162461bcd60e51b815260040161040390612619565b6000805474ff00000000000000000000000000000000000000001981168255604080516080810190915282815261053f9273ffffffffffffffffffffffffffffffffffffffff909216913391829088906020810160016104f5565b60005474010000000000000000000000000000000000000000900460ff166110225760405162461bcd60e51b815260040161040390612619565b6000805474ff0000000000000000000000000000000000000000198116825560408051608081019091526001815261053f9273ffffffffffffffffffffffffffffffffffffffff9092169133918291889188916020820190610dc0565b60608082604051602001611093919061249c565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905060205b801561111e578151600019909101908290829081106110e157fe5b01602001517fff0000000000000000000000000000000000000000000000000000000000000016156111195760010181529050611136565b6110c6565b5060408051600080825260208201909252905b509150505b919050565b604080516001808252818301909252606091816020015b61115a611d96565b81526020019060019003908161115257905050905060405180604001604052808873ffffffffffffffffffffffffffffffffffffffff16815260200187815250816000815181106111a757fe5b6020908102919091010152604080516001808252818301909252606091816020015b6111d1611dad565b8152602001906001900390816111c95790505090506111f36000868689611750565b8160008151811061120057fe5b60209081029190910101526040517fa67a6a4500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a169063a67a6a459061125f90859085906004016125a7565b600060405180830381600087803b15801561127957600080fd5b505af115801561128d573d6000803e3d6000fd5b506000925061129a915050565b8360038111156112a657fe5b14806112bd575060018360038111156112bb57fe5b145b156112e6576112e689836000815181106112d357fe5b60200260200101516000015189886117c6565b505050505050505050565b6001546040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169060009082906370a082319061134c90309060040161257e565b60206040518083038186803b15801561136457600080fd5b505afa158015611378573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061139c9190810190611f67565b6040517f2e1a7d4d00000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff831690632e1a7d4d906113f1908490600401612644565b600060405180830381600087803b15801561140b57600080fd5b505af115801561141f573d6000803e3d6000fd5b506109bf925033915083905063ffffffff61191516565b604080516001808252818301909252606091816020015b611455611d96565b81526020019060019003908161144d57905050905060405180604001604052808773ffffffffffffffffffffffffffffffffffffffff16815260200185815250816000815181106114a257fe5b6020908102919091010152604080516001808252818301909252606091816020015b6114cc611dad565b8152602001906001900390816114c45790505090506114ee60008585896119be565b816000815181106114fb57fe5b60209081029190910101526040517fa67a6a4500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff89169063a67a6a459061155a90859085906004016125a7565b600060405180830381600087803b15801561157457600080fd5b505af1158015611588573d6000803e3d6000fd5b505050505050505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561160057600080fd5b505af1158015611614573d6000803e3d6000fd5b5050505050565b600080546040517f062bd3e900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063062bd3e990611672908590600401612644565b60206040518083038186803b15801561168a57600080fd5b505afa15801561169e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116c29190810190611ec9565b73ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b81526004016116fa919061257e565b60206040518083038186803b15801561171257600080fd5b505afa158015611726573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061174a9190810190611f67565b92915050565b611758611dad565b6040805161010081019091528060015b8152602001868152602001848152602001858152602001600081526020018373ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001604051806020016040528060008152508152509050949350505050565b6117ce611d96565b60405180604001604052808573ffffffffffffffffffffffffffffffffffffffff168152602001848152509050611803611d96565b6040517f47d1b53c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8716906347d1b53c906118579085908790600401612629565b604080518083038186803b15801561186e57600080fd5b505afa158015611882573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118a69190810190611f2b565b905061190d6118b4826119da565b806118c357506118c382611a02565b7f4163636f756e7442616c616e63654c69620000000000000000000000000000007f6163636f756e742063616e6e6f7420676f206e65676174697665000000000000888888611a1c565b505050505050565b804710156119355760405162461bcd60e51b815260040161040390612609565b60008273ffffffffffffffffffffffffffffffffffffffff168260405161195b90612573565b60006040518083038185875af1925050503d8060008114611998576040519150601f19603f3d011682016040523d82523d6000602084013e61199d565b606091505b505090508061040c5760405162461bcd60e51b8152600401610403906125f9565b6119c6611dad565b604080516101008101909152806000611768565b8051600090801561174a575050602001516fffffffffffffffffffffffffffffffff16151590565b602001516fffffffffffffffffffffffffffffffff161590565b8561190d57611a2a8561107f565b7f3a20000000000000000000000000000000000000000000000000000000000000611a548661107f565b7f203c000000000000000000000000000000000000000000000000000000000000611a7e87611b0c565b7f2c20000000000000000000000000000000000000000000000000000000000000611aa888611c83565b7f2c20000000000000000000000000000000000000000000000000000000000000611ad289611c83565b6040516103bf999897969594939291907f3e00000000000000000000000000000000000000000000000000000000000000906020016124d9565b60408051602a808252606082810190935273ffffffffffffffffffffffffffffffffffffffff8416918391602082018180388339019050509050603060f81b81600081518110611b5857fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350607860f81b81600181518110611b9957fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060005b60148110156111315760028102611be4600f8516611d74565b838260290381518110611bf357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600484901c9350611c35600f8516611d74565b838260280381518110611c4457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505060049290921c91600101611bcb565b606081611cc4575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152611136565b8160005b8115611cdc57600101600a82049150611cc8565b6060816040519080825280601f01601f191660200182016040528015611d09576020820181803883390190505b508593509050815b8015611d6b5760001901600a840660300160f81b828281518110611d3157fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350611d11565b50949350505050565b6000600a821015611d8c57506030810160f81b611136565b5060570160f81b90565b604080518082019091526000808252602082015290565b604080516101008101825260008082526020820152908101611dcd611e0c565b81526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001606081525090565b604080516080810190915260008082526020820190815260200160008152602001600081525090565b805161174a816127be565b803561174a816127be565b805161174a816127d2565b803561174a816127db565b600060408284031215611e7357600080fd5b611e7d6040612652565b90506000611e8b8484611e4b565b8252506020611e9c84848301611ea8565b60208301525092915050565b805161174a816127e8565b803561174a816127f1565b805161174a816127f1565b600060208284031215611edb57600080fd5b6000611ee78484611e35565b949350505050565b600060208284031215611f0157600080fd5b6000611ee78484611e40565b600060208284031215611f1f57600080fd5b6000611ee78484611e4b565b600060408284031215611f3d57600080fd5b6000611ee78484611e61565b600060208284031215611f5b57600080fd5b6000611ee78484611eb3565b600060208284031215611f7957600080fd5b6000611ee78484611ebe565b60008060408385031215611f9857600080fd5b6000611fa48585611eb3565b9250506020611fb585828601611e56565b9150509250929050565b60008060408385031215611fd257600080fd5b6000611fde8585611eb3565b9250506020611fb585828601611eb3565b60008060006060848603121561200457600080fd5b60006120108686611eb3565b935050602061202186828701611eb3565b925050604061203286828701611e56565b9150509250925092565b60008060006060848603121561205157600080fd5b600061205d8686611eb3565b935050602061206e86828701611eb3565b925050604061203286828701611eb3565b6000806000806080858703121561209557600080fd5b60006120a18787611eb3565b94505060206120b287828801611eb3565b93505060406120c387828801611eb3565b92505060606120d487828801611e56565b91505092959194509250565b60006120ec8383612378565b9392505050565b60006120ff8383612473565b505060400190565b6121108161272b565b82525050565b6121108161268c565b600061212a8261267f565b6121348185612683565b93508360208202850161214685612679565b8060005b85811015612180578484038952815161216385826120e0565b945061216e83612679565b60209a909a019992505060010161214a565b5091979650505050505050565b60006121988261267f565b6121a28185612683565b93506121ad83612679565b8060005b838110156121db5781516121c588826120f3565b97506121d083612679565b9250506001016121b1565b509495945050505050565b61211081612697565b6121106121fb8261269c565b6126e6565b6121106121fb826126c1565b6121106121fb826126e6565b60006122238261267f565b61222d8185611136565b935061223d818560208601612753565b9290920192915050565b60006122528261267f565b61225c8185612683565b935061226c818560208601612753565b6122758161277f565b9093019392505050565b61211081612732565b6121108161273d565b61211081612748565b60006122a7603a83612683565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207281527f6563697069656e74206d61792068617665207265766572746564000000000000602082015260400192915050565b6000612306601d83612683565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000815260200192915050565b600061174a600083611136565b600061234c601f83612683565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00815260200192915050565b805160009061016084019061238d8582612288565b5060208301516123a06020860182612493565b5060408301516123b36040860182612423565b5060608301516123c660c0860182612493565b5060808301516123d960e0860182612493565b5060a08301516123ed610100860182612116565b5060c0830151612401610120860182612493565b5060e083015184820361014086015261241a8282612247565b95945050505050565b8051608083019061243484826121e6565b5060208201516124476020850182612291565b50604082015161245a6040850182612291565b50606082015161246d6060850182612493565b50505050565b805160408301906124848482612116565b50602082015161246d60208501825b612110816126e6565b60006124a8828461220c565b50602001919050565b60006124bd8286612218565b91506124c98285612200565b60028201915061241a8284612218565b60006124e5828d612218565b91506124f1828c612200565b600282019150612501828b612218565b915061250d828a612200565b60028201915061251d8289612218565b91506125298288612200565b6002820191506125398287612218565b91506125458286612200565b6002820191506125558285612218565b915061256182846121ef565b506001019a9950505050505050505050565b600061174a82612332565b6020810161174a8284612107565b6040810161259a8285612116565b6120ec6020830184612493565b604080825281016125b8818561218d565b90508181036020830152611ee7818461211f565b6020810161174a82846121e6565b6020810161174a828461227f565b602080825281016120ec8184612247565b6020808252810161174a8161229a565b6020808252810161174a816122f9565b6020808252810161174a8161233f565b606081016126378285612473565b6120ec6040830184612493565b6020810161174a8284612493565b60405181810167ffffffffffffffff8111828210171561267157600080fd5b604052919050565b60200190565b5190565b90815260200190565b600061174a82612712565b151590565b7fff000000000000000000000000000000000000000000000000000000000000001690565b7fffff0000000000000000000000000000000000000000000000000000000000001690565b90565b80611136816127a7565b80611136816127b4565b6fffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1690565b600061174a825b600061174a8261268c565b600061174a826126e9565b600061174a826126f3565b60005b8381101561276e578181015183820152602001612756565b8381111561246d5750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b600981106127b157fe5b50565b600281106127b157fe5b6127c78161268c565b81146127b157600080fd5b6127c781612697565b600481106127b157600080fd5b6127c7816126fd565b6127c7816126e656fea365627a7a72315820c0e3b81cf88e025aaf66893322e6e423e9f94b126d01a2ee9a7884b59c530e696c6578706572696d656e74616cf564736f6c63430005100040",
"deployedBytecode": "0x60806040526004361061010e5760003560e01c8063735394ac116100a5578063bc6efe3111610074578063cfeb65fe11610059578063cfeb65fe14610315578063d8ddf43114610335578063fe491ee7146103555761010e565b8063bc6efe31146102d5578063c38fd74e146102f55761010e565b8063735394ac146102535780637e54cf0214610275578063807cb86a146102955780639d17b43c146102b55761010e565b80631f410930116100e15780631f4109301461020357806322efe22a1461021657806333282ded146102365780635f669ce21461023e5761010e565b80630a8a2a1114610176578063122373191461019657806315c14a4a146101b6578063197955d7146101e1575b6001546101749073ffffffffffffffffffffffffffffffffffffffff1633147f4465706f7369745769746864726177616c50726f7879000000000000000000007f696e76616c69642050617961626c652073656e64657200000000000000000000610375565b005b34801561018257600080fd5b50610174610191366004611fef565b610411565b3480156101a257600080fd5b506101746101b1366004611fbf565b610579565b3480156101c257600080fd5b506101cb610659565b6040516101d891906125da565b60405180910390f35b3480156101ed57600080fd5b506101f6610675565b6040516101d89190612644565b610174610211366004611f49565b61067b565b34801561022257600080fd5b50610174610231366004611eef565b6107b8565b6101746109c3565b34801561024a57600080fd5b506101cb610aec565b34801561025f57600080fd5b50610268610b08565b6040516101d891906125cc565b34801561028157600080fd5b5061017461029036600461203c565b610b11565b3480156102a157600080fd5b506101746102b0366004611fef565b610ba9565b3480156102c157600080fd5b506101746102d0366004611f85565b610c3d565b3480156102e157600080fd5b506101746102f0366004611fbf565b610d2e565b34801561030157600080fd5b5061017461031036600461207f565b610deb565b34801561032157600080fd5b5061017461033036600461207f565b610ebc565b34801561034157600080fd5b50610174610350366004611fef565b610f53565b34801561036157600080fd5b5061017461037036600461203c565b610fe8565b8261040c576103838261107f565b7f3a200000000000000000000000000000000000000000000000000000000000006103ad8361107f565b6040516020016103bf939291906124b1565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905262461bcd60e51b8252610403916004016125e8565b60405180910390fd5b505050565b6003546104629060ff167f4465706f7369745769746864726177616c50726f7879000000000000000000007f6e6f7420696e697469616c697a65640000000000000000000000000000000000610375565b60005474010000000000000000000000000000000000000000900460ff1661049c5760405162461bcd60e51b815260040161040390612619565b6000805474ff0000000000000000000000000000000000000000198116825560025460408051608081019091528381526105379373ffffffffffffffffffffffffffffffffffffffff9093169233928892309260208201905b81526020016000198a1461050a57600061050d565b60015b600181111561051857fe5b81526020016000198a1461052c578961052f565b60005b90528761113b565b61053f6112f1565b50506000805474ff000000000000000000000000000000000000000019167401000000000000000000000000000000000000000017905550565b60005474010000000000000000000000000000000000000000900460ff166105b35760405162461bcd60e51b815260040161040390612619565b6000805474ff00000000000000000000000000000000000000001981168255604080516080810190915260018082526106209373ffffffffffffffffffffffffffffffffffffffff909316923392839288919060208201905b815260200160008152602001889052611436565b50506000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b6003546106cc9060ff167f4465706f7369745769746864726177616c50726f7879000000000000000000007f6e6f7420696e697469616c697a65640000000000000000000000000000000000610375565b60005474010000000000000000000000000000000000000000900460ff166107065760405162461bcd60e51b815260040161040390612619565b6000805474ff00000000000000000000000000000000000000001916905561072c611596565b600080546002546040805160808101909152600181526107809373ffffffffffffffffffffffffffffffffffffffff9093169233923092879260208201905b8152602001600081526020