@dolomite-exchange/dolomite-margin 0.2.6 → 0.2.7
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.
- package/build/contracts/Account.json +11 -11
- package/build/contracts/Actions.json +11 -11
- package/build/contracts/Address.json +1 -1
- package/build/contracts/Admin.json +23 -23
- package/build/contracts/AdminImpl.json +35 -307
- package/build/contracts/AdvancedMath.json +7 -7
- package/build/contracts/AmmRebalancerProxy.json +577 -621
- package/build/contracts/AmmRebalancerProxyV1.json +78 -32
- package/build/contracts/Babylonian.json +1 -1
- package/build/contracts/Bits.json +9 -9
- package/build/contracts/Cache.json +13 -13
- package/build/contracts/ChainlinkPriceOracleV1.json +16 -16
- package/build/contracts/Context.json +1 -1
- package/build/contracts/CustomTestToken.json +9 -9
- package/build/contracts/Decimal.json +9 -9
- package/build/contracts/DelayedMultiSig.json +9 -9
- package/build/contracts/DolomiteAmmERC20.json +11 -11
- package/build/contracts/DolomiteAmmFactory.json +14 -52
- package/build/contracts/DolomiteAmmLibrary.json +24 -24
- package/build/contracts/DolomiteAmmPair.json +27 -27
- package/build/contracts/DolomiteAmmRouterProxy.json +30 -363
- package/build/contracts/DolomiteMargin.json +21 -67
- package/build/contracts/DoubleExponentInterestSetter.json +15 -21
- package/build/contracts/EnumerableSet.json +7 -7
- package/build/contracts/ErroringOmiseToken.json +9 -9
- package/build/contracts/ErroringToken.json +10 -10
- package/build/contracts/Events.json +17 -17
- package/build/contracts/ExcessivelySafeCall.json +35 -35
- package/build/contracts/Exchange.json +15 -15
- package/build/contracts/Expiry.json +36 -36
- package/build/contracts/Getters.json +33 -33
- package/build/contracts/IAutoTrader.json +9 -9
- package/build/contracts/ICallee.json +7 -7
- package/build/contracts/IChainlinkAggregator.json +5 -5
- package/build/contracts/IDolomiteAmmERC20.json +5 -5
- package/build/contracts/IDolomiteAmmFactory.json +9 -9
- package/build/contracts/IDolomiteAmmPair.json +9 -9
- package/build/contracts/IDolomiteMargin.json +23 -23
- package/build/contracts/IERC20.json +1 -1
- package/build/contracts/IERC20Detailed.json +5 -5
- package/build/contracts/IExchangeWrapper.json +5 -5
- package/build/contracts/IExpiry.json +9 -9
- package/build/contracts/IInterestSetter.json +7 -7
- package/build/contracts/ILiquidationCallback.json +7 -7
- package/build/contracts/IMakerOracle.json +5 -5
- package/build/contracts/IOasisDex.json +5 -5
- package/build/contracts/IPriceOracle.json +7 -7
- package/build/contracts/IRecyclable.json +9 -9
- package/build/contracts/ITransferProxy.json +5 -5
- package/build/contracts/IUniswapV2Callee.json +5 -5
- package/build/contracts/IUniswapV2Factory.json +5 -5
- package/build/contracts/IUniswapV2Pair.json +5 -5
- package/build/contracts/IUniswapV2Router.json +5 -5
- package/build/contracts/IWETH.json +5 -5
- package/build/contracts/Interest.json +15 -15
- package/build/contracts/LiquidateOrVaporizeImpl.json +32 -83
- package/build/contracts/LiquidatorProxyHelper.json +23 -23
- package/build/contracts/LiquidatorProxyV1.json +30 -36
- package/build/contracts/LiquidatorProxyV1WithAmm.json +49 -105
- package/build/contracts/Math.json +1 -1
- package/build/contracts/Migrations.json +8 -14
- package/build/contracts/Monetary.json +7 -7
- package/build/contracts/MultiCall.json +8 -14
- package/build/contracts/MultiSig.json +7 -7
- package/build/contracts/OmiseToken.json +8 -8
- package/build/contracts/OnlyDolomiteMargin.json +11 -11
- package/build/contracts/Operation.json +15 -15
- package/build/contracts/OperationImpl.json +39 -47
- package/build/contracts/Ownable.json +1 -1
- package/build/contracts/PartiallyDelayedMultiSig.json +9 -9
- package/build/contracts/PayableProxy.json +17 -23
- package/build/contracts/Permission.json +11 -11
- package/build/contracts/PolynomialInterestSetter.json +13 -13
- package/build/contracts/RecyclableTokenProxy.json +25 -25
- package/build/contracts/ReentrancyGuard.json +1 -1
- package/build/contracts/Require.json +7 -7
- package/build/contracts/SafeERC20.json +1 -1
- package/build/contracts/SafeETH.json +7 -7
- package/build/contracts/SafeLiquidationCallback.json +17 -17
- package/build/contracts/SafeMath.json +1 -1
- package/build/contracts/SignedOperationProxy.json +21 -104
- package/build/contracts/SimpleFeeOwner.json +18 -63
- package/build/contracts/State.json +9 -9
- package/build/contracts/Storage.json +37 -37
- package/build/contracts/TestAmmRebalancerProxy.json +32 -58
- package/build/contracts/TestAutoTrader.json +22 -22
- package/build/contracts/TestBtcUsdChainlinkAggregator.json +10 -10
- package/build/contracts/TestCallee.json +19 -19
- package/build/contracts/TestChainlinkPriceOracleV1.json +10 -94
- package/build/contracts/TestCounter.json +7 -7
- package/build/contracts/TestDaiUsdChainlinkAggregator.json +11 -11
- package/build/contracts/TestDolomiteMargin.json +22 -22
- package/build/contracts/TestDoubleExponentInterestSetter.json +10 -10
- package/build/contracts/TestEthUsdChainlinkAggregator.json +11 -11
- package/build/contracts/TestExchangeWrapper.json +28 -28
- package/build/contracts/TestInterestSetter.json +13 -13
- package/build/contracts/TestLib.json +22 -22
- package/build/contracts/TestLinkUsdChainlinkAggregator.json +11 -11
- package/build/contracts/TestLiquidateCallback.json +719 -719
- package/build/contracts/TestLiquidationCallback.json +13 -13
- package/build/contracts/TestLrcEthChainlinkAggregator.json +11 -11
- package/build/contracts/TestMakerOracle.json +10 -10
- package/build/contracts/TestMaticUsdChainlinkAggregator.json +10 -10
- package/build/contracts/TestOasisDex.json +12 -12
- package/build/contracts/TestOperationImpl.json +14 -14
- package/build/contracts/TestPolynomialInterestSetter.json +10 -10
- package/build/contracts/TestPriceAggregator.json +9 -9
- package/build/contracts/TestPriceOracle.json +13 -13
- package/build/contracts/TestRecyclableToken.json +9 -9
- package/build/contracts/TestSimpleCallee.json +15 -15
- package/build/contracts/TestToken.json +9 -9
- package/build/contracts/TestTrader.json +17 -17
- package/build/contracts/TestUniswapAmmRebalancerProxy.json +16 -16
- package/build/contracts/TestUsdcUsdChainlinkAggregator.json +11 -11
- package/build/contracts/TestWETH.json +9 -9
- package/build/contracts/Time.json +9 -9
- package/build/contracts/Token.json +9 -9
- package/build/contracts/TokenA.json +10 -10
- package/build/contracts/TokenB.json +10 -10
- package/build/contracts/TokenC.json +10 -10
- package/build/contracts/TokenD.json +10 -10
- package/build/contracts/TokenE.json +10 -10
- package/build/contracts/TokenF.json +10 -10
- package/build/contracts/TransferProxy.json +22 -28
- package/build/contracts/TypedSignature.json +9 -9
- package/build/contracts/Types.json +9 -9
- package/build/contracts/UQ112x112.json +7 -7
- package/build/contracts/UniswapV2ERC20.json +7 -7
- package/build/contracts/UniswapV2Factory.json +12 -12
- package/build/contracts/UniswapV2Library.json +20 -20
- package/build/contracts/UniswapV2Pair.json +17 -17
- package/build/contracts/UniswapV2Router02.json +16 -16
- package/build/contracts/WETH9.json +1 -1
- package/contracts/external/amm/DolomiteAmmERC20.sol +135 -0
- package/contracts/external/amm/DolomiteAmmFactory.sol +122 -0
- package/contracts/external/amm/DolomiteAmmPair.sol +573 -0
- package/contracts/external/amm/SimpleFeeOwner.sol +107 -0
- package/contracts/external/helpers/LiquidatorProxyHelper.sol +252 -0
- package/contracts/external/helpers/OnlyDolomiteMargin.sol +63 -0
- package/contracts/external/interestsetters/DoubleExponentInterestSetter.sol +212 -0
- package/contracts/external/interestsetters/PolynomialInterestSetter.sol +205 -0
- package/contracts/external/interfaces/IChainlinkAggregator.sol +33 -0
- package/contracts/external/interfaces/IDolomiteAmmERC20.sol +52 -0
- package/contracts/external/interfaces/IDolomiteAmmFactory.sol +42 -0
- package/contracts/external/interfaces/IDolomiteAmmPair.sol +116 -0
- package/contracts/external/interfaces/IExpiry.sol +70 -0
- package/contracts/external/interfaces/IMakerOracle.sol +52 -0
- package/contracts/external/interfaces/IOasisDex.sol +326 -0
- package/contracts/external/interfaces/ITransferProxy.sol +53 -0
- package/contracts/external/interfaces/IUniswapV2Router.sol +134 -0
- package/contracts/external/lib/AdvancedMath.sol +23 -0
- package/contracts/external/lib/DolomiteAmmLibrary.sol +323 -0
- package/contracts/external/lib/TypedSignature.sol +120 -0
- package/contracts/external/lib/UQ112x112.sol +22 -0
- package/contracts/external/multisig/DelayedMultiSig.sol +206 -0
- package/contracts/external/multisig/MultiSig.sol +571 -0
- package/contracts/external/multisig/PartiallyDelayedMultiSig.sol +174 -0
- package/contracts/external/oracles/ChainlinkPriceOracleV1.sol +197 -0
- package/contracts/external/oracles/TestChainlinkPriceOracleV1.sol +98 -0
- package/contracts/external/proxies/AmmRebalancerProxyV1.sol +465 -0
- package/contracts/external/proxies/DolomiteAmmRouterProxy.sol +877 -0
- package/contracts/external/proxies/LiquidatorProxyV1.sol +507 -0
- package/contracts/external/proxies/LiquidatorProxyV1WithAmm.sol +574 -0
- package/contracts/external/proxies/PayableProxy.sol +146 -0
- package/contracts/external/proxies/RecyclableTokenProxy.sol +463 -0
- package/contracts/external/proxies/SignedOperationProxy.sol +553 -0
- package/contracts/external/proxies/TransferProxy.sol +207 -0
- package/contracts/external/traders/Expiry.sol +532 -0
- package/contracts/external/uniswap-v2/UniswapV2ERC20.sol +118 -0
- package/contracts/external/uniswap-v2/UniswapV2Factory.sol +67 -0
- package/contracts/external/uniswap-v2/UniswapV2Pair.sol +283 -0
- package/contracts/external/uniswap-v2/UniswapV2Router02.sol +566 -0
- package/contracts/external/uniswap-v2/interfaces/IUniswapV2Callee.sol +13 -0
- package/contracts/external/uniswap-v2/interfaces/IUniswapV2Factory.sol +18 -0
- package/contracts/external/uniswap-v2/interfaces/IUniswapV2Pair.sol +67 -0
- package/contracts/external/uniswap-v2/interfaces/IWETH.sol +7 -0
- package/contracts/external/uniswap-v2/libraries/SafeETH.sol +29 -0
- package/contracts/external/uniswap-v2/libraries/UniswapV2Library.sol +117 -0
- package/contracts/external/utils/MultiCall.sol +95 -0
- package/contracts/protocol/impl/artifacts/OperationImpl.json +80 -0
- package/contracts/protocol/impl/artifacts/OperationImpl_metadata.json +193 -0
- package/dist/build/published_contracts/AdminImpl.json +2 -2
- package/dist/build/published_contracts/AmmRebalancerProxyV1.json +5 -0
- package/dist/build/published_contracts/ChainlinkPriceOracleV1.json +1 -1
- package/dist/build/published_contracts/DolomiteAmmFactory.json +1 -1
- package/dist/build/published_contracts/DolomiteAmmRouterProxy.json +1 -1
- package/dist/build/published_contracts/DoubleExponentInterestSetter.json +2 -2
- package/dist/build/published_contracts/Expiry.json +1 -1
- package/dist/build/published_contracts/LiquidatorProxyV1.json +1 -1
- package/dist/build/published_contracts/LiquidatorProxyV1WithAmm.json +1 -1
- package/dist/build/published_contracts/MultiCall.json +1 -1
- package/dist/build/published_contracts/PayableProxy.json +2 -2
- package/dist/build/published_contracts/SignedOperationProxy.json +2 -2
- package/dist/build/published_contracts/SimpleFeeOwner.json +1 -1
- package/dist/build/published_contracts/TestUniswapAmmRebalancerProxy.json +140 -0
- package/dist/build/published_contracts/TransferProxy.json +1 -1
- package/dist/src/lib/Contracts.d.ts +3 -1
- package/dist/src/lib/Contracts.js +7 -3
- package/dist/src/lib/Contracts.js.map +1 -1
- package/package.json +2 -1
|
@@ -100,15 +100,15 @@
|
|
|
100
100
|
"type": "function"
|
|
101
101
|
}
|
|
102
102
|
],
|
|
103
|
-
"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\"},{\"constant\":true,\"inputs\":[],\"name\":\"DOLOMITE_MARGIN\",\"outputs\":[{\"internalType\":\"contract IDolomiteMargin\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"internalType\":\"struct Account.Info\",\"name\":\"solidAccount\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"internalType\":\"struct Account.Info\",\"name\":\"liquidAccount\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"minLiquidatorRatio\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"minValueLiquidated\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"owedPreferences\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"heldPreferences\",\"type\":\"uint256[]\"}],\"name\":\"liquidate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"dYdX * Contract for liquidating other accounts in DolomiteMargin.\",\"methods\":{\"liquidate((address,uint256),(address,uint256),(uint256),uint256,uint256[],uint256[])\":{\"params\":{\"heldPreferences\":\"Ordered list of markets to receive payout for first\",\"liquidAccount\":\"The account that will be liquidated\",\"minLiquidatorRatio\":\"The minimum collateralization ratio to leave the solidAccount at\",\"owedPreferences\":\"Ordered list of markets to repay first\",\"solidAccount\":\"The account that will do the liquidating\"}}},\"title\":\"LiquidatorProxyV1\"},\"userdoc\":{\"methods\":{\"liquidate((address,uint256),(address,uint256),(uint256),uint256,uint256[],uint256[])\":{\"notice\":\"Liquidate liquidAccount using solidAccount. This contract and the msg.sender to this contract must both be operators for the solidAccount.\"}}}},\"settings\":{\"compilationTarget\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/proxies/LiquidatorProxyV1.sol\":\"LiquidatorProxyV1\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/helpers/LiquidatorProxyHelper.sol\":{\"keccak256\":\"0x87d4f290fa884c943dafbbc3457449f5d6de153e1ff5891762ae4313949fc371\",\"urls\":[\"bzz-raw://a996eaaf35b7ba5e4d5ff543e1af89fdb5a0e095fe593f3cfff6232c48fabb15\",\"dweb:/ipfs/QmZaZoJWVYFMtVd5rjXP7wXYJxPjfDGftMbriG2Nzwdfoy\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/helpers/OnlyDolomiteMargin.sol\":{\"keccak256\":\"0xfc9ce2f5a274ec66668c133f09fe213bc1a6a739f9147f4357a3493094de8deb\",\"urls\":[\"bzz-raw://e45442587f111fa0d85dd85a4e07993f5fecd1afce4f457ed21441f8b0abb937\",\"dweb:/ipfs/QmaNq3j3PUwb8Wrx2gEmFFsVa2GByDEkDCPGdwo2qvMeKh\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/proxies/LiquidatorProxyV1.sol\":{\"keccak256\":\"0xf3b183696b5fad1180d524565e5fdb989d2db4c42561bfa07c4ad7dd7fea8421\",\"urls\":[\"bzz-raw://53affad6e9f15990fb78e0090f83abfab685865be2955a98df7bc62634875b7a\",\"dweb:/ipfs/Qmduds4MEvxBuH4xAZfiPsQjXWpKWG5D3VjNLdLd6kRuTT\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IDolomiteMargin.sol\":{\"keccak256\":\"0x1e73364879c267fdd2bfd871e62ee58ee3d65fbef3b71e3cc104fbff499eca6c\",\"urls\":[\"bzz-raw://e3b1327980a5949afd52cff4713f47ee4fdee9a8b376ceaa3402f5c9696b8c1b\",\"dweb:/ipfs/QmbhQzVEdaraPJizT5DTtk6CDzH3guHNipHW5T23uTtFkX\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IERC20Detailed.sol\":{\"keccak256\":\"0x22a62e2a8155e70300773721902f4b9118e17aa0bb5d9d1b046050a014cfb223\",\"urls\":[\"bzz-raw://03af737a33c552fbe58f6f1fbd5496854fdc28dd57be4365d56663725c083a18\",\"dweb:/ipfs/QmbgLqGAQEd6tXsZB8QaPNCAMiU6nNzP75wNbKdS65BuUF\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IInterestSetter.sol\":{\"keccak256\":\"0x546825f65490a30e29d0f6446acec49c1e895ce6b33d48ca5c05092725a63a57\",\"urls\":[\"bzz-raw://6ad3013aed985bdf6e6234ae0f7f37e6bba76c3470c33bfa24678cf19b3b412c\",\"dweb:/ipfs/QmfYaSBzxGpgiHoR7ontMJY66S5L26XwkLYoEuzsEjpbQH\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IPriceOracle.sol\":{\"keccak256\":\"0x3f7c3d1397390ea44c6d5e5730d49476431c3df3b28334fe38218de5edc31138\",\"urls\":[\"bzz-raw://63ebf926fca9ce33aaabaf93805686acc25daded1648d6dab59c8c4d05116918\",\"dweb:/ipfs/QmeGkDp7ycYstpfqCYBiqoCYwy876gabx8r42o5koj3H5A\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Account.sol\":{\"keccak256\":\"0x0ab9a3fabc89984dff748af63d4319ee134051de2d7fc560e34ebaac86198396\",\"urls\":[\"bzz-raw://ab67f499a8ef83dc7e7cf7176a0f66eced40fa228eda8dd2d47e066ab985cf42\",\"dweb:/ipfs/QmXRHbsEYxr2Qsfsj5psXGV5LaPZHuzLiEXzSQJ77WSE27\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Actions.sol\":{\"keccak256\":\"0x44ec62b766a88a2f65267991e76cab88711e733b826dc9e578cb6ad6b38b2445\",\"urls\":[\"bzz-raw://731a8d44e57c9dcd7fbdefc37a6b5889c0d06defb3bd66b921b2a7db0edf0103\",\"dweb:/ipfs/QmcVbXc9oi5DMxjPtsBF76oJzD6zVjm7RuXgJfP3Goqrrb\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Bits.sol\":{\"keccak256\":\"0x425bf5764368faca16cc30a64b79d9bbe01fd8150444b58a464971c32450bd85\",\"urls\":[\"bzz-raw://064baf3155da634c5c80cea70bba0dda7a33af934b34f75f596961b4ab9aeafe\",\"dweb:/ipfs/QmTUHXoi9L6CkERyfhFs1jhxU66u2sbc6XRR5cH4TeHEqL\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Cache.sol\":{\"keccak256\":\"0x1e6ff383f285e311d07374edda353e14ac4f29201726b0062a2f046c1a2b482c\",\"urls\":[\"bzz-raw://fd11c5db01039bf2c95f3561b08d271b80b7b1cb9fd7f75da887f7609807c5a7\",\"dweb:/ipfs/QmcY6CugdEHaYUa8ZKSnUDhvtVuoLfpDscZcmC91koAn1t\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Decimal.sol\":{\"keccak256\":\"0x66990bbe3c58d0edf57d3f67ab5280e2a53958ce44f75c335c4c50542321bccb\",\"urls\":[\"bzz-raw://724cfdb5c99121aab5262679e46766a2883e344749870d7dbfa92d1617f68bf2\",\"dweb:/ipfs/QmYjAsS45f6UG2u3zuTks2HVfMYtyFCVMgUvD7Gt7XtU3R\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/EnumerableSet.sol\":{\"keccak256\":\"0x9710b0ab43cc2d964d8722a0aabbedbf7e9d4756dcc0b4ab7c46c1ee68653042\",\"urls\":[\"bzz-raw://2405593d37f0f224bfca556f01634a9755bb0ed626f74dd15293106a8b4dd7d3\",\"dweb:/ipfs/QmTZ16S336jsoDnK5p3vAZRzimBkmdEJibncHVBJxBt469\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Interest.sol\":{\"keccak256\":\"0x73e75454568c5dfc3bdcf7dbf2ddce6ab8d3d317618bc1f1957f7667e15d3799\",\"urls\":[\"bzz-raw://7b1c8a9a79c8ffdbb0fa633f713ae3dfeac93b31d2b1639614ac32d473fb8250\",\"dweb:/ipfs/QmfARP93W2mgeVwD9Lkd3yVmbCLF2Mos7o8HJ1x6WYQmxZ\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Math.sol\":{\"keccak256\":\"0x0c0c913b6ccdb69063f9ec84879fcad20a1ee6f44402c9f5ec2b4f5b9f2fa16b\",\"urls\":[\"bzz-raw://89b32eefb57e5e63ad8c6e079ae7bf2d2c8622776cd45af0cf304e1cafd6e078\",\"dweb:/ipfs/Qmcj7yRnYuTgKC3ZqZqe8rynHGYVDS3UrFExcVGcqeaDHY\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Monetary.sol\":{\"keccak256\":\"0x5257274f2d4d3605f3e97ec45fb902111fe9a22506f0b4cf308ea933bc81bfe2\",\"urls\":[\"bzz-raw://85b8023b78805063a2ec8d376f1f5983994eabd96efd8ceadb0224dbb71c5678\",\"dweb:/ipfs/QmaDhzCzRqsuHuJfhToEC4pATQHwhh7yWWsjwfuRzFT1kG\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Require.sol\":{\"keccak256\":\"0xe641662503ea29ca959e84674188c3e9deaaf64c5623fb9560a4301c521ca1d3\",\"urls\":[\"bzz-raw://b10a04c7d014b99eb792c8c774e203c846d070b30cf0b715325fc07838ed6a6d\",\"dweb:/ipfs/QmUqZWnbchfEY9jM647yQamHe4GzspfUeRQF9k2nn1Hixd\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Storage.sol\":{\"keccak256\":\"0xf930fbde3ab43ec8f079dbad062453b502542f53b7eec670c8e86c7a2e47dd9a\",\"urls\":[\"bzz-raw://e1c402fc55471e8372be478e99f91c28373f096e31f0ef1d5072dfdb81541c29\",\"dweb:/ipfs/QmTc8WSfFCbxNQqNpq1vptUVFxteKQ8HWEhyXREyPZ2neu\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Time.sol\":{\"keccak256\":\"0x233d6ebf965711bf980f4bb2e672fb1a11b4b879fd41c884b3c2b704417d0d0c\",\"urls\":[\"bzz-raw://6478ff81706d531f9438b96274a7b904abbbd9c631540c68c6a89c3accf27abf\",\"dweb:/ipfs/QmWe9vkz3qwVjrcbmcTL8wgkjLPsrEqxcqPJL9ujM8PPbp\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Token.sol\":{\"keccak256\":\"0xd7bcae9e3c570544fc946a00cc7695106a64c20bc130d0183612c0410a531d19\",\"urls\":[\"bzz-raw://0ff5ffd6abb9ed223a64128c131afd962bec07fb9867cb62593906b339c76920\",\"dweb:/ipfs/QmbTrJL4bekvBqqaw6wXnBhYzS9uAqULSWF2VzW4cdfsM5\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Types.sol\":{\"keccak256\":\"0xab134538648a2e223a7fe61db03c14f687657a5d37147f93c9088f11735aa311\",\"urls\":[\"bzz-raw://79dc7d2b30576d2349b99267642ac8d5fb7939c920b8d8045379d3614238bdc3\",\"dweb:/ipfs/QmaQJYg1nirHoWSC6G38Cjsk9pZBzEaNrGXKqTsvAzbyES\"]},\"@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/ReentrancyGuard.sol\":{\"keccak256\":\"0xb63221b23818d622bfd83d18e0968307e4fcb7a35536bdceded76e1cf8349acd\",\"urls\":[\"bzz-raw://44e1e8c22362c4708a8c3362735f1465f5b05e2f7315e16c7010d694ce019d73\",\"dweb:/ipfs/QmWj9g8X1hxkXRre2kwkEjLBetjuzmSbWHD81bsSojnBkS\"]}},\"version\":1}",
|
|
104
|
-
"bytecode": "0x60806040523480156200001157600080fd5b50604051620036cc380380620036cc83398101604081905262000034916200007b565b6000805460ff60a01b196001600160a01b039093166001600160a01b03199091161791909116600160a01b179055620000d0565b80516200007581620000b6565b92915050565b6000602082840312156200008e57600080fd5b60006200009c848462000068565b949350505050565b60006001600160a01b03821662000075565b620000c181620000a4565b8114620000cd57600080fd5b50565b6135ec80620000e06000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806315c14a4a1461003b578063c29a4b7114610059575b600080fd5b61004361006e565b6040516100509190613324565b60405180910390f35b61006c610067366004612ce1565b61008a565b005b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005474010000000000000000000000000000000000000000900460ff166100e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100de90613373565b60405180910390fd5b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690556101176127e3565b60005473ffffffffffffffffffffffffffffffffffffffff1680825260208201889052604080830188905260608301879052517f98d4611b0000000000000000000000000000000000000000000000000000000081526398d4611b90610181908990600401613383565b60006040518083038186803b15801561019957600080fd5b505afa1580156101ad573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101d59190810190612c34565b60a082015280516040517f98d4611b000000000000000000000000000000000000000000000000000000008152610291919073ffffffffffffffffffffffffffffffffffffffff8216906398d4611b90610233908c90600401613383565b60006040518083038186803b15801561024b57600080fd5b505afa15801561025f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102879190810190612c34565b8360a001516105f3565b608082015261029f81610930565b6000805b84518110156105595760008582815181106102ba57fe5b6020026020010151905060008090505b855181101561054f5760008682815181106102e157fe5b60200260200101519050828114156102f95750610547565b85516040517f47d1b53c0000000000000000000000000000000000000000000000000000000081526103a69173ffffffffffffffffffffffffffffffffffffffff16906347d1b53c90610352908f908890600401613391565b604080518083038186803b15801561036957600080fd5b505afa15801561037d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103a19190810190612d99565b610c7a565b6103b0575061054f565b85516040517f47d1b53c00000000000000000000000000000000000000000000000000000000815261045d9173ffffffffffffffffffffffffffffffffffffffff16906347d1b53c90610409908f908690600401613391565b604080518083038186803b15801561042057600080fd5b505afa158015610434573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506104589190810190612d99565b610caa565b6104675750610547565b61046f612841565b61047a878386610cd2565b90506104858161104b565b61048f87826111d6565b805161049c575050610547565b865173ffffffffffffffffffffffffffffffffffffffff1663a67a6a456104c2896112f4565b6104cb8461136a565b6040518363ffffffff1660e01b81526004016104e89291906132ff565b600060405180830381600087803b15801561050257600080fd5b505af1158015610516573d6000803e3d6000fd5b505050610120820151825161054292506105359163ffffffff61142316565b879063ffffffff61148016565b955050505b6001016102ca565b50506001016102a3565b506105aa858210157f4c697175696461746f7250726f787956310000000000000000000000000000007f4e6f7420656e6f756768206c6971756964617461626c652076616c756500000084896114bf565b5050600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055505050505050565b60608061067c8573ffffffffffffffffffffffffffffffffffffffff1663295c39a56040518163ffffffff1660e01b815260040160206040518083038186803b15801561063f57600080fd5b505afa158015610653573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106779190810190612db7565b6115c3565b9050600061068b8583836115fd565b90506106988483836115fd565b905060008090506060826040519080825280602002602001820160405280156106db57816020015b6106c86128ad565b8152602001906001900390816106c05790505b50905060005b84518110156109225760008582815181106106f857fe5b602002602001015190505b801561090b57600061071482611660565b905060006107228483611819565b905060405180608001604052808281526020018d73ffffffffffffffffffffffffffffffffffffffff16631a7777bb846040518263ffffffff1660e01b815260040161076e91906133ac565b60206040518083038186803b15801561078657600080fd5b505afa15801561079a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107be9190810190612ca5565b81526020018d73ffffffffffffffffffffffffffffffffffffffff16638928378e846040518263ffffffff1660e01b81526004016107fc91906133ac565b60206040518083038186803b15801561081457600080fd5b505afa158015610828573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061084c9190810190612ca5565b81526020018d73ffffffffffffffffffffffffffffffffffffffff166356ea84b2846040518263ffffffff1660e01b815260040161088a91906133ac565b60606040518083038186803b1580156108a257600080fd5b505afa1580156108b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108da9190810190612cc3565b905285516001880197879181106108ed57fe5b60200260200101819052506109028383611824565b92505050610703565b848414156109195750610922565b506001016106e1565b5093505050505b9392505050565b602081015151610a539073ffffffffffffffffffffffffffffffffffffffff16331480610a03575081516020830151516040517f3a031bf000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90921691633a031bf0916109b39133906004016132e4565b60206040518083038186803b1580156109cb57600080fd5b505afa1580156109df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a039190810190612c69565b7f4c697175696461746f7250726f787956310000000000000000000000000000007f53656e646572206e6f74206f70657261746f720000000000000000000000000084602001516000015161182d565b610a5b6128e6565b610a636128e6565b610a7f8360000151846080015185604001518660a001516118c5565b81519193509150610ad39015157f4c697175696461746f7250726f787956310000000000000000000000000000007f4c6971756964206163636f756e74206e6f20737570706c7900000000000000006118f0565b610c756001845160408087015190517fe51bfcb400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9092169163e51bfcb491610b3091600401613383565b60206040518083038186803b158015610b4857600080fd5b505afa158015610b5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b809190810190612c87565b6002811115610b8b57fe5b1480610c285750610c2683600001518360000151866000015173ffffffffffffffffffffffffffffffffffffffff16634f3c15426040518163ffffffff1660e01b815260040160206040518083038186803b158015610be957600080fd5b505afa158015610bfd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c219190810190612ca5565b61193a565b155b835183517f4c697175696461746f7250726f78795631000000000000000000000000000000917f4c6971756964206163636f756e74206e6f74206c6971756964617461626c6500916114bf565b505050565b8051600090158015610ca25750600082602001516fffffffffffffffffffffffffffffffff16115b90505b919050565b80516000908015610ca2575050602001516fffffffffffffffffffffffffffffffff16151590565b610cda612841565b610ce26128e6565b610cea6128e6565b8551608087015160208801516040517f98d4611b000000000000000000000000000000000000000000000000000000008152610da89392919073ffffffffffffffffffffffffffffffffffffffff8416906398d4611b90610d4f908490600401613383565b60006040518083038186803b158015610d6757600080fd5b505afa158015610d7b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610da39190810190612c34565b611965565b91509150610db46128ad565b610dc2876080015187611983565b9050610dcc6128ad565b610dda886080015187611983565b60408084015151908201515191925090610df26128e6565b8a516040517fd24c48bc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063d24c48bc90610e49908d908d906004016133ba565b60206040518083038186803b158015610e6157600080fd5b505afa158015610e75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610e999190810190612ca5565b905060405180610160016040528060008152602001610f4d8d6000015173ffffffffffffffffffffffffffffffffffffffff166347d1b53c8f602001518f6040518363ffffffff1660e01b8152600401610ef4929190613391565b604080518083038186803b158015610f0b57600080fd5b505afa158015610f1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f439190810190612d99565b8860600151611999565b8152602001610ff18d6000015173ffffffffffffffffffffffffffffffffffffffff166347d1b53c8f602001518e6040518363ffffffff1660e01b8152600401610f98929190613391565b604080518083038186803b158015610faf57600080fd5b505afa158015610fc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610fe79190810190612d99565b8760600151611999565b815260200188600001518152602001876000015181526020018281526020018b81526020018a815260200184815260200183815260200161103a8461103585611a4a565b611a81565b90529b9a5050505050505050505050565b600061105a8260400151611a9a565b159050600061106c8360200151611ab0565b1590508180156110795750805b156110855750506111d3565b60008215611095575060006110e2565b81156110a3575060016110e2565b61010084015160208086015101516110c09163ffffffff61142316565b6101408501516040860151602001516110de9163ffffffff61142316565b1190505b801561115e576110f06128f9565b6040805180820182529086018051511515825261014087015161010088015191516020908101519084019261112b929063ffffffff611ac716565b81525090506111588561114b838860200151611af190919063ffffffff16565b611153611b83565b611ba3565b506111cf565b6111666128f9565b6040518060400160405280866020015160000151151581526020016111a8876101000151886101400151896020015160200151611ac79092919063ffffffff16565b905290506111cd856111b8611b83565b6040880151611153908563ffffffff611af116565b505b5050505b50565b6111e38160200151611ab0565b156111ea57fe5b6111f78160400151611a9a565b156111fe57fe5b600061121782606001518360800151856060015161193a565b9050806112285750600081526112f0565b600061123c83608001518560600151611a81565b9050600061125782856080015161148090919063ffffffff16565b90506000611272828660600151611e6e90919063ffffffff16565b905061127c6128e6565b604080516020810190915260a08701515160608901515182916112a5919063ffffffff611e6e16565b9052905060006112b58383611eb0565b905060006112d188610120015183611ec990919063ffffffff16565b88519091506112e6908263ffffffff61148016565b8852505050505050505b5050565b6040805160028082526060828101909352829190816020015b6113156128f9565b81526020019060019003908161130d57905050905082602001518160008151811061133c57fe5b602002602001018190525082604001518160018151811061135957fe5b602090810291909101015292915050565b604080516001808252818301909252606091829190816020015b61138c612910565b8152602001906001900390816113845750506040805161010081018252600681526000602080830182905283516080810185526001815294955091939284019291820190815260006020808301829052885160409384015292845260e08801518484015260c0880151848301526060840181905260016080850152815181815292830190915260a090920152825183919061135957fe5b6000826114325750600061147a565b8282028284828161143f57fe5b0414611477576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100de90613353565b90505b92915050565b600082820183811015611477576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100de90613343565b846111cd576114cd84611f0b565b7f3a200000000000000000000000000000000000000000000000000000000000006114f785611f0b565b7f203c00000000000000000000000000000000000000000000000000000000000061152186611fc5565b7f2c2000000000000000000000000000000000000000000000000000000000000061154b87611fc5565b60405161158397969594939291907f3e0000000000000000000000000000000000000000000000000000000000000090602001613268565b60408051601f19818403018152908290527f08c379a00000000000000000000000000000000000000000000000000000000082526100de91600401613332565b606060016101008304016040519080825280602002602001820160405280156115f6578160200160208202803883390190505b5092915050565b6000805b8451811015611657576116278486838151811061161a57fe5b60200260200101516120d4565b61164f576116488486838151811061163b57fe5b6020026020010151612114565b6001830192505b600101611601565b50909392505050565b600060ff6fffffffffffffffffffffffffffffffff8316156116a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80016116ab565b608083901c92505b67ffffffffffffffff8316156116e2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0016116ea565b604083901c92505b63ffffffff8316156116ff57601f1901611707565b602083901c92505b61ffff831615611738577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001611740565b601083901c92505b60ff831615611770577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff801611778565b600883901c92505b600f8316156117a8577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc016117b0565b600483901c92505b60038316156117e0577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016117e8565b600283901c92505b6001831615610ca2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b610100919091020190565b6001901b900390565b836111cf5761183b83611f0b565b7f3a2000000000000000000000000000000000000000000000000000000000000061186584611f0b565b7f203c00000000000000000000000000000000000000000000000000000000000061188f8561214a565b6040516115839594939291907f3e000000000000000000000000000000000000000000000000000000000000009060200161320a565b6118cd6128e6565b6118d56128e6565b6118e38686868660016122c1565b9150915094509492505050565b82610c75576118fe82611f0b565b7f3a2000000000000000000000000000000000000000000000000000000000000061192883611f0b565b604051602001611583939291906131e2565b6000806119478484611a81565b9050611959848263ffffffff61148016565b90941015949350505050565b61196d6128e6565b6119756128e6565b6118e38686868660006122c1565b61198b6128ad565b611477836000855185612493565b6119a16128f9565b602083015183516fffffffffffffffffffffffffffffffff9091169015611a0d57604080518082019091526001815260208481015190820190611a029084906bffffffffffffffffffffffff16670de0b6b3a764000063ffffffff61258016565b81525091505061147a565b604080518082019091526000815283516020820190611a029084906bffffffffffffffffffffffff16670de0b6b3a764000063ffffffff61258016565b611a526128e6565b604080516020810190915282518190611a7990670de0b6b3a764000063ffffffff61148016565b905292915050565b6000611477838360000151670de0b6b3a7640000611ac7565b80516000908015610ca257505060200151151590565b8051600090158015610ca257505060200151151590565b6000611ae982611add868663ffffffff61142316565b9063ffffffff611ec916565b949350505050565b611af96128f9565b611b016128f9565b8251845115159015151415611b345783511515815260208085015190840151611b2a9190611480565b6020820152611477565b8260200151846020015110611b5d5783511515815260208085015190840151611b2a9190611e6e565b82511515815260208084015190850151611b779190611e6e565b60208201529392505050565b611b8b6128f9565b50604080518082019091526000808252602082015290565b6000611bc584610100015185602001516020015161142390919063ffffffff16565b60208501515190915015611c275760408051808201909152601281527f63616368652e68656c645765692e7369676e000000000000000000000000000060208201526060850151611c1d91839063ffffffff61261d16565b6060850152611c77565b60408051808201909152601381527f2163616368652e68656c645765692e7369676e0000000000000000000000000060208201526080850151611c7191839063ffffffff61261d16565b60808501525b6000611c95856101000151856020015161142390919063ffffffff16565b845190915015611cbe576060850151611cb4908263ffffffff61148016565b6060860152611cd9565b6080850151611cd3908263ffffffff61148016565b60808601525b6000611cfb86610120015187604001516020015161142390919063ffffffff16565b60408701515190915015611d5d5760408051808201909152601281527f63616368652e6f7765645765692e7369676e000000000000000000000000000060208201526060870151611d5391839063ffffffff61261d16565b6060870152611dad565b60408051808201909152601381527f2163616368652e6f7765645765692e7369676e0000000000000000000000000060208201526080870151611da791839063ffffffff61261d16565b60808701525b6000611dcb876101200151866020015161142390919063ffffffff16565b855190915015611df4576060870151611dea908263ffffffff61148016565b6060880152611e0f565b6080870151611e09908263ffffffff61148016565b60808801525b611e176128f9565b6040880151611e2c908763ffffffff61266316565b9050611e3781611ab0565b15611e3e57fe5b60208101518851611e549163ffffffff61148016565b885250505050602084019290925260409092019190915250565b600061147783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061261d565b600061147783670de0b6b3a76400008460000151611ac7565b600061147783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061267d565b60608082604051602001611f1f91906131cd565b60408051601f19818403018152919052905060205b8015611faa5781517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90910190829082908110611f6d57fe5b01602001517fff000000000000000000000000000000000000000000000000000000000000001615611fa55760010181529050610ca5565b611f34565b5060408051600080825260208201909252905b509392505050565b606081612006575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610ca5565b8160005b811561201e57600101600a8204915061200a565b6060816040519080825280601f01601f19166020018201604052801561204b576020820181803883390190505b508593509050815b80156120cb577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01600a840660300160f81b82828151811061209157fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350612053565b50949350505050565b600080610100830490506000610100840690506000816001901b8684815181106120fa57fe5b602002602001015116905060008111935050505092915050565b815161010082049060ff8316906001821b9085908490811061213257fe5b60200260200101818151179150818152505050505050565b60408051602a808252606082810190935273ffffffffffffffffffffffffffffffffffffffff8416918391602082018180388339019050509050603060f81b8160008151811061219657fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350607860f81b816001815181106121d757fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060005b6014811015611fbd5760028102612222600f85166126ce565b83826029038151811061223157fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600484901c9350612273600f85166126ce565b83826028038151811061228257fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505060049290921c91600101612209565b6122c96128e6565b6122d16128e6565b6122d96128e6565b6122e16128e6565b60005b8651811015612484576122f56128f9565b8a73ffffffffffffffffffffffffffffffffffffffff166347d1b53c8a8a858151811061231e57fe5b60200260200101516040518363ffffffff1660e01b8152600401612343929190613391565b604080518083038186803b15801561235a57600080fd5b505afa15801561236e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506123929190810190612d99565b905061239d816126f0565b156123a8575061247c565b6123b06128ad565b6123cd8b8a85815181106123c057fe5b6020026020010151611983565b90506123d76128f9565b6123e5838360600151611999565b60408301515160208201519192506000916124059163ffffffff61142316565b905061240f6128e6565b61241761270a565b90508a1561242f5761242c8460200151611a4a565b90505b825115612458576124516124438383611eb0565b89519063ffffffff61148016565b8852612476565b6124736124658383611a81565b88519063ffffffff61148016565b87525b50505050505b6001016122e4565b50909890975095505050505050565b61249b6128ad565b8383038015806124cd57508060011480156124cd5750828686815181106124be57fe5b60200260200101516000015114155b15612504576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100de90613363565b60006002820486019050600087828151811061251c57fe5b6020026020010151600001519050808510156125485761253e88888488612493565b9350505050611ae9565b8085111561255f5761253e88836001018888612493565b87828151811061256b57fe5b60200260200101519350505050949350505050565b600083158061258d575082155b156125a45761259d600083611ec9565b9050610929565b60006125b6858563ffffffff61142316565b90506126146125e160016125d56002611add888463ffffffff611e6e16565b9063ffffffff61148016565b6125f1838663ffffffff61272c16565b10156125fe576000612601565b60015b60ff166125d5838663ffffffff611ec916565b95945050505050565b6000818484111561265b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100de9190613332565b505050900390565b61266b6128f9565b611477836126788461276e565b611af1565b600081836126b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100de9190613332565b5060008385816126c457fe5b0495945050505050565b6000600a8210156126e657506030810160f81b610ca5565b5060570160f81b90565b602001516fffffffffffffffffffffffffffffffff161590565b6127126128e6565b506040805160208101909152670de0b6b3a7640000815290565b600061147783836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250612795565b6127766128f9565b5060408051808201909152815115815260208083015190820152919050565b600081836127d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100de9190613332565b508284816127da57fe5b06949350505050565b6040518060c00160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016128136128f9565b81526020016128206128f9565b815260200161282d6128e6565b815260200160608152602001606081525090565b6040518061016001604052806000815260200161285c6128f9565b81526020016128696128f9565b815260200160008152602001600081526020016128846128e6565b815260200160008152602001600081526020016000815260200160008152602001600081525090565b6040518060800160405280600081526020016128c76128e6565b81526020016128d46128e6565b81526020016128e161296f565b905290565b6040518060200160405280600081525090565b604080518082019091526000808252602082015290565b60408051610100810182526000808252602082015290810161293061298f565b81526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001606081525090565b604080516060810182526000808252602082018190529181019190915290565b604080516080810190915260008082526020820190815260200160008152602001600081525090565b803561147a8161355b565b600082601f8301126129d457600080fd5b81356129e76129e2826133fc565b6133d5565b91508181835260208401935060208101905083856020840282011115612a0c57600080fd5b60005b83811015612a385781612a228882612c08565b8452506020928301929190910190600101612a0f565b5050505092915050565b600082601f830112612a5357600080fd5b8151612a616129e2826133fc565b91508181835260208401935060208101905083856020840282011115612a8657600080fd5b60005b83811015612a385781612a9c8882612c13565b8452506020928301929190910190600101612a89565b805161147a8161356f565b805161147a81613578565b600060208284031215612ada57600080fd5b612ae460206133d5565b90506000612af28484612c08565b82525092915050565b600060208284031215612b0d57600080fd5b612b1760206133d5565b90506000612af28484612c13565b600060608284031215612b3757600080fd5b612b4160606133d5565b90506000612b4f8484612c29565b8252506020612b6084848301612c29565b6020830152506040612b7484828501612c1e565b60408301525092915050565b600060408284031215612b9257600080fd5b612b9c60406133d5565b90506000612baa84846129b8565b8252506020612bbb84848301612c08565b60208301525092915050565b600060408284031215612bd957600080fd5b612be360406133d5565b90506000612bf18484612ab2565b8252506020612bbb84848301805161147a81613585565b803561147a8161358e565b805161147a8161358e565b805161147a81613597565b805161147a816135a0565b600060208284031215612c4657600080fd5b815167ffffffffffffffff811115612c5d57600080fd5b611ae984828501612a42565b600060208284031215612c7b57600080fd5b6000611ae98484612ab2565b600060208284031215612c9957600080fd5b6000611ae98484612abd565b600060208284031215612cb757600080fd5b6000611ae98484612afb565b600060608284031215612cd557600080fd5b6000611ae98484612b25565b6000806000806000806101008789031215612cfb57600080fd5b6000612d078989612b80565b9650506040612d1889828a01612b80565b9550506080612d2989828a01612ac8565b94505060a0612d3a89828a01612c08565b93505060c087013567ffffffffffffffff811115612d5757600080fd5b612d6389828a016129c3565b92505060e087013567ffffffffffffffff811115612d8057600080fd5b612d8c89828a016129c3565b9150509295509295509295565b600060408284031215612dab57600080fd5b6000611ae98484612bc7565b600060208284031215612dc957600080fd5b6000611ae98484612c13565b600061147783836130b8565b6000612ded83836131a4565b505060400190565b612dfe816134e9565b82525050565b612dfe81613430565b6000612e1882613423565b612e228185613427565b935083602082028501612e348561341d565b8060005b85811015612e6e5784840389528151612e518582612dd5565b9450612e5c8361341d565b60209a909a0199925050600101612e38565b5091979650505050505050565b6000612e8682613423565b612e908185613427565b9350612e9b8361341d565b8060005b83811015612ec9578151612eb38882612de1565b9750612ebe8361341d565b925050600101612e9f565b509495945050505050565b612dfe8161343b565b612dfe612ee982613440565b61348a565b612dfe612ee982613465565b612dfe612ee98261348a565b6000612f1182613423565b612f1b8185610ca5565b9350612f2b818560208601613511565b9290920192915050565b6000612f4082613423565b612f4a8185613427565b9350612f5a818560208601613511565b612f638161353d565b9093019392505050565b612dfe816134f0565b612dfe816134fb565b612dfe81613506565b6000612f95601b83613427565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000612fce602183613427565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b600061302d602583613427565b7f4c697175696461746f7250726f787948656c7065723a206974656d206e6f742081527f666f756e64000000000000000000000000000000000000000000000000000000602082015260400192915050565b600061308c601f83613427565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00815260200192915050565b80516000906101608401906130cd8582612f76565b5060208301516130e060208601826131c4565b5060408301516130f3604086018261315a565b50606083015161310660c08601826131c4565b50608083015161311960e08601826131c4565b5060a083015161312d610100860182612e04565b5060c08301516131416101208601826131c4565b5060e08301518482036101408601526126148282612f35565b8051608083019061316b8482612ed4565b50602082015161317e6020850182612f7f565b5060408201516131916040850182612f7f565b5060608201516111cf60608501826131c4565b805160408301906131b58482612e04565b5060208201516111cf60208501825b612dfe8161348a565b60006131d98284612efa565b50602001919050565b60006131ee8286612f06565b91506131fa8285612eee565b6002820191506126148284612f06565b60006132168289612f06565b91506132228288612eee565b6002820191506132328287612f06565b915061323e8286612eee565b60028201915061324e8285612f06565b915061325a8284612edd565b506001019695505050505050565b6000613274828b612f06565b9150613280828a612eee565b6002820191506132908289612f06565b915061329c8288612eee565b6002820191506132ac8287612f06565b91506132b88286612eee565b6002820191506132c88285612f06565b91506132d48284612edd565b5060010198975050505050505050565b604081016132f28285612e04565b6109296020830184612df5565b604080825281016133108185612e7b565b90508181036020830152611ae98184612e0d565b6020810161147a8284612f6d565b602080825281016114778184612f35565b60208082528101610ca281612f88565b60208082528101610ca281612fc1565b60208082528101610ca281613020565b60208082528101610ca28161307f565b6040810161147a82846131a4565b6060810161339f82856131a4565b61092960408301846131c4565b6020810161147a82846131c4565b604081016133c882856131c4565b61092960208301846131c4565b60405181810167ffffffffffffffff811182821017156133f457600080fd5b604052919050565b600067ffffffffffffffff82111561341357600080fd5b5060209081020190565b60200190565b5190565b90815260200190565b6000610ca2826134b6565b151590565b7fff000000000000000000000000000000000000000000000000000000000000001690565b7fffff0000000000000000000000000000000000000000000000000000000000001690565b90565b80610ca581613547565b80610ca581613551565b6fffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1690565b63ffffffff1690565b6bffffffffffffffffffffffff1690565b6000610ca2825b6000610ca282613430565b6000610ca28261348d565b6000610ca282613497565b60005b8381101561352c578181015183820152602001613514565b838111156111cf5750506000910152565b601f01601f191690565b600981106111d357fe5b600281106111d357fe5b61356481613430565b81146111d357600080fd5b6135648161343b565b600381106111d357600080fd5b613564816134a1565b6135648161348a565b613564816134cf565b613564816134d856fea365627a7a723158204b8503d8d8a96153daf6ce6186ffe8f732a5838316621dbd3c6784ba237c10b96c6578706572696d656e74616cf564736f6c63430005100040",
|
|
105
|
-
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c806315c14a4a1461003b578063c29a4b7114610059575b600080fd5b61004361006e565b6040516100509190613324565b60405180910390f35b61006c610067366004612ce1565b61008a565b005b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005474010000000000000000000000000000000000000000900460ff166100e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100de90613373565b60405180910390fd5b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690556101176127e3565b60005473ffffffffffffffffffffffffffffffffffffffff1680825260208201889052604080830188905260608301879052517f98d4611b0000000000000000000000000000000000000000000000000000000081526398d4611b90610181908990600401613383565b60006040518083038186803b15801561019957600080fd5b505afa1580156101ad573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101d59190810190612c34565b60a082015280516040517f98d4611b000000000000000000000000000000000000000000000000000000008152610291919073ffffffffffffffffffffffffffffffffffffffff8216906398d4611b90610233908c90600401613383565b60006040518083038186803b15801561024b57600080fd5b505afa15801561025f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102879190810190612c34565b8360a001516105f3565b608082015261029f81610930565b6000805b84518110156105595760008582815181106102ba57fe5b6020026020010151905060008090505b855181101561054f5760008682815181106102e157fe5b60200260200101519050828114156102f95750610547565b85516040517f47d1b53c0000000000000000000000000000000000000000000000000000000081526103a69173ffffffffffffffffffffffffffffffffffffffff16906347d1b53c90610352908f908890600401613391565b604080518083038186803b15801561036957600080fd5b505afa15801561037d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103a19190810190612d99565b610c7a565b6103b0575061054f565b85516040517f47d1b53c00000000000000000000000000000000000000000000000000000000815261045d9173ffffffffffffffffffffffffffffffffffffffff16906347d1b53c90610409908f908690600401613391565b604080518083038186803b15801561042057600080fd5b505afa158015610434573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506104589190810190612d99565b610caa565b6104675750610547565b61046f612841565b61047a878386610cd2565b90506104858161104b565b61048f87826111d6565b805161049c575050610547565b865173ffffffffffffffffffffffffffffffffffffffff1663a67a6a456104c2896112f4565b6104cb8461136a565b6040518363ffffffff1660e01b81526004016104e89291906132ff565b600060405180830381600087803b15801561050257600080fd5b505af1158015610516573d6000803e3d6000fd5b505050610120820151825161054292506105359163ffffffff61142316565b879063ffffffff61148016565b955050505b6001016102ca565b50506001016102a3565b506105aa858210157f4c697175696461746f7250726f787956310000000000000000000000000000007f4e6f7420656e6f756768206c6971756964617461626c652076616c756500000084896114bf565b5050600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055505050505050565b60608061067c8573ffffffffffffffffffffffffffffffffffffffff1663295c39a56040518163ffffffff1660e01b815260040160206040518083038186803b15801561063f57600080fd5b505afa158015610653573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106779190810190612db7565b6115c3565b9050600061068b8583836115fd565b90506106988483836115fd565b905060008090506060826040519080825280602002602001820160405280156106db57816020015b6106c86128ad565b8152602001906001900390816106c05790505b50905060005b84518110156109225760008582815181106106f857fe5b602002602001015190505b801561090b57600061071482611660565b905060006107228483611819565b905060405180608001604052808281526020018d73ffffffffffffffffffffffffffffffffffffffff16631a7777bb846040518263ffffffff1660e01b815260040161076e91906133ac565b60206040518083038186803b15801561078657600080fd5b505afa15801561079a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107be9190810190612ca5565b81526020018d73ffffffffffffffffffffffffffffffffffffffff16638928378e846040518263ffffffff1660e01b81526004016107fc91906133ac565b60206040518083038186803b15801561081457600080fd5b505afa158015610828573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061084c9190810190612ca5565b81526020018d73ffffffffffffffffffffffffffffffffffffffff166356ea84b2846040518263ffffffff1660e01b815260040161088a91906133ac565b60606040518083038186803b1580156108a257600080fd5b505afa1580156108b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108da9190810190612cc3565b905285516001880197879181106108ed57fe5b60200260200101819052506109028383611824565b92505050610703565b848414156109195750610922565b506001016106e1565b5093505050505b9392505050565b602081015151610a539073ffffffffffffffffffffffffffffffffffffffff16331480610a03575081516020830151516040517f3a031bf000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90921691633a031bf0916109b39133906004016132e4565b60206040518083038186803b1580156109cb57600080fd5b505afa1580156109df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a039190810190612c69565b7f4c697175696461746f7250726f787956310000000000000000000000000000007f53656e646572206e6f74206f70657261746f720000000000000000000000000084602001516000015161182d565b610a5b6128e6565b610a636128e6565b610a7f8360000151846080015185604001518660a001516118c5565b81519193509150610ad39015157f4c697175696461746f7250726f787956310000000000000000000000000000007f4c6971756964206163636f756e74206e6f20737570706c7900000000000000006118f0565b610c756001845160408087015190517fe51bfcb400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9092169163e51bfcb491610b3091600401613383565b60206040518083038186803b158015610b4857600080fd5b505afa158015610b5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b809190810190612c87565b6002811115610b8b57fe5b1480610c285750610c2683600001518360000151866000015173ffffffffffffffffffffffffffffffffffffffff16634f3c15426040518163ffffffff1660e01b815260040160206040518083038186803b158015610be957600080fd5b505afa158015610bfd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c219190810190612ca5565b61193a565b155b835183517f4c697175696461746f7250726f78795631000000000000000000000000000000917f4c6971756964206163636f756e74206e6f74206c6971756964617461626c6500916114bf565b505050565b8051600090158015610ca25750600082602001516fffffffffffffffffffffffffffffffff16115b90505b919050565b80516000908015610ca2575050602001516fffffffffffffffffffffffffffffffff16151590565b610cda612841565b610ce26128e6565b610cea6128e6565b8551608087015160208801516040517f98d4611b000000000000000000000000000000000000000000000000000000008152610da89392919073ffffffffffffffffffffffffffffffffffffffff8416906398d4611b90610d4f908490600401613383565b60006040518083038186803b158015610d6757600080fd5b505afa158015610d7b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610da39190810190612c34565b611965565b91509150610db46128ad565b610dc2876080015187611983565b9050610dcc6128ad565b610dda886080015187611983565b60408084015151908201515191925090610df26128e6565b8a516040517fd24c48bc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063d24c48bc90610e49908d908d906004016133ba565b60206040518083038186803b158015610e6157600080fd5b505afa158015610e75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610e999190810190612ca5565b905060405180610160016040528060008152602001610f4d8d6000015173ffffffffffffffffffffffffffffffffffffffff166347d1b53c8f602001518f6040518363ffffffff1660e01b8152600401610ef4929190613391565b604080518083038186803b158015610f0b57600080fd5b505afa158015610f1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f439190810190612d99565b8860600151611999565b8152602001610ff18d6000015173ffffffffffffffffffffffffffffffffffffffff166347d1b53c8f602001518e6040518363ffffffff1660e01b8152600401610f98929190613391565b604080518083038186803b158015610faf57600080fd5b505afa158015610fc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610fe79190810190612d99565b8760600151611999565b815260200188600001518152602001876000015181526020018281526020018b81526020018a815260200184815260200183815260200161103a8461103585611a4a565b611a81565b90529b9a5050505050505050505050565b600061105a8260400151611a9a565b159050600061106c8360200151611ab0565b1590508180156110795750805b156110855750506111d3565b60008215611095575060006110e2565b81156110a3575060016110e2565b61010084015160208086015101516110c09163ffffffff61142316565b6101408501516040860151602001516110de9163ffffffff61142316565b1190505b801561115e576110f06128f9565b6040805180820182529086018051511515825261014087015161010088015191516020908101519084019261112b929063ffffffff611ac716565b81525090506111588561114b838860200151611af190919063ffffffff16565b611153611b83565b611ba3565b506111cf565b6111666128f9565b6040518060400160405280866020015160000151151581526020016111a8876101000151886101400151896020015160200151611ac79092919063ffffffff16565b905290506111cd856111b8611b83565b6040880151611153908563ffffffff611af116565b505b5050505b50565b6111e38160200151611ab0565b156111ea57fe5b6111f78160400151611a9a565b156111fe57fe5b600061121782606001518360800151856060015161193a565b9050806112285750600081526112f0565b600061123c83608001518560600151611a81565b9050600061125782856080015161148090919063ffffffff16565b90506000611272828660600151611e6e90919063ffffffff16565b905061127c6128e6565b604080516020810190915260a08701515160608901515182916112a5919063ffffffff611e6e16565b9052905060006112b58383611eb0565b905060006112d188610120015183611ec990919063ffffffff16565b88519091506112e6908263ffffffff61148016565b8852505050505050505b5050565b6040805160028082526060828101909352829190816020015b6113156128f9565b81526020019060019003908161130d57905050905082602001518160008151811061133c57fe5b602002602001018190525082604001518160018151811061135957fe5b602090810291909101015292915050565b604080516001808252818301909252606091829190816020015b61138c612910565b8152602001906001900390816113845750506040805161010081018252600681526000602080830182905283516080810185526001815294955091939284019291820190815260006020808301829052885160409384015292845260e08801518484015260c0880151848301526060840181905260016080850152815181815292830190915260a090920152825183919061135957fe5b6000826114325750600061147a565b8282028284828161143f57fe5b0414611477576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100de90613353565b90505b92915050565b600082820183811015611477576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100de90613343565b846111cd576114cd84611f0b565b7f3a200000000000000000000000000000000000000000000000000000000000006114f785611f0b565b7f203c00000000000000000000000000000000000000000000000000000000000061152186611fc5565b7f2c2000000000000000000000000000000000000000000000000000000000000061154b87611fc5565b60405161158397969594939291907f3e0000000000000000000000000000000000000000000000000000000000000090602001613268565b60408051601f19818403018152908290527f08c379a00000000000000000000000000000000000000000000000000000000082526100de91600401613332565b606060016101008304016040519080825280602002602001820160405280156115f6578160200160208202803883390190505b5092915050565b6000805b8451811015611657576116278486838151811061161a57fe5b60200260200101516120d4565b61164f576116488486838151811061163b57fe5b6020026020010151612114565b6001830192505b600101611601565b50909392505050565b600060ff6fffffffffffffffffffffffffffffffff8316156116a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80016116ab565b608083901c92505b67ffffffffffffffff8316156116e2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0016116ea565b604083901c92505b63ffffffff8316156116ff57601f1901611707565b602083901c92505b61ffff831615611738577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001611740565b601083901c92505b60ff831615611770577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff801611778565b600883901c92505b600f8316156117a8577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc016117b0565b600483901c92505b60038316156117e0577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016117e8565b600283901c92505b6001831615610ca2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b610100919091020190565b6001901b900390565b836111cf5761183b83611f0b565b7f3a2000000000000000000000000000000000000000000000000000000000000061186584611f0b565b7f203c00000000000000000000000000000000000000000000000000000000000061188f8561214a565b6040516115839594939291907f3e000000000000000000000000000000000000000000000000000000000000009060200161320a565b6118cd6128e6565b6118d56128e6565b6118e38686868660016122c1565b9150915094509492505050565b82610c75576118fe82611f0b565b7f3a2000000000000000000000000000000000000000000000000000000000000061192883611f0b565b604051602001611583939291906131e2565b6000806119478484611a81565b9050611959848263ffffffff61148016565b90941015949350505050565b61196d6128e6565b6119756128e6565b6118e38686868660006122c1565b61198b6128ad565b611477836000855185612493565b6119a16128f9565b602083015183516fffffffffffffffffffffffffffffffff9091169015611a0d57604080518082019091526001815260208481015190820190611a029084906bffffffffffffffffffffffff16670de0b6b3a764000063ffffffff61258016565b81525091505061147a565b604080518082019091526000815283516020820190611a029084906bffffffffffffffffffffffff16670de0b6b3a764000063ffffffff61258016565b611a526128e6565b604080516020810190915282518190611a7990670de0b6b3a764000063ffffffff61148016565b905292915050565b6000611477838360000151670de0b6b3a7640000611ac7565b80516000908015610ca257505060200151151590565b8051600090158015610ca257505060200151151590565b6000611ae982611add868663ffffffff61142316565b9063ffffffff611ec916565b949350505050565b611af96128f9565b611b016128f9565b8251845115159015151415611b345783511515815260208085015190840151611b2a9190611480565b6020820152611477565b8260200151846020015110611b5d5783511515815260208085015190840151611b2a9190611e6e565b82511515815260208084015190850151611b779190611e6e565b60208201529392505050565b611b8b6128f9565b50604080518082019091526000808252602082015290565b6000611bc584610100015185602001516020015161142390919063ffffffff16565b60208501515190915015611c275760408051808201909152601281527f63616368652e68656c645765692e7369676e000000000000000000000000000060208201526060850151611c1d91839063ffffffff61261d16565b6060850152611c77565b60408051808201909152601381527f2163616368652e68656c645765692e7369676e0000000000000000000000000060208201526080850151611c7191839063ffffffff61261d16565b60808501525b6000611c95856101000151856020015161142390919063ffffffff16565b845190915015611cbe576060850151611cb4908263ffffffff61148016565b6060860152611cd9565b6080850151611cd3908263ffffffff61148016565b60808601525b6000611cfb86610120015187604001516020015161142390919063ffffffff16565b60408701515190915015611d5d5760408051808201909152601281527f63616368652e6f7765645765692e7369676e000000000000000000000000000060208201526060870151611d5391839063ffffffff61261d16565b6060870152611dad565b60408051808201909152601381527f2163616368652e6f7765645765692e7369676e0000000000000000000000000060208201526080870151611da791839063ffffffff61261d16565b60808701525b6000611dcb876101200151866020015161142390919063ffffffff16565b855190915015611df4576060870151611dea908263ffffffff61148016565b6060880152611e0f565b6080870151611e09908263ffffffff61148016565b60808801525b611e176128f9565b6040880151611e2c908763ffffffff61266316565b9050611e3781611ab0565b15611e3e57fe5b60208101518851611e549163ffffffff61148016565b885250505050602084019290925260409092019190915250565b600061147783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061261d565b600061147783670de0b6b3a76400008460000151611ac7565b600061147783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061267d565b60608082604051602001611f1f91906131cd565b60408051601f19818403018152919052905060205b8015611faa5781517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90910190829082908110611f6d57fe5b01602001517fff000000000000000000000000000000000000000000000000000000000000001615611fa55760010181529050610ca5565b611f34565b5060408051600080825260208201909252905b509392505050565b606081612006575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610ca5565b8160005b811561201e57600101600a8204915061200a565b6060816040519080825280601f01601f19166020018201604052801561204b576020820181803883390190505b508593509050815b80156120cb577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01600a840660300160f81b82828151811061209157fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350612053565b50949350505050565b600080610100830490506000610100840690506000816001901b8684815181106120fa57fe5b602002602001015116905060008111935050505092915050565b815161010082049060ff8316906001821b9085908490811061213257fe5b60200260200101818151179150818152505050505050565b60408051602a808252606082810190935273ffffffffffffffffffffffffffffffffffffffff8416918391602082018180388339019050509050603060f81b8160008151811061219657fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350607860f81b816001815181106121d757fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060005b6014811015611fbd5760028102612222600f85166126ce565b83826029038151811061223157fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600484901c9350612273600f85166126ce565b83826028038151811061228257fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505060049290921c91600101612209565b6122c96128e6565b6122d16128e6565b6122d96128e6565b6122e16128e6565b60005b8651811015612484576122f56128f9565b8a73ffffffffffffffffffffffffffffffffffffffff166347d1b53c8a8a858151811061231e57fe5b60200260200101516040518363ffffffff1660e01b8152600401612343929190613391565b604080518083038186803b15801561235a57600080fd5b505afa15801561236e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506123929190810190612d99565b905061239d816126f0565b156123a8575061247c565b6123b06128ad565b6123cd8b8a85815181106123c057fe5b6020026020010151611983565b90506123d76128f9565b6123e5838360600151611999565b60408301515160208201519192506000916124059163ffffffff61142316565b905061240f6128e6565b61241761270a565b90508a1561242f5761242c8460200151611a4a565b90505b825115612458576124516124438383611eb0565b89519063ffffffff61148016565b8852612476565b6124736124658383611a81565b88519063ffffffff61148016565b87525b50505050505b6001016122e4565b50909890975095505050505050565b61249b6128ad565b8383038015806124cd57508060011480156124cd5750828686815181106124be57fe5b60200260200101516000015114155b15612504576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100de90613363565b60006002820486019050600087828151811061251c57fe5b6020026020010151600001519050808510156125485761253e88888488612493565b9350505050611ae9565b8085111561255f5761253e88836001018888612493565b87828151811061256b57fe5b60200260200101519350505050949350505050565b600083158061258d575082155b156125a45761259d600083611ec9565b9050610929565b60006125b6858563ffffffff61142316565b90506126146125e160016125d56002611add888463ffffffff611e6e16565b9063ffffffff61148016565b6125f1838663ffffffff61272c16565b10156125fe576000612601565b60015b60ff166125d5838663ffffffff611ec916565b95945050505050565b6000818484111561265b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100de9190613332565b505050900390565b61266b6128f9565b611477836126788461276e565b611af1565b600081836126b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100de9190613332565b5060008385816126c457fe5b0495945050505050565b6000600a8210156126e657506030810160f81b610ca5565b5060570160f81b90565b602001516fffffffffffffffffffffffffffffffff161590565b6127126128e6565b506040805160208101909152670de0b6b3a7640000815290565b600061147783836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250612795565b6127766128f9565b5060408051808201909152815115815260208083015190820152919050565b600081836127d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100de9190613332565b508284816127da57fe5b06949350505050565b6040518060c00160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016128136128f9565b81526020016128206128f9565b815260200161282d6128e6565b815260200160608152602001606081525090565b6040518061016001604052806000815260200161285c6128f9565b81526020016128696128f9565b815260200160008152602001600081526020016128846128e6565b815260200160008152602001600081526020016000815260200160008152602001600081525090565b6040518060800160405280600081526020016128c76128e6565b81526020016128d46128e6565b81526020016128e161296f565b905290565b6040518060200160405280600081525090565b604080518082019091526000808252602082015290565b60408051610100810182526000808252602082015290810161293061298f565b81526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001606081525090565b604080516060810182526000808252602082018190529181019190915290565b604080516080810190915260008082526020820190815260200160008152602001600081525090565b803561147a8161355b565b600082601f8301126129d457600080fd5b81356129e76129e2826133fc565b6133d5565b91508181835260208401935060208101905083856020840282011115612a0c57600080fd5b60005b83811015612a385781612a228882612c08565b8452506020928301929190910190600101612a0f565b5050505092915050565b600082601f830112612a5357600080fd5b8151612a616129e2826133fc565b91508181835260208401935060208101905083856020840282011115612a8657600080fd5b60005b83811015612a385781612a9c8882612c13565b8452506020928301929190910190600101612a89565b805161147a8161356f565b805161147a81613578565b600060208284031215612ada57600080fd5b612ae460206133d5565b90506000612af28484612c08565b82525092915050565b600060208284031215612b0d57600080fd5b612b1760206133d5565b90506000612af28484612c13565b600060608284031215612b3757600080fd5b612b4160606133d5565b90506000612b4f8484612c29565b8252506020612b6084848301612c29565b6020830152506040612b7484828501612c1e565b60408301525092915050565b600060408284031215612b9257600080fd5b612b9c60406133d5565b90506000612baa84846129b8565b8252506020612bbb84848301612c08565b60208301525092915050565b600060408284031215612bd957600080fd5b612be360406133d5565b90506000612bf18484612ab2565b8252506020612bbb84848301805161147a81613585565b803561147a8161358e565b805161147a8161358e565b805161147a81613597565b805161147a816135a0565b600060208284031215612c4657600080fd5b815167ffffffffffffffff811115612c5d57600080fd5b611ae984828501612a42565b600060208284031215612c7b57600080fd5b6000611ae98484612ab2565b600060208284031215612c9957600080fd5b6000611ae98484612abd565b600060208284031215612cb757600080fd5b6000611ae98484612afb565b600060608284031215612cd557600080fd5b6000611ae98484612b25565b6000806000806000806101008789031215612cfb57600080fd5b6000612d078989612b80565b9650506040612d1889828a01612b80565b9550506080612d2989828a01612ac8565b94505060a0612d3a89828a01612c08565b93505060c087013567ffffffffffffffff811115612d5757600080fd5b612d6389828a016129c3565b92505060e087013567ffffffffffffffff811115612d8057600080fd5b612d8c89828a016129c3565b9150509295509295509295565b600060408284031215612dab57600080fd5b6000611ae98484612bc7565b600060208284031215612dc957600080fd5b6000611ae98484612c13565b600061147783836130b8565b6000612ded83836131a4565b505060400190565b612dfe816134e9565b82525050565b612dfe81613430565b6000612e1882613423565b612e228185613427565b935083602082028501612e348561341d565b8060005b85811015612e6e5784840389528151612e518582612dd5565b9450612e5c8361341d565b60209a909a0199925050600101612e38565b5091979650505050505050565b6000612e8682613423565b612e908185613427565b9350612e9b8361341d565b8060005b83811015612ec9578151612eb38882612de1565b9750612ebe8361341d565b925050600101612e9f565b509495945050505050565b612dfe8161343b565b612dfe612ee982613440565b61348a565b612dfe612ee982613465565b612dfe612ee98261348a565b6000612f1182613423565b612f1b8185610ca5565b9350612f2b818560208601613511565b9290920192915050565b6000612f4082613423565b612f4a8185613427565b9350612f5a818560208601613511565b612f638161353d565b9093019392505050565b612dfe816134f0565b612dfe816134fb565b612dfe81613506565b6000612f95601b83613427565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000612fce602183613427565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b600061302d602583613427565b7f4c697175696461746f7250726f787948656c7065723a206974656d206e6f742081527f666f756e64000000000000000000000000000000000000000000000000000000602082015260400192915050565b600061308c601f83613427565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00815260200192915050565b80516000906101608401906130cd8582612f76565b5060208301516130e060208601826131c4565b5060408301516130f3604086018261315a565b50606083015161310660c08601826131c4565b50608083015161311960e08601826131c4565b5060a083015161312d610100860182612e04565b5060c08301516131416101208601826131c4565b5060e08301518482036101408601526126148282612f35565b8051608083019061316b8482612ed4565b50602082015161317e6020850182612f7f565b5060408201516131916040850182612f7f565b5060608201516111cf60608501826131c4565b805160408301906131b58482612e04565b5060208201516111cf60208501825b612dfe8161348a565b60006131d98284612efa565b50602001919050565b60006131ee8286612f06565b91506131fa8285612eee565b6002820191506126148284612f06565b60006132168289612f06565b91506132228288612eee565b6002820191506132328287612f06565b915061323e8286612eee565b60028201915061324e8285612f06565b915061325a8284612edd565b506001019695505050505050565b6000613274828b612f06565b9150613280828a612eee565b6002820191506132908289612f06565b915061329c8288612eee565b6002820191506132ac8287612f06565b91506132b88286612eee565b6002820191506132c88285612f06565b91506132d48284612edd565b5060010198975050505050505050565b604081016132f28285612e04565b6109296020830184612df5565b604080825281016133108185612e7b565b90508181036020830152611ae98184612e0d565b6020810161147a8284612f6d565b602080825281016114778184612f35565b60208082528101610ca281612f88565b60208082528101610ca281612fc1565b60208082528101610ca281613020565b60208082528101610ca28161307f565b6040810161147a82846131a4565b6060810161339f82856131a4565b61092960408301846131c4565b6020810161147a82846131c4565b604081016133c882856131c4565b61092960208301846131c4565b60405181810167ffffffffffffffff811182821017156133f457600080fd5b604052919050565b600067ffffffffffffffff82111561341357600080fd5b5060209081020190565b60200190565b5190565b90815260200190565b6000610ca2826134b6565b151590565b7fff000000000000000000000000000000000000000000000000000000000000001690565b7fffff0000000000000000000000000000000000000000000000000000000000001690565b90565b80610ca581613547565b80610ca581613551565b6fffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1690565b63ffffffff1690565b6bffffffffffffffffffffffff1690565b6000610ca2825b6000610ca282613430565b6000610ca28261348d565b6000610ca282613497565b60005b8381101561352c578181015183820152602001613514565b838111156111cf5750506000910152565b601f01601f191690565b600981106111d357fe5b600281106111d357fe5b61356481613430565b81146111d357600080fd5b6135648161343b565b600381106111d357600080fd5b613564816134a1565b6135648161348a565b613564816134cf565b613564816134d856fea365627a7a723158204b8503d8d8a96153daf6ce6186ffe8f732a5838316621dbd3c6784ba237c10b96c6578706572696d656e74616cf564736f6c63430005100040",
|
|
103
|
+
"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\"},{\"constant\":true,\"inputs\":[],\"name\":\"DOLOMITE_MARGIN\",\"outputs\":[{\"internalType\":\"contract IDolomiteMargin\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"internalType\":\"struct Account.Info\",\"name\":\"solidAccount\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"internalType\":\"struct Account.Info\",\"name\":\"liquidAccount\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Decimal.D256\",\"name\":\"minLiquidatorRatio\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"minValueLiquidated\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"owedPreferences\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"heldPreferences\",\"type\":\"uint256[]\"}],\"name\":\"liquidate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"dYdX * Contract for liquidating other accounts in DolomiteMargin.\",\"methods\":{\"liquidate((address,uint256),(address,uint256),(uint256),uint256,uint256[],uint256[])\":{\"params\":{\"heldPreferences\":\"Ordered list of markets to receive payout for first\",\"liquidAccount\":\"The account that will be liquidated\",\"minLiquidatorRatio\":\"The minimum collateralization ratio to leave the solidAccount at\",\"owedPreferences\":\"Ordered list of markets to repay first\",\"solidAccount\":\"The account that will do the liquidating\"}}},\"title\":\"LiquidatorProxyV1\"},\"userdoc\":{\"methods\":{\"liquidate((address,uint256),(address,uint256),(uint256),uint256,uint256[],uint256[])\":{\"notice\":\"Liquidate liquidAccount using solidAccount. This contract and the msg.sender to this contract must both be operators for the solidAccount.\"}}}},\"settings\":{\"compilationTarget\":{\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/proxies/LiquidatorProxyV1.sol\":\"LiquidatorProxyV1\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/helpers/LiquidatorProxyHelper.sol\":{\"keccak256\":\"0x87d4f290fa884c943dafbbc3457449f5d6de153e1ff5891762ae4313949fc371\",\"urls\":[\"bzz-raw://a996eaaf35b7ba5e4d5ff543e1af89fdb5a0e095fe593f3cfff6232c48fabb15\",\"dweb:/ipfs/QmZaZoJWVYFMtVd5rjXP7wXYJxPjfDGftMbriG2Nzwdfoy\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/helpers/OnlyDolomiteMargin.sol\":{\"keccak256\":\"0xfc9ce2f5a274ec66668c133f09fe213bc1a6a739f9147f4357a3493094de8deb\",\"urls\":[\"bzz-raw://e45442587f111fa0d85dd85a4e07993f5fecd1afce4f457ed21441f8b0abb937\",\"dweb:/ipfs/QmaNq3j3PUwb8Wrx2gEmFFsVa2GByDEkDCPGdwo2qvMeKh\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/proxies/LiquidatorProxyV1.sol\":{\"keccak256\":\"0xf3b183696b5fad1180d524565e5fdb989d2db4c42561bfa07c4ad7dd7fea8421\",\"urls\":[\"bzz-raw://53affad6e9f15990fb78e0090f83abfab685865be2955a98df7bc62634875b7a\",\"dweb:/ipfs/Qmduds4MEvxBuH4xAZfiPsQjXWpKWG5D3VjNLdLd6kRuTT\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IDolomiteMargin.sol\":{\"keccak256\":\"0x1e73364879c267fdd2bfd871e62ee58ee3d65fbef3b71e3cc104fbff499eca6c\",\"urls\":[\"bzz-raw://e3b1327980a5949afd52cff4713f47ee4fdee9a8b376ceaa3402f5c9696b8c1b\",\"dweb:/ipfs/QmbhQzVEdaraPJizT5DTtk6CDzH3guHNipHW5T23uTtFkX\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IERC20Detailed.sol\":{\"keccak256\":\"0x22a62e2a8155e70300773721902f4b9118e17aa0bb5d9d1b046050a014cfb223\",\"urls\":[\"bzz-raw://03af737a33c552fbe58f6f1fbd5496854fdc28dd57be4365d56663725c083a18\",\"dweb:/ipfs/QmbgLqGAQEd6tXsZB8QaPNCAMiU6nNzP75wNbKdS65BuUF\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IInterestSetter.sol\":{\"keccak256\":\"0x546825f65490a30e29d0f6446acec49c1e895ce6b33d48ca5c05092725a63a57\",\"urls\":[\"bzz-raw://6ad3013aed985bdf6e6234ae0f7f37e6bba76c3470c33bfa24678cf19b3b412c\",\"dweb:/ipfs/QmfYaSBzxGpgiHoR7ontMJY66S5L26XwkLYoEuzsEjpbQH\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IPriceOracle.sol\":{\"keccak256\":\"0x3f7c3d1397390ea44c6d5e5730d49476431c3df3b28334fe38218de5edc31138\",\"urls\":[\"bzz-raw://63ebf926fca9ce33aaabaf93805686acc25daded1648d6dab59c8c4d05116918\",\"dweb:/ipfs/QmeGkDp7ycYstpfqCYBiqoCYwy876gabx8r42o5koj3H5A\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Account.sol\":{\"keccak256\":\"0x0ab9a3fabc89984dff748af63d4319ee134051de2d7fc560e34ebaac86198396\",\"urls\":[\"bzz-raw://ab67f499a8ef83dc7e7cf7176a0f66eced40fa228eda8dd2d47e066ab985cf42\",\"dweb:/ipfs/QmXRHbsEYxr2Qsfsj5psXGV5LaPZHuzLiEXzSQJ77WSE27\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Actions.sol\":{\"keccak256\":\"0x44ec62b766a88a2f65267991e76cab88711e733b826dc9e578cb6ad6b38b2445\",\"urls\":[\"bzz-raw://731a8d44e57c9dcd7fbdefc37a6b5889c0d06defb3bd66b921b2a7db0edf0103\",\"dweb:/ipfs/QmcVbXc9oi5DMxjPtsBF76oJzD6zVjm7RuXgJfP3Goqrrb\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Bits.sol\":{\"keccak256\":\"0x425bf5764368faca16cc30a64b79d9bbe01fd8150444b58a464971c32450bd85\",\"urls\":[\"bzz-raw://064baf3155da634c5c80cea70bba0dda7a33af934b34f75f596961b4ab9aeafe\",\"dweb:/ipfs/QmTUHXoi9L6CkERyfhFs1jhxU66u2sbc6XRR5cH4TeHEqL\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Cache.sol\":{\"keccak256\":\"0x1e6ff383f285e311d07374edda353e14ac4f29201726b0062a2f046c1a2b482c\",\"urls\":[\"bzz-raw://fd11c5db01039bf2c95f3561b08d271b80b7b1cb9fd7f75da887f7609807c5a7\",\"dweb:/ipfs/QmcY6CugdEHaYUa8ZKSnUDhvtVuoLfpDscZcmC91koAn1t\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Decimal.sol\":{\"keccak256\":\"0x66990bbe3c58d0edf57d3f67ab5280e2a53958ce44f75c335c4c50542321bccb\",\"urls\":[\"bzz-raw://724cfdb5c99121aab5262679e46766a2883e344749870d7dbfa92d1617f68bf2\",\"dweb:/ipfs/QmYjAsS45f6UG2u3zuTks2HVfMYtyFCVMgUvD7Gt7XtU3R\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/EnumerableSet.sol\":{\"keccak256\":\"0x9710b0ab43cc2d964d8722a0aabbedbf7e9d4756dcc0b4ab7c46c1ee68653042\",\"urls\":[\"bzz-raw://2405593d37f0f224bfca556f01634a9755bb0ed626f74dd15293106a8b4dd7d3\",\"dweb:/ipfs/QmTZ16S336jsoDnK5p3vAZRzimBkmdEJibncHVBJxBt469\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Interest.sol\":{\"keccak256\":\"0x73e75454568c5dfc3bdcf7dbf2ddce6ab8d3d317618bc1f1957f7667e15d3799\",\"urls\":[\"bzz-raw://7b1c8a9a79c8ffdbb0fa633f713ae3dfeac93b31d2b1639614ac32d473fb8250\",\"dweb:/ipfs/QmfARP93W2mgeVwD9Lkd3yVmbCLF2Mos7o8HJ1x6WYQmxZ\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Math.sol\":{\"keccak256\":\"0x0c0c913b6ccdb69063f9ec84879fcad20a1ee6f44402c9f5ec2b4f5b9f2fa16b\",\"urls\":[\"bzz-raw://89b32eefb57e5e63ad8c6e079ae7bf2d2c8622776cd45af0cf304e1cafd6e078\",\"dweb:/ipfs/Qmcj7yRnYuTgKC3ZqZqe8rynHGYVDS3UrFExcVGcqeaDHY\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Monetary.sol\":{\"keccak256\":\"0x5257274f2d4d3605f3e97ec45fb902111fe9a22506f0b4cf308ea933bc81bfe2\",\"urls\":[\"bzz-raw://85b8023b78805063a2ec8d376f1f5983994eabd96efd8ceadb0224dbb71c5678\",\"dweb:/ipfs/QmaDhzCzRqsuHuJfhToEC4pATQHwhh7yWWsjwfuRzFT1kG\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Require.sol\":{\"keccak256\":\"0xe641662503ea29ca959e84674188c3e9deaaf64c5623fb9560a4301c521ca1d3\",\"urls\":[\"bzz-raw://b10a04c7d014b99eb792c8c774e203c846d070b30cf0b715325fc07838ed6a6d\",\"dweb:/ipfs/QmUqZWnbchfEY9jM647yQamHe4GzspfUeRQF9k2nn1Hixd\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Storage.sol\":{\"keccak256\":\"0xf930fbde3ab43ec8f079dbad062453b502542f53b7eec670c8e86c7a2e47dd9a\",\"urls\":[\"bzz-raw://e1c402fc55471e8372be478e99f91c28373f096e31f0ef1d5072dfdb81541c29\",\"dweb:/ipfs/QmTc8WSfFCbxNQqNpq1vptUVFxteKQ8HWEhyXREyPZ2neu\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Time.sol\":{\"keccak256\":\"0x233d6ebf965711bf980f4bb2e672fb1a11b4b879fd41c884b3c2b704417d0d0c\",\"urls\":[\"bzz-raw://6478ff81706d531f9438b96274a7b904abbbd9c631540c68c6a89c3accf27abf\",\"dweb:/ipfs/QmWe9vkz3qwVjrcbmcTL8wgkjLPsrEqxcqPJL9ujM8PPbp\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Token.sol\":{\"keccak256\":\"0xd7bcae9e3c570544fc946a00cc7695106a64c20bc130d0183612c0410a531d19\",\"urls\":[\"bzz-raw://0ff5ffd6abb9ed223a64128c131afd962bec07fb9867cb62593906b339c76920\",\"dweb:/ipfs/QmbTrJL4bekvBqqaw6wXnBhYzS9uAqULSWF2VzW4cdfsM5\"]},\"/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Types.sol\":{\"keccak256\":\"0xab134538648a2e223a7fe61db03c14f687657a5d37147f93c9088f11735aa311\",\"urls\":[\"bzz-raw://79dc7d2b30576d2349b99267642ac8d5fb7939c920b8d8045379d3614238bdc3\",\"dweb:/ipfs/QmaQJYg1nirHoWSC6G38Cjsk9pZBzEaNrGXKqTsvAzbyES\"]},\"@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/ReentrancyGuard.sol\":{\"keccak256\":\"0xb63221b23818d622bfd83d18e0968307e4fcb7a35536bdceded76e1cf8349acd\",\"urls\":[\"bzz-raw://44e1e8c22362c4708a8c3362735f1465f5b05e2f7315e16c7010d694ce019d73\",\"dweb:/ipfs/QmWj9g8X1hxkXRre2kwkEjLBetjuzmSbWHD81bsSojnBkS\"]}},\"version\":1}",
|
|
104
|
+
"bytecode": "0x60806040523480156200001157600080fd5b50604051620036cc380380620036cc83398101604081905262000034916200007b565b6000805460ff60a01b196001600160a01b039093166001600160a01b03199091161791909116600160a01b179055620000d0565b80516200007581620000b6565b92915050565b6000602082840312156200008e57600080fd5b60006200009c848462000068565b949350505050565b60006001600160a01b03821662000075565b620000c181620000a4565b8114620000cd57600080fd5b50565b6135ec80620000e06000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806315c14a4a1461003b578063c29a4b7114610059575b600080fd5b61004361006e565b6040516100509190613324565b60405180910390f35b61006c610067366004612ce1565b61008a565b005b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005474010000000000000000000000000000000000000000900460ff166100e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100de90613373565b60405180910390fd5b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690556101176127e3565b60005473ffffffffffffffffffffffffffffffffffffffff1680825260208201889052604080830188905260608301879052517f98d4611b0000000000000000000000000000000000000000000000000000000081526398d4611b90610181908990600401613383565b60006040518083038186803b15801561019957600080fd5b505afa1580156101ad573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101d59190810190612c34565b60a082015280516040517f98d4611b000000000000000000000000000000000000000000000000000000008152610291919073ffffffffffffffffffffffffffffffffffffffff8216906398d4611b90610233908c90600401613383565b60006040518083038186803b15801561024b57600080fd5b505afa15801561025f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102879190810190612c34565b8360a001516105f3565b608082015261029f81610930565b6000805b84518110156105595760008582815181106102ba57fe5b6020026020010151905060008090505b855181101561054f5760008682815181106102e157fe5b60200260200101519050828114156102f95750610547565b85516040517f47d1b53c0000000000000000000000000000000000000000000000000000000081526103a69173ffffffffffffffffffffffffffffffffffffffff16906347d1b53c90610352908f908890600401613391565b604080518083038186803b15801561036957600080fd5b505afa15801561037d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103a19190810190612d99565b610c7a565b6103b0575061054f565b85516040517f47d1b53c00000000000000000000000000000000000000000000000000000000815261045d9173ffffffffffffffffffffffffffffffffffffffff16906347d1b53c90610409908f908690600401613391565b604080518083038186803b15801561042057600080fd5b505afa158015610434573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506104589190810190612d99565b610caa565b6104675750610547565b61046f612841565b61047a878386610cd2565b90506104858161104b565b61048f87826111d6565b805161049c575050610547565b865173ffffffffffffffffffffffffffffffffffffffff1663a67a6a456104c2896112f4565b6104cb8461136a565b6040518363ffffffff1660e01b81526004016104e89291906132ff565b600060405180830381600087803b15801561050257600080fd5b505af1158015610516573d6000803e3d6000fd5b505050610120820151825161054292506105359163ffffffff61142316565b879063ffffffff61148016565b955050505b6001016102ca565b50506001016102a3565b506105aa858210157f4c697175696461746f7250726f787956310000000000000000000000000000007f4e6f7420656e6f756768206c6971756964617461626c652076616c756500000084896114bf565b5050600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055505050505050565b60608061067c8573ffffffffffffffffffffffffffffffffffffffff1663295c39a56040518163ffffffff1660e01b815260040160206040518083038186803b15801561063f57600080fd5b505afa158015610653573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106779190810190612db7565b6115c3565b9050600061068b8583836115fd565b90506106988483836115fd565b905060008090506060826040519080825280602002602001820160405280156106db57816020015b6106c86128ad565b8152602001906001900390816106c05790505b50905060005b84518110156109225760008582815181106106f857fe5b602002602001015190505b801561090b57600061071482611660565b905060006107228483611819565b905060405180608001604052808281526020018d73ffffffffffffffffffffffffffffffffffffffff16631a7777bb846040518263ffffffff1660e01b815260040161076e91906133ac565b60206040518083038186803b15801561078657600080fd5b505afa15801561079a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107be9190810190612ca5565b81526020018d73ffffffffffffffffffffffffffffffffffffffff16638928378e846040518263ffffffff1660e01b81526004016107fc91906133ac565b60206040518083038186803b15801561081457600080fd5b505afa158015610828573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061084c9190810190612ca5565b81526020018d73ffffffffffffffffffffffffffffffffffffffff166356ea84b2846040518263ffffffff1660e01b815260040161088a91906133ac565b60606040518083038186803b1580156108a257600080fd5b505afa1580156108b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108da9190810190612cc3565b905285516001880197879181106108ed57fe5b60200260200101819052506109028383611824565b92505050610703565b848414156109195750610922565b506001016106e1565b5093505050505b9392505050565b602081015151610a539073ffffffffffffffffffffffffffffffffffffffff16331480610a03575081516020830151516040517f3a031bf000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90921691633a031bf0916109b39133906004016132e4565b60206040518083038186803b1580156109cb57600080fd5b505afa1580156109df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a039190810190612c69565b7f4c697175696461746f7250726f787956310000000000000000000000000000007f53656e646572206e6f74206f70657261746f720000000000000000000000000084602001516000015161182d565b610a5b6128e6565b610a636128e6565b610a7f8360000151846080015185604001518660a001516118c5565b81519193509150610ad39015157f4c697175696461746f7250726f787956310000000000000000000000000000007f4c6971756964206163636f756e74206e6f20737570706c7900000000000000006118f0565b610c756001845160408087015190517fe51bfcb400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9092169163e51bfcb491610b3091600401613383565b60206040518083038186803b158015610b4857600080fd5b505afa158015610b5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b809190810190612c87565b6002811115610b8b57fe5b1480610c285750610c2683600001518360000151866000015173ffffffffffffffffffffffffffffffffffffffff16634f3c15426040518163ffffffff1660e01b815260040160206040518083038186803b158015610be957600080fd5b505afa158015610bfd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c219190810190612ca5565b61193a565b155b835183517f4c697175696461746f7250726f78795631000000000000000000000000000000917f4c6971756964206163636f756e74206e6f74206c6971756964617461626c6500916114bf565b505050565b8051600090158015610ca25750600082602001516fffffffffffffffffffffffffffffffff16115b90505b919050565b80516000908015610ca2575050602001516fffffffffffffffffffffffffffffffff16151590565b610cda612841565b610ce26128e6565b610cea6128e6565b8551608087015160208801516040517f98d4611b000000000000000000000000000000000000000000000000000000008152610da89392919073ffffffffffffffffffffffffffffffffffffffff8416906398d4611b90610d4f908490600401613383565b60006040518083038186803b158015610d6757600080fd5b505afa158015610d7b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610da39190810190612c34565b611965565b91509150610db46128ad565b610dc2876080015187611983565b9050610dcc6128ad565b610dda886080015187611983565b60408084015151908201515191925090610df26128e6565b8a516040517fd24c48bc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063d24c48bc90610e49908d908d906004016133ba565b60206040518083038186803b158015610e6157600080fd5b505afa158015610e75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610e999190810190612ca5565b905060405180610160016040528060008152602001610f4d8d6000015173ffffffffffffffffffffffffffffffffffffffff166347d1b53c8f602001518f6040518363ffffffff1660e01b8152600401610ef4929190613391565b604080518083038186803b158015610f0b57600080fd5b505afa158015610f1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f439190810190612d99565b8860600151611999565b8152602001610ff18d6000015173ffffffffffffffffffffffffffffffffffffffff166347d1b53c8f602001518e6040518363ffffffff1660e01b8152600401610f98929190613391565b604080518083038186803b158015610faf57600080fd5b505afa158015610fc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610fe79190810190612d99565b8760600151611999565b815260200188600001518152602001876000015181526020018281526020018b81526020018a815260200184815260200183815260200161103a8461103585611a4a565b611a81565b90529b9a5050505050505050505050565b600061105a8260400151611a9a565b159050600061106c8360200151611ab0565b1590508180156110795750805b156110855750506111d3565b60008215611095575060006110e2565b81156110a3575060016110e2565b61010084015160208086015101516110c09163ffffffff61142316565b6101408501516040860151602001516110de9163ffffffff61142316565b1190505b801561115e576110f06128f9565b6040805180820182529086018051511515825261014087015161010088015191516020908101519084019261112b929063ffffffff611ac716565b81525090506111588561114b838860200151611af190919063ffffffff16565b611153611b83565b611ba3565b506111cf565b6111666128f9565b6040518060400160405280866020015160000151151581526020016111a8876101000151886101400151896020015160200151611ac79092919063ffffffff16565b905290506111cd856111b8611b83565b6040880151611153908563ffffffff611af116565b505b5050505b50565b6111e38160200151611ab0565b156111ea57fe5b6111f78160400151611a9a565b156111fe57fe5b600061121782606001518360800151856060015161193a565b9050806112285750600081526112f0565b600061123c83608001518560600151611a81565b9050600061125782856080015161148090919063ffffffff16565b90506000611272828660600151611e6e90919063ffffffff16565b905061127c6128e6565b604080516020810190915260a08701515160608901515182916112a5919063ffffffff611e6e16565b9052905060006112b58383611eb0565b905060006112d188610120015183611ec990919063ffffffff16565b88519091506112e6908263ffffffff61148016565b8852505050505050505b5050565b6040805160028082526060828101909352829190816020015b6113156128f9565b81526020019060019003908161130d57905050905082602001518160008151811061133c57fe5b602002602001018190525082604001518160018151811061135957fe5b602090810291909101015292915050565b604080516001808252818301909252606091829190816020015b61138c612910565b8152602001906001900390816113845750506040805161010081018252600681526000602080830182905283516080810185526001815294955091939284019291820190815260006020808301829052885160409384015292845260e08801518484015260c0880151848301526060840181905260016080850152815181815292830190915260a090920152825183919061135957fe5b6000826114325750600061147a565b8282028284828161143f57fe5b0414611477576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100de90613353565b90505b92915050565b600082820183811015611477576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100de90613343565b846111cd576114cd84611f0b565b7f3a200000000000000000000000000000000000000000000000000000000000006114f785611f0b565b7f203c00000000000000000000000000000000000000000000000000000000000061152186611fc5565b7f2c2000000000000000000000000000000000000000000000000000000000000061154b87611fc5565b60405161158397969594939291907f3e0000000000000000000000000000000000000000000000000000000000000090602001613268565b60408051601f19818403018152908290527f08c379a00000000000000000000000000000000000000000000000000000000082526100de91600401613332565b606060016101008304016040519080825280602002602001820160405280156115f6578160200160208202803883390190505b5092915050565b6000805b8451811015611657576116278486838151811061161a57fe5b60200260200101516120d4565b61164f576116488486838151811061163b57fe5b6020026020010151612114565b6001830192505b600101611601565b50909392505050565b600060ff6fffffffffffffffffffffffffffffffff8316156116a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80016116ab565b608083901c92505b67ffffffffffffffff8316156116e2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0016116ea565b604083901c92505b63ffffffff8316156116ff57601f1901611707565b602083901c92505b61ffff831615611738577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001611740565b601083901c92505b60ff831615611770577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff801611778565b600883901c92505b600f8316156117a8577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc016117b0565b600483901c92505b60038316156117e0577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016117e8565b600283901c92505b6001831615610ca2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b610100919091020190565b6001901b900390565b836111cf5761183b83611f0b565b7f3a2000000000000000000000000000000000000000000000000000000000000061186584611f0b565b7f203c00000000000000000000000000000000000000000000000000000000000061188f8561214a565b6040516115839594939291907f3e000000000000000000000000000000000000000000000000000000000000009060200161320a565b6118cd6128e6565b6118d56128e6565b6118e38686868660016122c1565b9150915094509492505050565b82610c75576118fe82611f0b565b7f3a2000000000000000000000000000000000000000000000000000000000000061192883611f0b565b604051602001611583939291906131e2565b6000806119478484611a81565b9050611959848263ffffffff61148016565b90941015949350505050565b61196d6128e6565b6119756128e6565b6118e38686868660006122c1565b61198b6128ad565b611477836000855185612493565b6119a16128f9565b602083015183516fffffffffffffffffffffffffffffffff9091169015611a0d57604080518082019091526001815260208481015190820190611a029084906bffffffffffffffffffffffff16670de0b6b3a764000063ffffffff61258016565b81525091505061147a565b604080518082019091526000815283516020820190611a029084906bffffffffffffffffffffffff16670de0b6b3a764000063ffffffff61258016565b611a526128e6565b604080516020810190915282518190611a7990670de0b6b3a764000063ffffffff61148016565b905292915050565b6000611477838360000151670de0b6b3a7640000611ac7565b80516000908015610ca257505060200151151590565b8051600090158015610ca257505060200151151590565b6000611ae982611add868663ffffffff61142316565b9063ffffffff611ec916565b949350505050565b611af96128f9565b611b016128f9565b8251845115159015151415611b345783511515815260208085015190840151611b2a9190611480565b6020820152611477565b8260200151846020015110611b5d5783511515815260208085015190840151611b2a9190611e6e565b82511515815260208084015190850151611b779190611e6e565b60208201529392505050565b611b8b6128f9565b50604080518082019091526000808252602082015290565b6000611bc584610100015185602001516020015161142390919063ffffffff16565b60208501515190915015611c275760408051808201909152601281527f63616368652e68656c645765692e7369676e000000000000000000000000000060208201526060850151611c1d91839063ffffffff61261d16565b6060850152611c77565b60408051808201909152601381527f2163616368652e68656c645765692e7369676e0000000000000000000000000060208201526080850151611c7191839063ffffffff61261d16565b60808501525b6000611c95856101000151856020015161142390919063ffffffff16565b845190915015611cbe576060850151611cb4908263ffffffff61148016565b6060860152611cd9565b6080850151611cd3908263ffffffff61148016565b60808601525b6000611cfb86610120015187604001516020015161142390919063ffffffff16565b60408701515190915015611d5d5760408051808201909152601281527f63616368652e6f7765645765692e7369676e000000000000000000000000000060208201526060870151611d5391839063ffffffff61261d16565b6060870152611dad565b60408051808201909152601381527f2163616368652e6f7765645765692e7369676e0000000000000000000000000060208201526080870151611da791839063ffffffff61261d16565b60808701525b6000611dcb876101200151866020015161142390919063ffffffff16565b855190915015611df4576060870151611dea908263ffffffff61148016565b6060880152611e0f565b6080870151611e09908263ffffffff61148016565b60808801525b611e176128f9565b6040880151611e2c908763ffffffff61266316565b9050611e3781611ab0565b15611e3e57fe5b60208101518851611e549163ffffffff61148016565b885250505050602084019290925260409092019190915250565b600061147783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061261d565b600061147783670de0b6b3a76400008460000151611ac7565b600061147783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061267d565b60608082604051602001611f1f91906131cd565b60408051601f19818403018152919052905060205b8015611faa5781517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90910190829082908110611f6d57fe5b01602001517fff000000000000000000000000000000000000000000000000000000000000001615611fa55760010181529050610ca5565b611f34565b5060408051600080825260208201909252905b509392505050565b606081612006575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610ca5565b8160005b811561201e57600101600a8204915061200a565b6060816040519080825280601f01601f19166020018201604052801561204b576020820181803883390190505b508593509050815b80156120cb577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01600a840660300160f81b82828151811061209157fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350612053565b50949350505050565b600080610100830490506000610100840690506000816001901b8684815181106120fa57fe5b602002602001015116905060008111935050505092915050565b815161010082049060ff8316906001821b9085908490811061213257fe5b60200260200101818151179150818152505050505050565b60408051602a808252606082810190935273ffffffffffffffffffffffffffffffffffffffff8416918391602082018180388339019050509050603060f81b8160008151811061219657fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350607860f81b816001815181106121d757fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060005b6014811015611fbd5760028102612222600f85166126ce565b83826029038151811061223157fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600484901c9350612273600f85166126ce565b83826028038151811061228257fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505060049290921c91600101612209565b6122c96128e6565b6122d16128e6565b6122d96128e6565b6122e16128e6565b60005b8651811015612484576122f56128f9565b8a73ffffffffffffffffffffffffffffffffffffffff166347d1b53c8a8a858151811061231e57fe5b60200260200101516040518363ffffffff1660e01b8152600401612343929190613391565b604080518083038186803b15801561235a57600080fd5b505afa15801561236e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506123929190810190612d99565b905061239d816126f0565b156123a8575061247c565b6123b06128ad565b6123cd8b8a85815181106123c057fe5b6020026020010151611983565b90506123d76128f9565b6123e5838360600151611999565b60408301515160208201519192506000916124059163ffffffff61142316565b905061240f6128e6565b61241761270a565b90508a1561242f5761242c8460200151611a4a565b90505b825115612458576124516124438383611eb0565b89519063ffffffff61148016565b8852612476565b6124736124658383611a81565b88519063ffffffff61148016565b87525b50505050505b6001016122e4565b50909890975095505050505050565b61249b6128ad565b8383038015806124cd57508060011480156124cd5750828686815181106124be57fe5b60200260200101516000015114155b15612504576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100de90613363565b60006002820486019050600087828151811061251c57fe5b6020026020010151600001519050808510156125485761253e88888488612493565b9350505050611ae9565b8085111561255f5761253e88836001018888612493565b87828151811061256b57fe5b60200260200101519350505050949350505050565b600083158061258d575082155b156125a45761259d600083611ec9565b9050610929565b60006125b6858563ffffffff61142316565b90506126146125e160016125d56002611add888463ffffffff611e6e16565b9063ffffffff61148016565b6125f1838663ffffffff61272c16565b10156125fe576000612601565b60015b60ff166125d5838663ffffffff611ec916565b95945050505050565b6000818484111561265b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100de9190613332565b505050900390565b61266b6128f9565b611477836126788461276e565b611af1565b600081836126b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100de9190613332565b5060008385816126c457fe5b0495945050505050565b6000600a8210156126e657506030810160f81b610ca5565b5060570160f81b90565b602001516fffffffffffffffffffffffffffffffff161590565b6127126128e6565b506040805160208101909152670de0b6b3a7640000815290565b600061147783836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250612795565b6127766128f9565b5060408051808201909152815115815260208083015190820152919050565b600081836127d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100de9190613332565b508284816127da57fe5b06949350505050565b6040518060c00160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016128136128f9565b81526020016128206128f9565b815260200161282d6128e6565b815260200160608152602001606081525090565b6040518061016001604052806000815260200161285c6128f9565b81526020016128696128f9565b815260200160008152602001600081526020016128846128e6565b815260200160008152602001600081526020016000815260200160008152602001600081525090565b6040518060800160405280600081526020016128c76128e6565b81526020016128d46128e6565b81526020016128e161296f565b905290565b6040518060200160405280600081525090565b604080518082019091526000808252602082015290565b60408051610100810182526000808252602082015290810161293061298f565b81526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001606081525090565b604080516060810182526000808252602082018190529181019190915290565b604080516080810190915260008082526020820190815260200160008152602001600081525090565b803561147a8161355b565b600082601f8301126129d457600080fd5b81356129e76129e2826133fc565b6133d5565b91508181835260208401935060208101905083856020840282011115612a0c57600080fd5b60005b83811015612a385781612a228882612c08565b8452506020928301929190910190600101612a0f565b5050505092915050565b600082601f830112612a5357600080fd5b8151612a616129e2826133fc565b91508181835260208401935060208101905083856020840282011115612a8657600080fd5b60005b83811015612a385781612a9c8882612c13565b8452506020928301929190910190600101612a89565b805161147a8161356f565b805161147a81613578565b600060208284031215612ada57600080fd5b612ae460206133d5565b90506000612af28484612c08565b82525092915050565b600060208284031215612b0d57600080fd5b612b1760206133d5565b90506000612af28484612c13565b600060608284031215612b3757600080fd5b612b4160606133d5565b90506000612b4f8484612c29565b8252506020612b6084848301612c29565b6020830152506040612b7484828501612c1e565b60408301525092915050565b600060408284031215612b9257600080fd5b612b9c60406133d5565b90506000612baa84846129b8565b8252506020612bbb84848301612c08565b60208301525092915050565b600060408284031215612bd957600080fd5b612be360406133d5565b90506000612bf18484612ab2565b8252506020612bbb84848301805161147a81613585565b803561147a8161358e565b805161147a8161358e565b805161147a81613597565b805161147a816135a0565b600060208284031215612c4657600080fd5b815167ffffffffffffffff811115612c5d57600080fd5b611ae984828501612a42565b600060208284031215612c7b57600080fd5b6000611ae98484612ab2565b600060208284031215612c9957600080fd5b6000611ae98484612abd565b600060208284031215612cb757600080fd5b6000611ae98484612afb565b600060608284031215612cd557600080fd5b6000611ae98484612b25565b6000806000806000806101008789031215612cfb57600080fd5b6000612d078989612b80565b9650506040612d1889828a01612b80565b9550506080612d2989828a01612ac8565b94505060a0612d3a89828a01612c08565b93505060c087013567ffffffffffffffff811115612d5757600080fd5b612d6389828a016129c3565b92505060e087013567ffffffffffffffff811115612d8057600080fd5b612d8c89828a016129c3565b9150509295509295509295565b600060408284031215612dab57600080fd5b6000611ae98484612bc7565b600060208284031215612dc957600080fd5b6000611ae98484612c13565b600061147783836130b8565b6000612ded83836131a4565b505060400190565b612dfe816134e9565b82525050565b612dfe81613430565b6000612e1882613423565b612e228185613427565b935083602082028501612e348561341d565b8060005b85811015612e6e5784840389528151612e518582612dd5565b9450612e5c8361341d565b60209a909a0199925050600101612e38565b5091979650505050505050565b6000612e8682613423565b612e908185613427565b9350612e9b8361341d565b8060005b83811015612ec9578151612eb38882612de1565b9750612ebe8361341d565b925050600101612e9f565b509495945050505050565b612dfe8161343b565b612dfe612ee982613440565b61348a565b612dfe612ee982613465565b612dfe612ee98261348a565b6000612f1182613423565b612f1b8185610ca5565b9350612f2b818560208601613511565b9290920192915050565b6000612f4082613423565b612f4a8185613427565b9350612f5a818560208601613511565b612f638161353d565b9093019392505050565b612dfe816134f0565b612dfe816134fb565b612dfe81613506565b6000612f95601b83613427565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000612fce602183613427565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b600061302d602583613427565b7f4c697175696461746f7250726f787948656c7065723a206974656d206e6f742081527f666f756e64000000000000000000000000000000000000000000000000000000602082015260400192915050565b600061308c601f83613427565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00815260200192915050565b80516000906101608401906130cd8582612f76565b5060208301516130e060208601826131c4565b5060408301516130f3604086018261315a565b50606083015161310660c08601826131c4565b50608083015161311960e08601826131c4565b5060a083015161312d610100860182612e04565b5060c08301516131416101208601826131c4565b5060e08301518482036101408601526126148282612f35565b8051608083019061316b8482612ed4565b50602082015161317e6020850182612f7f565b5060408201516131916040850182612f7f565b5060608201516111cf60608501826131c4565b805160408301906131b58482612e04565b5060208201516111cf60208501825b612dfe8161348a565b60006131d98284612efa565b50602001919050565b60006131ee8286612f06565b91506131fa8285612eee565b6002820191506126148284612f06565b60006132168289612f06565b91506132228288612eee565b6002820191506132328287612f06565b915061323e8286612eee565b60028201915061324e8285612f06565b915061325a8284612edd565b506001019695505050505050565b6000613274828b612f06565b9150613280828a612eee565b6002820191506132908289612f06565b915061329c8288612eee565b6002820191506132ac8287612f06565b91506132b88286612eee565b6002820191506132c88285612f06565b91506132d48284612edd565b5060010198975050505050505050565b604081016132f28285612e04565b6109296020830184612df5565b604080825281016133108185612e7b565b90508181036020830152611ae98184612e0d565b6020810161147a8284612f6d565b602080825281016114778184612f35565b60208082528101610ca281612f88565b60208082528101610ca281612fc1565b60208082528101610ca281613020565b60208082528101610ca28161307f565b6040810161147a82846131a4565b6060810161339f82856131a4565b61092960408301846131c4565b6020810161147a82846131c4565b604081016133c882856131c4565b61092960208301846131c4565b60405181810167ffffffffffffffff811182821017156133f457600080fd5b604052919050565b600067ffffffffffffffff82111561341357600080fd5b5060209081020190565b60200190565b5190565b90815260200190565b6000610ca2826134b6565b151590565b7fff000000000000000000000000000000000000000000000000000000000000001690565b7fffff0000000000000000000000000000000000000000000000000000000000001690565b90565b80610ca581613547565b80610ca581613551565b6fffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1690565b63ffffffff1690565b6bffffffffffffffffffffffff1690565b6000610ca2825b6000610ca282613430565b6000610ca28261348d565b6000610ca282613497565b60005b8381101561352c578181015183820152602001613514565b838111156111cf5750506000910152565b601f01601f191690565b600981106111d357fe5b600281106111d357fe5b61356481613430565b81146111d357600080fd5b6135648161343b565b600381106111d357600080fd5b613564816134a1565b6135648161348a565b613564816134cf565b613564816134d856fea365627a7a72315820a232b288a6007c57d545803c9b04b8a9469026a53b39a7ccc4401e2e61747d5f6c6578706572696d656e74616cf564736f6c63430005100040",
|
|
105
|
+
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c806315c14a4a1461003b578063c29a4b7114610059575b600080fd5b61004361006e565b6040516100509190613324565b60405180910390f35b61006c610067366004612ce1565b61008a565b005b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005474010000000000000000000000000000000000000000900460ff166100e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100de90613373565b60405180910390fd5b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690556101176127e3565b60005473ffffffffffffffffffffffffffffffffffffffff1680825260208201889052604080830188905260608301879052517f98d4611b0000000000000000000000000000000000000000000000000000000081526398d4611b90610181908990600401613383565b60006040518083038186803b15801561019957600080fd5b505afa1580156101ad573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101d59190810190612c34565b60a082015280516040517f98d4611b000000000000000000000000000000000000000000000000000000008152610291919073ffffffffffffffffffffffffffffffffffffffff8216906398d4611b90610233908c90600401613383565b60006040518083038186803b15801561024b57600080fd5b505afa15801561025f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102879190810190612c34565b8360a001516105f3565b608082015261029f81610930565b6000805b84518110156105595760008582815181106102ba57fe5b6020026020010151905060008090505b855181101561054f5760008682815181106102e157fe5b60200260200101519050828114156102f95750610547565b85516040517f47d1b53c0000000000000000000000000000000000000000000000000000000081526103a69173ffffffffffffffffffffffffffffffffffffffff16906347d1b53c90610352908f908890600401613391565b604080518083038186803b15801561036957600080fd5b505afa15801561037d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103a19190810190612d99565b610c7a565b6103b0575061054f565b85516040517f47d1b53c00000000000000000000000000000000000000000000000000000000815261045d9173ffffffffffffffffffffffffffffffffffffffff16906347d1b53c90610409908f908690600401613391565b604080518083038186803b15801561042057600080fd5b505afa158015610434573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506104589190810190612d99565b610caa565b6104675750610547565b61046f612841565b61047a878386610cd2565b90506104858161104b565b61048f87826111d6565b805161049c575050610547565b865173ffffffffffffffffffffffffffffffffffffffff1663a67a6a456104c2896112f4565b6104cb8461136a565b6040518363ffffffff1660e01b81526004016104e89291906132ff565b600060405180830381600087803b15801561050257600080fd5b505af1158015610516573d6000803e3d6000fd5b505050610120820151825161054292506105359163ffffffff61142316565b879063ffffffff61148016565b955050505b6001016102ca565b50506001016102a3565b506105aa858210157f4c697175696461746f7250726f787956310000000000000000000000000000007f4e6f7420656e6f756768206c6971756964617461626c652076616c756500000084896114bf565b5050600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055505050505050565b60608061067c8573ffffffffffffffffffffffffffffffffffffffff1663295c39a56040518163ffffffff1660e01b815260040160206040518083038186803b15801561063f57600080fd5b505afa158015610653573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106779190810190612db7565b6115c3565b9050600061068b8583836115fd565b90506106988483836115fd565b905060008090506060826040519080825280602002602001820160405280156106db57816020015b6106c86128ad565b8152602001906001900390816106c05790505b50905060005b84518110156109225760008582815181106106f857fe5b602002602001015190505b801561090b57600061071482611660565b905060006107228483611819565b905060405180608001604052808281526020018d73ffffffffffffffffffffffffffffffffffffffff16631a7777bb846040518263ffffffff1660e01b815260040161076e91906133ac565b60206040518083038186803b15801561078657600080fd5b505afa15801561079a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107be9190810190612ca5565b81526020018d73ffffffffffffffffffffffffffffffffffffffff16638928378e846040518263ffffffff1660e01b81526004016107fc91906133ac565b60206040518083038186803b15801561081457600080fd5b505afa158015610828573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061084c9190810190612ca5565b81526020018d73ffffffffffffffffffffffffffffffffffffffff166356ea84b2846040518263ffffffff1660e01b815260040161088a91906133ac565b60606040518083038186803b1580156108a257600080fd5b505afa1580156108b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108da9190810190612cc3565b905285516001880197879181106108ed57fe5b60200260200101819052506109028383611824565b92505050610703565b848414156109195750610922565b506001016106e1565b5093505050505b9392505050565b602081015151610a539073ffffffffffffffffffffffffffffffffffffffff16331480610a03575081516020830151516040517f3a031bf000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90921691633a031bf0916109b39133906004016132e4565b60206040518083038186803b1580156109cb57600080fd5b505afa1580156109df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a039190810190612c69565b7f4c697175696461746f7250726f787956310000000000000000000000000000007f53656e646572206e6f74206f70657261746f720000000000000000000000000084602001516000015161182d565b610a5b6128e6565b610a636128e6565b610a7f8360000151846080015185604001518660a001516118c5565b81519193509150610ad39015157f4c697175696461746f7250726f787956310000000000000000000000000000007f4c6971756964206163636f756e74206e6f20737570706c7900000000000000006118f0565b610c756001845160408087015190517fe51bfcb400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9092169163e51bfcb491610b3091600401613383565b60206040518083038186803b158015610b4857600080fd5b505afa158015610b5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b809190810190612c87565b6002811115610b8b57fe5b1480610c285750610c2683600001518360000151866000015173ffffffffffffffffffffffffffffffffffffffff16634f3c15426040518163ffffffff1660e01b815260040160206040518083038186803b158015610be957600080fd5b505afa158015610bfd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c219190810190612ca5565b61193a565b155b835183517f4c697175696461746f7250726f78795631000000000000000000000000000000917f4c6971756964206163636f756e74206e6f74206c6971756964617461626c6500916114bf565b505050565b8051600090158015610ca25750600082602001516fffffffffffffffffffffffffffffffff16115b90505b919050565b80516000908015610ca2575050602001516fffffffffffffffffffffffffffffffff16151590565b610cda612841565b610ce26128e6565b610cea6128e6565b8551608087015160208801516040517f98d4611b000000000000000000000000000000000000000000000000000000008152610da89392919073ffffffffffffffffffffffffffffffffffffffff8416906398d4611b90610d4f908490600401613383565b60006040518083038186803b158015610d6757600080fd5b505afa158015610d7b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610da39190810190612c34565b611965565b91509150610db46128ad565b610dc2876080015187611983565b9050610dcc6128ad565b610dda886080015187611983565b60408084015151908201515191925090610df26128e6565b8a516040517fd24c48bc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063d24c48bc90610e49908d908d906004016133ba565b60206040518083038186803b158015610e6157600080fd5b505afa158015610e75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610e999190810190612ca5565b905060405180610160016040528060008152602001610f4d8d6000015173ffffffffffffffffffffffffffffffffffffffff166347d1b53c8f602001518f6040518363ffffffff1660e01b8152600401610ef4929190613391565b604080518083038186803b158015610f0b57600080fd5b505afa158015610f1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f439190810190612d99565b8860600151611999565b8152602001610ff18d6000015173ffffffffffffffffffffffffffffffffffffffff166347d1b53c8f602001518e6040518363ffffffff1660e01b8152600401610f98929190613391565b604080518083038186803b158015610faf57600080fd5b505afa158015610fc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610fe79190810190612d99565b8760600151611999565b815260200188600001518152602001876000015181526020018281526020018b81526020018a815260200184815260200183815260200161103a8461103585611a4a565b611a81565b90529b9a5050505050505050505050565b600061105a8260400151611a9a565b159050600061106c8360200151611ab0565b1590508180156110795750805b156110855750506111d3565b60008215611095575060006110e2565b81156110a3575060016110e2565b61010084015160208086015101516110c09163ffffffff61142316565b6101408501516040860151602001516110de9163ffffffff61142316565b1190505b801561115e576110f06128f9565b6040805180820182529086018051511515825261014087015161010088015191516020908101519084019261112b929063ffffffff611ac716565b81525090506111588561114b838860200151611af190919063ffffffff16565b611153611b83565b611ba3565b506111cf565b6111666128f9565b6040518060400160405280866020015160000151151581526020016111a8876101000151886101400151896020015160200151611ac79092919063ffffffff16565b905290506111cd856111b8611b83565b6040880151611153908563ffffffff611af116565b505b5050505b50565b6111e38160200151611ab0565b156111ea57fe5b6111f78160400151611a9a565b156111fe57fe5b600061121782606001518360800151856060015161193a565b9050806112285750600081526112f0565b600061123c83608001518560600151611a81565b9050600061125782856080015161148090919063ffffffff16565b90506000611272828660600151611e6e90919063ffffffff16565b905061127c6128e6565b604080516020810190915260a08701515160608901515182916112a5919063ffffffff611e6e16565b9052905060006112b58383611eb0565b905060006112d188610120015183611ec990919063ffffffff16565b88519091506112e6908263ffffffff61148016565b8852505050505050505b5050565b6040805160028082526060828101909352829190816020015b6113156128f9565b81526020019060019003908161130d57905050905082602001518160008151811061133c57fe5b602002602001018190525082604001518160018151811061135957fe5b602090810291909101015292915050565b604080516001808252818301909252606091829190816020015b61138c612910565b8152602001906001900390816113845750506040805161010081018252600681526000602080830182905283516080810185526001815294955091939284019291820190815260006020808301829052885160409384015292845260e08801518484015260c0880151848301526060840181905260016080850152815181815292830190915260a090920152825183919061135957fe5b6000826114325750600061147a565b8282028284828161143f57fe5b0414611477576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100de90613353565b90505b92915050565b600082820183811015611477576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100de90613343565b846111cd576114cd84611f0b565b7f3a200000000000000000000000000000000000000000000000000000000000006114f785611f0b565b7f203c00000000000000000000000000000000000000000000000000000000000061152186611fc5565b7f2c2000000000000000000000000000000000000000000000000000000000000061154b87611fc5565b60405161158397969594939291907f3e0000000000000000000000000000000000000000000000000000000000000090602001613268565b60408051601f19818403018152908290527f08c379a00000000000000000000000000000000000000000000000000000000082526100de91600401613332565b606060016101008304016040519080825280602002602001820160405280156115f6578160200160208202803883390190505b5092915050565b6000805b8451811015611657576116278486838151811061161a57fe5b60200260200101516120d4565b61164f576116488486838151811061163b57fe5b6020026020010151612114565b6001830192505b600101611601565b50909392505050565b600060ff6fffffffffffffffffffffffffffffffff8316156116a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80016116ab565b608083901c92505b67ffffffffffffffff8316156116e2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0016116ea565b604083901c92505b63ffffffff8316156116ff57601f1901611707565b602083901c92505b61ffff831615611738577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001611740565b601083901c92505b60ff831615611770577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff801611778565b600883901c92505b600f8316156117a8577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc016117b0565b600483901c92505b60038316156117e0577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016117e8565b600283901c92505b6001831615610ca2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b610100919091020190565b6001901b900390565b836111cf5761183b83611f0b565b7f3a2000000000000000000000000000000000000000000000000000000000000061186584611f0b565b7f203c00000000000000000000000000000000000000000000000000000000000061188f8561214a565b6040516115839594939291907f3e000000000000000000000000000000000000000000000000000000000000009060200161320a565b6118cd6128e6565b6118d56128e6565b6118e38686868660016122c1565b9150915094509492505050565b82610c75576118fe82611f0b565b7f3a2000000000000000000000000000000000000000000000000000000000000061192883611f0b565b604051602001611583939291906131e2565b6000806119478484611a81565b9050611959848263ffffffff61148016565b90941015949350505050565b61196d6128e6565b6119756128e6565b6118e38686868660006122c1565b61198b6128ad565b611477836000855185612493565b6119a16128f9565b602083015183516fffffffffffffffffffffffffffffffff9091169015611a0d57604080518082019091526001815260208481015190820190611a029084906bffffffffffffffffffffffff16670de0b6b3a764000063ffffffff61258016565b81525091505061147a565b604080518082019091526000815283516020820190611a029084906bffffffffffffffffffffffff16670de0b6b3a764000063ffffffff61258016565b611a526128e6565b604080516020810190915282518190611a7990670de0b6b3a764000063ffffffff61148016565b905292915050565b6000611477838360000151670de0b6b3a7640000611ac7565b80516000908015610ca257505060200151151590565b8051600090158015610ca257505060200151151590565b6000611ae982611add868663ffffffff61142316565b9063ffffffff611ec916565b949350505050565b611af96128f9565b611b016128f9565b8251845115159015151415611b345783511515815260208085015190840151611b2a9190611480565b6020820152611477565b8260200151846020015110611b5d5783511515815260208085015190840151611b2a9190611e6e565b82511515815260208084015190850151611b779190611e6e565b60208201529392505050565b611b8b6128f9565b50604080518082019091526000808252602082015290565b6000611bc584610100015185602001516020015161142390919063ffffffff16565b60208501515190915015611c275760408051808201909152601281527f63616368652e68656c645765692e7369676e000000000000000000000000000060208201526060850151611c1d91839063ffffffff61261d16565b6060850152611c77565b60408051808201909152601381527f2163616368652e68656c645765692e7369676e0000000000000000000000000060208201526080850151611c7191839063ffffffff61261d16565b60808501525b6000611c95856101000151856020015161142390919063ffffffff16565b845190915015611cbe576060850151611cb4908263ffffffff61148016565b6060860152611cd9565b6080850151611cd3908263ffffffff61148016565b60808601525b6000611cfb86610120015187604001516020015161142390919063ffffffff16565b60408701515190915015611d5d5760408051808201909152601281527f63616368652e6f7765645765692e7369676e000000000000000000000000000060208201526060870151611d5391839063ffffffff61261d16565b6060870152611dad565b60408051808201909152601381527f2163616368652e6f7765645765692e7369676e0000000000000000000000000060208201526080870151611da791839063ffffffff61261d16565b60808701525b6000611dcb876101200151866020015161142390919063ffffffff16565b855190915015611df4576060870151611dea908263ffffffff61148016565b6060880152611e0f565b6080870151611e09908263ffffffff61148016565b60808801525b611e176128f9565b6040880151611e2c908763ffffffff61266316565b9050611e3781611ab0565b15611e3e57fe5b60208101518851611e549163ffffffff61148016565b885250505050602084019290925260409092019190915250565b600061147783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061261d565b600061147783670de0b6b3a76400008460000151611ac7565b600061147783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061267d565b60608082604051602001611f1f91906131cd565b60408051601f19818403018152919052905060205b8015611faa5781517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90910190829082908110611f6d57fe5b01602001517fff000000000000000000000000000000000000000000000000000000000000001615611fa55760010181529050610ca5565b611f34565b5060408051600080825260208201909252905b509392505050565b606081612006575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610ca5565b8160005b811561201e57600101600a8204915061200a565b6060816040519080825280601f01601f19166020018201604052801561204b576020820181803883390190505b508593509050815b80156120cb577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01600a840660300160f81b82828151811061209157fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350612053565b50949350505050565b600080610100830490506000610100840690506000816001901b8684815181106120fa57fe5b602002602001015116905060008111935050505092915050565b815161010082049060ff8316906001821b9085908490811061213257fe5b60200260200101818151179150818152505050505050565b60408051602a808252606082810190935273ffffffffffffffffffffffffffffffffffffffff8416918391602082018180388339019050509050603060f81b8160008151811061219657fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350607860f81b816001815181106121d757fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060005b6014811015611fbd5760028102612222600f85166126ce565b83826029038151811061223157fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600484901c9350612273600f85166126ce565b83826028038151811061228257fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505060049290921c91600101612209565b6122c96128e6565b6122d16128e6565b6122d96128e6565b6122e16128e6565b60005b8651811015612484576122f56128f9565b8a73ffffffffffffffffffffffffffffffffffffffff166347d1b53c8a8a858151811061231e57fe5b60200260200101516040518363ffffffff1660e01b8152600401612343929190613391565b604080518083038186803b15801561235a57600080fd5b505afa15801561236e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506123929190810190612d99565b905061239d816126f0565b156123a8575061247c565b6123b06128ad565b6123cd8b8a85815181106123c057fe5b6020026020010151611983565b90506123d76128f9565b6123e5838360600151611999565b60408301515160208201519192506000916124059163ffffffff61142316565b905061240f6128e6565b61241761270a565b90508a1561242f5761242c8460200151611a4a565b90505b825115612458576124516124438383611eb0565b89519063ffffffff61148016565b8852612476565b6124736124658383611a81565b88519063ffffffff61148016565b87525b50505050505b6001016122e4565b50909890975095505050505050565b61249b6128ad565b8383038015806124cd57508060011480156124cd5750828686815181106124be57fe5b60200260200101516000015114155b15612504576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100de90613363565b60006002820486019050600087828151811061251c57fe5b6020026020010151600001519050808510156125485761253e88888488612493565b9350505050611ae9565b8085111561255f5761253e88836001018888612493565b87828151811061256b57fe5b60200260200101519350505050949350505050565b600083158061258d575082155b156125a45761259d600083611ec9565b9050610929565b60006125b6858563ffffffff61142316565b90506126146125e160016125d56002611add888463ffffffff611e6e16565b9063ffffffff61148016565b6125f1838663ffffffff61272c16565b10156125fe576000612601565b60015b60ff166125d5838663ffffffff611ec916565b95945050505050565b6000818484111561265b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100de9190613332565b505050900390565b61266b6128f9565b611477836126788461276e565b611af1565b600081836126b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100de9190613332565b5060008385816126c457fe5b0495945050505050565b6000600a8210156126e657506030810160f81b610ca5565b5060570160f81b90565b602001516fffffffffffffffffffffffffffffffff161590565b6127126128e6565b506040805160208101909152670de0b6b3a7640000815290565b600061147783836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250612795565b6127766128f9565b5060408051808201909152815115815260208083015190820152919050565b600081836127d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100de9190613332565b508284816127da57fe5b06949350505050565b6040518060c00160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016128136128f9565b81526020016128206128f9565b815260200161282d6128e6565b815260200160608152602001606081525090565b6040518061016001604052806000815260200161285c6128f9565b81526020016128696128f9565b815260200160008152602001600081526020016128846128e6565b815260200160008152602001600081526020016000815260200160008152602001600081525090565b6040518060800160405280600081526020016128c76128e6565b81526020016128d46128e6565b81526020016128e161296f565b905290565b6040518060200160405280600081525090565b604080518082019091526000808252602082015290565b60408051610100810182526000808252602082015290810161293061298f565b81526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001606081525090565b604080516060810182526000808252602082018190529181019190915290565b604080516080810190915260008082526020820190815260200160008152602001600081525090565b803561147a8161355b565b600082601f8301126129d457600080fd5b81356129e76129e2826133fc565b6133d5565b91508181835260208401935060208101905083856020840282011115612a0c57600080fd5b60005b83811015612a385781612a228882612c08565b8452506020928301929190910190600101612a0f565b5050505092915050565b600082601f830112612a5357600080fd5b8151612a616129e2826133fc565b91508181835260208401935060208101905083856020840282011115612a8657600080fd5b60005b83811015612a385781612a9c8882612c13565b8452506020928301929190910190600101612a89565b805161147a8161356f565b805161147a81613578565b600060208284031215612ada57600080fd5b612ae460206133d5565b90506000612af28484612c08565b82525092915050565b600060208284031215612b0d57600080fd5b612b1760206133d5565b90506000612af28484612c13565b600060608284031215612b3757600080fd5b612b4160606133d5565b90506000612b4f8484612c29565b8252506020612b6084848301612c29565b6020830152506040612b7484828501612c1e565b60408301525092915050565b600060408284031215612b9257600080fd5b612b9c60406133d5565b90506000612baa84846129b8565b8252506020612bbb84848301612c08565b60208301525092915050565b600060408284031215612bd957600080fd5b612be360406133d5565b90506000612bf18484612ab2565b8252506020612bbb84848301805161147a81613585565b803561147a8161358e565b805161147a8161358e565b805161147a81613597565b805161147a816135a0565b600060208284031215612c4657600080fd5b815167ffffffffffffffff811115612c5d57600080fd5b611ae984828501612a42565b600060208284031215612c7b57600080fd5b6000611ae98484612ab2565b600060208284031215612c9957600080fd5b6000611ae98484612abd565b600060208284031215612cb757600080fd5b6000611ae98484612afb565b600060608284031215612cd557600080fd5b6000611ae98484612b25565b6000806000806000806101008789031215612cfb57600080fd5b6000612d078989612b80565b9650506040612d1889828a01612b80565b9550506080612d2989828a01612ac8565b94505060a0612d3a89828a01612c08565b93505060c087013567ffffffffffffffff811115612d5757600080fd5b612d6389828a016129c3565b92505060e087013567ffffffffffffffff811115612d8057600080fd5b612d8c89828a016129c3565b9150509295509295509295565b600060408284031215612dab57600080fd5b6000611ae98484612bc7565b600060208284031215612dc957600080fd5b6000611ae98484612c13565b600061147783836130b8565b6000612ded83836131a4565b505060400190565b612dfe816134e9565b82525050565b612dfe81613430565b6000612e1882613423565b612e228185613427565b935083602082028501612e348561341d565b8060005b85811015612e6e5784840389528151612e518582612dd5565b9450612e5c8361341d565b60209a909a0199925050600101612e38565b5091979650505050505050565b6000612e8682613423565b612e908185613427565b9350612e9b8361341d565b8060005b83811015612ec9578151612eb38882612de1565b9750612ebe8361341d565b925050600101612e9f565b509495945050505050565b612dfe8161343b565b612dfe612ee982613440565b61348a565b612dfe612ee982613465565b612dfe612ee98261348a565b6000612f1182613423565b612f1b8185610ca5565b9350612f2b818560208601613511565b9290920192915050565b6000612f4082613423565b612f4a8185613427565b9350612f5a818560208601613511565b612f638161353d565b9093019392505050565b612dfe816134f0565b612dfe816134fb565b612dfe81613506565b6000612f95601b83613427565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000612fce602183613427565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b600061302d602583613427565b7f4c697175696461746f7250726f787948656c7065723a206974656d206e6f742081527f666f756e64000000000000000000000000000000000000000000000000000000602082015260400192915050565b600061308c601f83613427565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00815260200192915050565b80516000906101608401906130cd8582612f76565b5060208301516130e060208601826131c4565b5060408301516130f3604086018261315a565b50606083015161310660c08601826131c4565b50608083015161311960e08601826131c4565b5060a083015161312d610100860182612e04565b5060c08301516131416101208601826131c4565b5060e08301518482036101408601526126148282612f35565b8051608083019061316b8482612ed4565b50602082015161317e6020850182612f7f565b5060408201516131916040850182612f7f565b5060608201516111cf60608501826131c4565b805160408301906131b58482612e04565b5060208201516111cf60208501825b612dfe8161348a565b60006131d98284612efa565b50602001919050565b60006131ee8286612f06565b91506131fa8285612eee565b6002820191506126148284612f06565b60006132168289612f06565b91506132228288612eee565b6002820191506132328287612f06565b915061323e8286612eee565b60028201915061324e8285612f06565b915061325a8284612edd565b506001019695505050505050565b6000613274828b612f06565b9150613280828a612eee565b6002820191506132908289612f06565b915061329c8288612eee565b6002820191506132ac8287612f06565b91506132b88286612eee565b6002820191506132c88285612f06565b91506132d48284612edd565b5060010198975050505050505050565b604081016132f28285612e04565b6109296020830184612df5565b604080825281016133108185612e7b565b90508181036020830152611ae98184612e0d565b6020810161147a8284612f6d565b602080825281016114778184612f35565b60208082528101610ca281612f88565b60208082528101610ca281612fc1565b60208082528101610ca281613020565b60208082528101610ca28161307f565b6040810161147a82846131a4565b6060810161339f82856131a4565b61092960408301846131c4565b6020810161147a82846131c4565b604081016133c882856131c4565b61092960208301846131c4565b60405181810167ffffffffffffffff811182821017156133f457600080fd5b604052919050565b600067ffffffffffffffff82111561341357600080fd5b5060209081020190565b60200190565b5190565b90815260200190565b6000610ca2826134b6565b151590565b7fff000000000000000000000000000000000000000000000000000000000000001690565b7fffff0000000000000000000000000000000000000000000000000000000000001690565b90565b80610ca581613547565b80610ca581613551565b6fffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1690565b63ffffffff1690565b6bffffffffffffffffffffffff1690565b6000610ca2825b6000610ca282613430565b6000610ca28261348d565b6000610ca282613497565b60005b8381101561352c578181015183820152602001613514565b838111156111cf5750506000910152565b601f01601f191690565b600981106111d357fe5b600281106111d357fe5b61356481613430565b81146111d357600080fd5b6135648161343b565b600381106111d357600080fd5b613564816134a1565b6135648161348a565b613564816134cf565b613564816134d856fea365627a7a72315820a232b288a6007c57d545803c9b04b8a9469026a53b39a7ccc4401e2e61747d5f6c6578706572696d656e74616cf564736f6c63430005100040",
|
|
106
106
|
"sourceMap": "1626:16798:29:-;;;2663:115;8:9:-1;5:2;;;30:1;27;20:12;5:2;2663:115:29;;;;;;;;;;;;;;;;;;;;;1293:15:6;:49;;-1:-1:-1;;;;;;;;;1293:49:6;;;-1:-1:-1;;;;;;1293:49:6;;;;1421:18:129;;;;-1:-1:-1;;;1421:18:129;;;1626:16798:29;;5:134:-1;83:13;;101:33;83:13;101:33;;;68:71;;;;;146:263;;261:2;249:9;240:7;236:23;232:32;229:2;;;277:1;274;267:12;229:2;312:1;329:64;385:7;365:9;329:64;;;319:74;223:186;-1:-1;;;;223:186;416:91;;-1:-1;;;;;576:54;;478:24;559:76;642:117;711:24;729:5;711:24;;;704:5;701:35;691:2;;750:1;747;740:12;691:2;685:74;;;1626:16798:29;;;;;;",
|
|
107
107
|
"deployedSourceMap": "1626:16798:29:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1626:16798:29;;;;;;;;;;;;;;;;;;;;;;;;1122:38:6;;;:::i;:::-;;;;;;;;;;;;;;;;3462:3484:29;;;;;;;;;:::i;:::-;;1122:38:6;;;;;;:::o;3462:3484:29:-;1934:11:129;;;;;;;1926:55;;;;;;;;;;;;;;;;;;;;;;2070:5;2056:19;;;;;;3858:26:29;;:::i;:::-;3921:15;;;;3894:42;;;3946:22;;;:37;;;3993:23;;;;:39;;;4042:28;;;:49;;;4127:76;;;;:61;;:76;;4019:13;;4127:76;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4127:76:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4127:76:29;;;;;;39:16:-1;36:1;17:17;2:54;101:4;4127:76:29;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;4127:76:29;;;;;;;;;4101:23;;;:102;4261:24;;4299:75;;;;;4233:188;;4261:24;4299:61;;;;;;:75;;4361:12;;4299:75;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4299:75:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4299:75:29;;;;;;39:16:-1;36:1;17:17;2:54;101:4;4299:75:29;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;4299:75:29;;;;;;;;;4388:9;:23;;;4233:14;:188::i;:::-;4213:17;;;:208;4512:28;4213:9;4512:17;:28::i;:::-;4636;;4710:1915;4750:15;:22;4738:9;:34;4710:1915;;;4801:18;4822:15;4838:9;4822:26;;;;;;;;;;;;;;4801:47;;4903:17;4923:1;4903:21;;4898:1717;4938:15;:22;4926:9;:34;4898:1717;;;4993:18;5014:15;5030:9;5014:26;;;;;;;;;;;;;;4993:47;;5123:10;5109;:24;5105:79;;;5157:8;;;5105:79;5264:24;;:65;;;;;:78;;:38;;;;;:65;;5303:13;;5318:10;;5264:65;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5264:65:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5264:65:29;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;5264:65:29;;;;;;;;;:76;:78::i;:::-;5259:131;;5366:5;;;5259:131;5478:24;;:65;;;;;:78;;:38;;;;;:65;;5517:13;;5532:10;;5478:65;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5478:65:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5478:65:29;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;5478:65:29;;;;;;;;;:76;:78::i;:::-;5473:134;;5580:8;;;5473:134;5668:33;;:::i;:::-;5704:50;5720:9;5731:10;5743;5704:15;:50::i;:::-;5668:86;;5870:37;5901:5;5870:30;:37::i;:::-;6023:47;6053:9;6064:5;6023:29;:47::i;:::-;6148:17;;6144:77;;6194:8;;;;6144:77;6283:24;;:32;;;6337:33;6283:9;6337:22;:33::i;:::-;6392:28;6414:5;6392:21;:28::i;:::-;6283:155;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6283:155:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;6583:15:29;;;;6561:17;;6536:64;;-1:-1:-1;6561:38:29;;;:21;:38;:::i;:::-;6536:20;;:64;:24;:64;:::i;:::-;6513:87;;4898:1717;;;4962:11;;4898:1717;;;-1:-1:-1;;4774:11:29;;4710:1915;;;;6732:207;6782:18;6758:20;:42;;6814:4;6732:207;6877:20;6911:18;6732:12;:207::i;:::-;-1:-1:-1;;2230:11:129;:18;;;;;;;;-1:-1:-1;;;;;;3462:3484:29:o;3342:1552:5:-;3514:19;3545:27;3575:50;3594:14;:28;;;:30;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3594:30:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3594:30:5;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;3594:30:5;;;;;;;;;3575:18;:50::i;:::-;3545:80;-1:-1:-1;3635:18:5;3683:63;3703:12;3545:80;3635:18;3683:19;:63::i;:::-;3667:79;;3772:64;3792:13;3807;3822;3772:19;:64::i;:::-;3756:80;;3944:12;3959:1;3944:16;;3970:31;4021:13;4004:31;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;3970:65:5;-1:-1:-1;4050:6:5;4045:814;4066:13;:20;4062:1;:24;4045:814;;;4107:11;4121:13;4135:1;4121:16;;;;;;;;;;;;;;4107:30;;4151:617;4158:11;;4151:617;;4189:15;4207:35;4235:6;4207:27;:35::i;:::-;4189:53;;4260:13;4276:38;4300:1;4303:10;4276:23;:38::i;:::-;4260:54;;4358:297;;;;;;;;4401:8;4358:297;;;;4446:14;:37;;;4484:8;4446:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4446:47:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4446:47:5;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;4446:47:5;;;;;;;;;4358:297;;;;4522:14;:29;;;4552:8;4522:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4522:39:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4522:39:5;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;4522:39:5;;;;;;;;;4358:297;;;;4590:14;:36;;;4627:8;4590:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4590:46:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4590:46:5;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;4590:46:5;;;;;;;;;4358:297;;4333:22;;4345:9;;;;4333:11;;:22;;;;;;;;;;;:322;;;;4720:33;4734:6;4742:10;4720:13;:33::i;:::-;4711:42;;4151:617;;;;;4796:13;4785:7;:24;4781:68;;;4829:5;;;4781:68;-1:-1:-1;4088:3:5;;4045:814;;;-1:-1:-1;4876:11:5;-1:-1:-1;;;;3342:1552:5;;;;;;:::o;11485:1398:29:-;11667:22;;;;:28;11641:274;;11667:42;;11699:10;11667:42;;:143;;-1:-1:-1;11725:24:29;;11769:22;;;;:28;11725:85;;;;;:43;;;;;;;:85;;11799:10;;11725:85;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11725:85:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11725:85:29;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;11725:85:29;;;;;;;;;11824:4;11641:274;11877:9;:22;;;:28;;;11641:12;:274::i;:::-;11998:39;;:::i;:::-;12051;;:::i;:::-;12103:177;12141:9;:24;;;12179:9;:17;;;12210:9;:23;;;12247:9;:23;;;12103:24;:177::i;:::-;12316:23;;11984:296;;-1:-1:-1;11984:296:29;-1:-1:-1;12290:122:29;;12316:28;;12358:4;12290:122;:12;:122::i;:::-;12422:454;12518:21;12448:24;;12490:23;;;;;12448:66;;;;;:41;;;;;;;:66;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12448:66:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12448:66:29;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;12448:66:29;;;;;;;;;:91;;;;;;;;;:279;;;;12556:171;12590:17;:23;;;12631:17;:23;;;12672:9;:24;;;:39;;;:41;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12672:41:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12672:41:29;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;12672:41:29;;;;;;;;;12556:16;:171::i;:::-;12555:172;12448:279;12806:23;;12843;;12741:4;;12422:454;;:12;:454::i;:::-;11485:1398;;;:::o;3409:151:82:-;3532:6;;3504:4;;3531:7;:22;;;;;3552:1;3542;:7;;;:11;;;3531:22;3524:29;;3409:151;;;;:::o;3566:150::-;3688:6;;3661:4;;3688:21;;;;-1:-1:-1;;3698:7:82;;;:11;;;;;3566:150::o;15441:1738:29:-;15610:27;;:::i;:::-;15667:33;;:::i;:::-;15714;;:::i;:::-;15790:24;;15828:17;;;;15859:22;;;;15895:85;;;;;15760:230;;15790:24;15828:17;15859:22;15895:61;;;;;;:85;;15859:22;;15895:85;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15895:85:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15895:85:29;;;;;;39:16:-1;36:1;17:17;2:54;101:4;15895:85:29;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;15895:85:29;;;;;;;;;15760:16;:230::i;:::-;15653:337;;;;16001:32;;:::i;:::-;16036:43;16049:9;:17;;;16068:10;16036:12;:43::i;:::-;16001:78;;16089:32;;:::i;:::-;16124:43;16137:9;:17;;;16156:10;16124:12;:43::i;:::-;16198:20;;;;;:26;16254:20;;;;:26;16089:78;;-1:-1:-1;16198:26:29;16290;;:::i;:::-;16319:24;;:76;;;;;:52;;;;;;;:76;;16372:10;;16384;;16319:76;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16319:76:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16319:76:29;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;16319:76:29;;;;;;;;;16290:105;;16413:759;;;;;;;;16829:1;16413:759;;;;16457:161;16492:9;:24;;;:38;;;16531:9;:22;;;16555:10;16492:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16492:74:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16492:74:29;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;16492:74:29;;;;;;;;;16584:14;:20;;;16457:17;:161::i;:::-;16413:759;;;;16641:161;16676:9;:24;;;:38;;;16715:9;:22;;;16739:10;16676:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16676:74:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16676:74:29;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;16676:74:29;;;;;;;;;16768:14;:20;;;16641:17;:161::i;:::-;16413:759;;;;16857:11;:17;;;16413:759;;;;16901:11;:17;;;16413:759;;;;17012:6;16413:759;;;;16944:10;16413:759;;;;16980:10;16413:759;;;;17043:9;16413:759;;;;17077:9;16413:759;;;;17114:47;17126:9;17137:23;17153:6;17137:15;:23::i;:::-;17114:11;:47::i;:::-;16413:759;;16406:766;15441:1738;-1:-1:-1;;;;;;;;;;;15441:1738:29:o;7351:1819::-;7483:12;7499:26;:5;:13;;;:24;:26::i;:::-;7498:27;7483:42;;7535:12;7551:26;:5;:13;;;:24;:26::i;:::-;7550:27;7535:42;;7663:7;:18;;;;;7674:7;7663:18;7659:55;;;7697:7;;;;7659:55;7883:23;7920:7;7916:336;;;-1:-1:-1;7964:5:29;7916:336;;;7990:7;7986:266;;;-1:-1:-1;8034:4:29;7986:266;;;8225:15;;;;8201:13;;;;;:19;;:40;;;:23;:40;:::i;:::-;8179:18;;;;8155:13;;;;:19;;;:43;;;:23;:43;:::i;:::-;:86;8134:107;;7986:266;8266:18;8262:902;;;8370:29;;:::i;:::-;8402:159;;;;;;;;8436:13;;;;;:18;8402:159;;;;8510:18;;;;8530:15;;;;8479:13;;8402:159;8479:19;;;;8402:159;;;;8479:67;;8510:18;8479:67;:30;:67;:::i;:::-;8402:159;;;8370:191;;8575:136;8610:5;8633:31;8651:12;8633:5;:13;;;:17;;:31;;;;:::i;:::-;8682:15;:13;:15::i;:::-;8575:17;:136::i;:::-;8262:902;;;;8812:29;;:::i;:::-;8844:159;;;;;;;;8878:5;:13;;;:18;;;8844:159;;;;;;8921:67;8952:5;:15;;;8969:5;:18;;;8921:5;:13;;;:19;;;:30;;:67;;;;;:::i;:::-;8844:159;;8812:191;-1:-1:-1;9017:136:29;9052:5;9075:15;:13;:15::i;:::-;9108:13;;;;:31;;9126:12;9108:31;:17;:31;:::i;9017:136::-;8262:902;;7351:1819;;;;;:::o;9492:1702::-;9667:26;:5;:13;;;:24;:26::i;:::-;9666:27;9659:35;;;;9712:26;:5;:13;;;:24;:26::i;:::-;9711:27;9704:35;;;;9850:37;9890:130;9920:5;:17;;;9951:5;:17;;;9982:9;:28;;;9890:16;:130::i;:::-;9850:170;;10035:32;10030:105;;-1:-1:-1;10103:1:29;10083:21;;10118:7;;10030:105;10246:24;10273:60;10285:5;:17;;;10304:9;:28;;;10273:11;:60::i;:::-;10246:87;;10343:27;10373:39;10395:16;10373:5;:17;;;:21;;:39;;;;:::i;:::-;10343:69;;10422:28;10453:42;10475:19;10453:5;:17;;;:21;;:42;;;;:::i;:::-;10422:73;;10603:36;;:::i;:::-;10642:103;;;;;;;;;10715:12;;;;:18;10676:28;;;;:34;10642:103;;10676:58;;:34;:58;:38;:58;:::i;:::-;10642:103;;10603:142;-1:-1:-1;10845:25:29;10873:51;10885:20;10603:142;10873:11;:51::i;:::-;10845:79;;10996:26;11025:38;11047:5;:15;;;11025:17;:21;;:38;;;;:::i;:::-;11146:17;;10996:67;;-1:-1:-1;11146:41:29;;10996:67;11146:41;:21;:41;:::i;:::-;11126:61;;-1:-1:-1;;;;;;;9492:1702:29;;;:::o;17252:336::-;17442:21;;;17461:1;17442:21;;;17372;17442;;;;;;17372;;17442;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;17409:54;;17487:9;:22;;;17473:8;17482:1;17473:11;;;;;;;;;;;;;:36;;;;17533:9;:23;;;17519:8;17528:1;17519:11;;;;;;;;;;;;;;;;;:37;17573:8;17252:336;-1:-1:-1;;17252:336:29:o;17594:828::-;17801:27;;;17826:1;17801:27;;;;;;;;;17720;;;;17801;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;17851:540:29;;;;;;;;17896:28;17851:540;;-1:-1:-1;17851:540:29;;;;;;;17972:211;;;;;;;18014:4;17972:211;;17763:65;;-1:-1:-1;17851:540:29;;;;;;17972:211;;;;;;18100:26;17972:211;;;;;;;18151:17;;17972:211;;;;;17851:540;;;18214:16;;;;17851:540;;;;-1:-1:-1;18263:16:29;;;17851:540;;;;;;;;;;18347:1;-1:-1:-1;17851:540:29;;;18368:12;;;;;;;;;;;17851:540;;;;;17838:10;;:7;;18100:26;17838:10;;;2159:459:124;2217:7;2458:6;2454:45;;-1:-1:-1;2487:1:124;2480:8;;2454:45;2521:5;;;2525:1;2521;:5;:1;2544:5;;;;;:10;2536:56;;;;;;;;;;;;;;2610:1;-1:-1:-1;2159:459:124;;;;;:::o;834:176::-;892:7;923:5;;;946:6;;;;938:46;;;;;;;;;;;;;2293:663:77;2479:4;2474:476;;2593:24;2612:4;2593:18;:24::i;:::-;2643:5;2674:26;2693:6;2674:18;:26::i;:::-;2726:6;2758:19;2768:8;2758:9;:19::i;:::-;2803:5;2834:19;2844:8;2834:9;:19::i;:::-;2551:356;;;;;;;;;;;2879:6;;2551:356;;;;;;;;-1:-1:-1;;26:21;;;22:32;6:49;;2551:356:77;;;;2499:440;;;;;;;;;996:146:67;1058:13;893:1;942:3;1102:9;:25;1101:33;1090:45;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;1090:45:67;-1:-1:-1;1083:52:67;996:146;-1:-1:-1;;996:146:67:o;6710:411:5:-;6863:4;;6879:206;6900:7;:14;6896:1;:18;6879:206;;;6940:32;6952:7;6961;6969:1;6961:10;;;;;;;;;;;;;;6940:11;:32::i;:::-;6935:140;;6992:32;7004:7;7013;7021:1;7013:10;;;;;;;;;;;;;;6992:11;:32::i;:::-;7059:1;7042:18;;;;6935:140;6916:3;;6879:206;;;-1:-1:-1;7101:13:5;;6710:411;-1:-1:-1;;;6710:411:5:o;2086:1014:67:-;2152:4;2223:3;2241:15;;;:19;2237:100;;2276:10;;2237:100;;;2323:3;2317:9;;;;;2237:100;2351:14;;;:18;2347:97;;2385:9;;2347:97;;;2431:2;2425:8;;;;;2347:97;2458:14;;;:18;2454:97;;-1:-1:-1;;2492:9:67;2454:97;;;2538:2;2532:8;;;;;2454:97;2565:14;;;:18;2561:97;;2599:9;;2561:97;;;2645:2;2639:8;;;;;2561:97;2672:13;;;:17;2668:94;;2705:8;;2668:94;;;2750:1;2744:7;;;;;2668:94;2780:3;2776:7;;:11;2772:88;;2803:8;;2772:88;;;2848:1;2842:7;;;;;2772:88;2878:3;2874:7;;:11;2870:143;;2901:8;;2870:143;;;2946:1;2940:7;;;;;2870:143;3031:3;3027:7;;:11;3023:50;;3054:8;;3090:3;2086:1014;-1:-1:-1;;2086:1014:67:o;1148:154::-;942:3;1267:21;;;;1266:29;;1148:154::o;1895:137::-;893:1;2014:10;;2004:21;;;1895:137::o;2962:561:77:-;3122:4;3117:400;;3236:24;3255:4;3236:18;:24::i;:::-;3286:5;3317:26;3336:6;3317:18;:26::i;:::-;3369:6;3401:19;3411:8;3401:9;:19::i;:::-;3194:280;;;;;;;;;3446:6;;3194:280;;;;2750:533:5;2988:21;;:::i;:::-;3019;;:::i;:::-;3068:208;3098:14;3126:11;3151:7;3172:9;3227:4;3068:16;:208::i;:::-;3061:215;;;;2750:533;;;;;;;:::o;1294:426:77:-;1428:4;1423:291;;1542:24;1561:4;1542:18;:24::i;:::-;1592:5;1623:26;1642:6;1623:18;:26::i;:::-;1500:171;;;;;;;;;;;14992:316:29;15162:4;15182:22;15207:31;15219:11;15232:5;15207:11;:31::i;:::-;15182:56;-1:-1:-1;15270:31:29;:11;15182:56;15270:31;:15;:31;:::i;:::-;15255:46;;;;;14992:316;-1:-1:-1;;;;14992:316:29:o;2023:526:5:-;2253:21;;:::i;:::-;2284;;:::i;:::-;2333:209;2363:14;2391:11;2416:7;2437:9;2492:5;2333:16;:209::i;4900:263::-;5011:17;;:::i;:::-;5047:109;5074:7;5095:1;5110:7;:14;5138:8;5047:13;:109::i;4154:567:74:-;4285:16;;:::i;:::-;4346:11;;;;4372:10;;4338:20;;;;;4368:347;;;4405:130;;;;;;;;;4439:4;4405:130;;;4501:12;;;;4405:130;;;;4468:52;;:10;;:52;;1200:6;4468:52;:32;:52;:::i;:::-;4405:130;;;4398:137;;;;;4368:347;4573:131;;;;;;;;;-1:-1:-1;4573:131:74;;4670:12;;4573:131;;;;4637:52;;:10;;:52;;1200:6;4637:52;:32;:52;:::i;1283:168:69:-;1376:11;;:::i;:::-;1410:34;;;;;;;;;1424:7;;1410:34;;1424:17;;1006:6;1424:17;:11;:17;:::i;:::-;1410:34;;1403:41;1283:168;-1:-1:-1;;1283:168:69:o;1457:188::-;1570:7;1600:38;1616:6;1624:1;:7;;;1006:6;1600:15;:38::i;6026:150:82:-;6148:6;;6121:4;;6148:21;;;;-1:-1:-1;;6158:7:82;;;:11;;;6026:150::o;5869:151::-;5992:6;;5964:4;;5991:7;:22;;;;-1:-1:-1;;6002:7:82;;;:11;;;5869:151::o;1110:228:75:-;1263:7;1293:38;1319:11;1293:21;:6;1304:9;1293:21;:10;:21;:::i;:::-;:25;:38;:25;:38;:::i;:::-;1286:45;1110:228;-1:-1:-1;;;;1110:228:75:o;4730:610:82:-;4840:10;;:::i;:::-;4866:17;;:::i;:::-;4907:6;;4897;;:16;;;;;;4893:418;;;4943:6;;4929:20;;;;4991:7;;;;;5000;;;;4978:30;;4991:7;4978:12;:30::i;:::-;4963:12;;;:45;4893:418;;;5054:1;:7;;;5043:1;:7;;;:18;5039:262;;5095:6;;5081:20;;;;5147:7;;;;;5156;;;;5134:30;;5147:7;5134:12;:30::i;5039:262::-;5217:6;;5203:20;;;;5269:7;;;;;5278;;;;5256:30;;5269:7;5256:12;:30::i;:::-;5241:12;;;:45;:12;4730:610;-1:-1:-1;;;4730:610:82:o;4381:168::-;4447:10;;:::i;:::-;-1:-1:-1;4480:62:82;;;;;;;;;-1:-1:-1;4480:62:82;;;;;;;4381:168;:::o;13084:1797:29:-;13317:20;13340:40;13364:5;:15;;;13340:5;:13;;;:19;;;:23;;:40;;;;:::i;:::-;13394:13;;;;:18;13317:63;;-1:-1:-1;13390:235:29;;;13448:57;;;;;;;;;;;;;;;;;:17;;;;:57;;13470:12;;13448:57;:21;:57;:::i;:::-;13428:17;;;:77;13390:235;;;13556:58;;;;;;;;;;;;;;;;;:17;;;;:58;;13578:12;;13556:58;:21;:58;:::i;:::-;13536:17;;;:78;13390:235;13669:20;13692:37;13713:5;:15;;;13692:10;:16;;;:20;;:37;;;;:::i;:::-;13743:15;;13669:60;;-1:-1:-1;13739:187:29;;;13794:17;;;;:35;;13816:12;13794:35;:21;:35;:::i;:::-;13774:17;;;:55;13739:187;;;13880:17;;;;:35;;13902:12;13880:35;:21;:35;:::i;:::-;13860:17;;;:55;13739:187;13976:20;13999:40;14023:5;:15;;;13999:5;:13;;;:19;;;:23;;:40;;;;:::i;:::-;14053:13;;;;:18;13976:63;;-1:-1:-1;14049:235:29;;;14107:57;;;;;;;;;;;;;;;;;:17;;;;:57;;14129:12;;14107:57;:21;:57;:::i;:::-;14087:17;;;:77;14049:235;;;14215:58;;;;;;;;;;;;;;;;;:17;;;;:58;;14237:12;;14215:58;:21;:58;:::i;:::-;14195:17;;;:78;14049:235;14328:20;14351:37;14372:5;:15;;;14351:10;:16;;;:20;;:37;;;;:::i;:::-;14402:15;;14328:60;;-1:-1:-1;14398:187:29;;;14453:17;;;;:35;;14475:12;14453:35;:21;:35;:::i;:::-;14433:17;;;:55;14398:187;;;14539:17;;;;:35;;14561:12;14539:35;:21;:35;:::i;:::-;14519:17;;;:55;14398:187;14647:22;;:::i;:::-;14672:13;;;;:29;;14690:10;14672:29;:17;:29;:::i;:::-;14647:54;;14719:18;:5;:16;:18::i;:::-;14718:19;14711:27;;;;14790:11;;;;14768:17;;:34;;;:21;:34;:::i;:::-;14748:54;;-1:-1:-1;;;;14812:13:29;;;:26;;;;14848:13;;;;:26;;;;-1:-1:-1;13084:1797:29:o;1274:134:124:-;1332:7;1358:43;1362:1;1365;1358:43;;;;;;;;;;;;;;;;;:3;:43::i;1651:188:69:-;1764:7;1794:38;1810:6;1006;1824:1;:7;;;1794:15;:38::i;3073:130:124:-;3131:7;3157:39;3161:1;3164;3157:39;;;;;;;;;;;;;;;;;:3;:39::i;6359:966:77:-;6462:12;6537:19;6576:5;6559:23;;;;;;;;;;;;;-1:-1:-1;;26:21;;;22:32;6:49;;6559:23:77;;;;-1:-1:-1;49:4;6688:571:77;6709:5;;6688:571;;6960:9;;6862:3;;;;;6960:6;;6862:3;;6960:9;;;;;;;;;;;;:14;6956:293;;7015:1;7011:5;7141:22;;7148:6;-1:-1:-1;7221:13:77;;6956:293;6688:571;;;-1:-1:-1;7306:12:77;;;7316:1;7306:12;;;;;;;;;;;-1:-1:-1;7299:19:77;6359:966;-1:-1:-1;;;6359:966:77:o;7331:912::-;7425:12;7457:10;7453:51;;-1:-1:-1;7483:10:77;;;;;;;;;;;;;;;;;;;7453:51;7565:5;7553:9;7604:69;7611:6;;7604:69;;7633:8;;7660:2;7655:7;;;;7604:69;;;7714:17;7744:6;7734:17;;;;;;;;;;;;;;;;;;;;;;;;;21:6:-1;;104:10;7734:17:77;87:34:-1;135:17;;-1:-1;7734:17:77;-1:-1:-1;7843:5:77;;-1:-1:-1;7714:37:77;-1:-1:-1;7875:6:77;7858:357;7883:5;;7858:357;;8036:3;;8132:2;8128:1;:6;902:2;8114:21;8103:34;;8093:4;8098:1;8093:7;;;;;;;;;;;:44;;;;;;;;;;-1:-1:-1;8202:2:77;8197:7;;;;7858:357;;;-1:-1:-1;8232:4:77;7331:912;-1:-1:-1;;;;7331:912:77:o;1577:312:67:-;1676:4;;942:3;1711:8;:24;;-1:-1:-1;1745:19:67;942:3;1767:8;:24;1745:46;;1801:8;1843:14;893:1;1836:21;;1812:7;1820:11;1812:20;;;;;;;;;;;;;;:46;1801:57;;1881:1;1875:3;:7;1868:14;;;;;1577:312;;;;:::o;1308:263::-;1517:20;;942:3;1427:24;;;1483;;;;893:1;1542:21;;;1517:7;;1427:24;;1517:20;;;;;;;;;;;:47;;;;;;;;;;;1308:263;;;;:::o;8249:962:77:-;8521:13;;;8531:2;8521:13;;;8343:12;8521:13;;;;;;8383:14;;;;8343:12;;8521:13;;;21:6:-1;;104:10;8521:13:77;87:34:-1;135:17;;-1:-1;8521:13:77;8499:35;;902:2;8598:23;;8586:6;8593:1;8586:9;;;;;;;;;;;:35;;;;;;;;;;;1010:3;8643:27;;8631:6;8638:1;8631:9;;;;;;;;;;;:39;;;;;;;;;;-1:-1:-1;8784:9:77;8779:402;8803:2;8799:1;:6;8779:402;;;8892:1;8888:5;;8985:23;1232:3;8990:17;;8985:4;:23::i;:::-;8964:6;8976:5;8971:2;:10;8964:18;;;;;;;;;;;:44;;;;;;;;;;;9031:1;9026;:6;;9022:10;;9123:23;1232:3;9128:1;:17;9123:4;:23::i;:::-;9102:6;9114:5;9109:2;:10;9102:18;;;;;;;;;;;:44;;;;;;;;;;-1:-1:-1;;9169:1:77;9164:6;;;;;8807:3;;8779:402;;5195:1451:5;5462:21;;:::i;:::-;5493;;:::i;:::-;5535:33;;:::i;:::-;5578;;:::i;:::-;5627:9;5622:974;5646:9;:16;5642:1;:20;5622:974;;;5683:20;;:::i;:::-;5706:14;:28;;;5735:7;5744:9;5754:1;5744:12;;;;;;;;;;;;;;5706:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5706:51:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5706:51:5;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;5706:51:5;;;;;;;;;5683:74;;5775:12;:3;:10;:12::i;:::-;5771:114;;;5862:8;;;5771:114;5898:28;;:::i;:::-;5929:39;5942:11;5955:9;5965:1;5955:12;;;;;;;;;;;;;;5929;:39::i;:::-;5898:70;;5982:24;;:::i;:::-;6009:40;6027:3;6032:10;:16;;;6009:17;:40::i;:::-;6102:16;;;;:22;6084:13;;;;5982:67;;-1:-1:-1;6063:18:5;;6084:41;;;:17;:41;:::i;:::-;6063:62;;6139:33;;:::i;:::-;6175:13;:11;:13::i;:::-;6139:49;;6206:23;6202:119;;;6265:41;6281:10;:24;;;6265:15;:41::i;:::-;6249:57;;6202:119;6338:12;;6334:252;;;6390:61;6412:38;6424:10;6436:13;6412:11;:38::i;:::-;6390:17;;;:61;:21;:61;:::i;:::-;6370:81;;6334:252;;;6510:61;6532:38;6544:10;6556:13;6532:11;:38::i;:::-;6510:17;;;:61;:21;:61;:::i;:::-;6490:81;;6334:252;5622:974;;;;;;5664:3;;5622:974;;;-1:-1:-1;6614:11:5;;;;-1:-1:-1;5195:1451:5;-1:-1:-1;;;;;;5195:1451:5:o;7127:945::-;7294:17;;:::i;:::-;7334:29;;;7377:8;;;:70;;;7390:3;7397:1;7390:8;:56;;;;;7438:8;7402:7;7410:14;7402:23;;;;;;;;;;;;;;:32;;;:44;;7390:56;7373:148;;;7463:47;;;;;;;;;;;7373:148;7531:8;7565:1;7559:3;:7;7542:14;:24;7531:35;;7576:16;7595:7;7603:3;7595:12;;;;;;;;;;;;;;:21;;;7576:40;;7641:11;7630:8;:22;7626:440;;;7675:131;7706:7;7731:14;7763:3;7784:8;7675:13;:131::i;:::-;7668:138;;;;;;;7626:440;7838:11;7827:8;:22;7823:243;;;7872:133;7903:7;7928:3;7934:1;7928:7;7953:12;7983:8;7872:13;:133::i;7823:243::-;8043:7;8051:3;8043:12;;;;;;;;;;;;;;8036:19;;;;;7127:945;;;;;;:::o;2059:724:75:-;2223:7;2250:11;;;:29;;-1:-1:-1;2265:14:75;;2250:29;2246:151;;;2358:28;2371:1;2374:11;2358:12;:28::i;:::-;2351:35;;;;2246:151;2406:11;2420:21;:6;2431:9;2420:21;:10;:21;:::i;:::-;2406:35;-1:-1:-1;2680:96:75;2735:32;2765:1;2735:25;2758:1;2735:18;:11;2765:1;2735:18;:15;:18;:::i;:25::-;:29;:32;:29;:32;:::i;:::-;2708:23;:6;2719:11;2708:23;:10;:23;:::i;:::-;:59;;:67;;2774:1;2708:67;;;2770:1;2708:67;2680:96;;:23;:6;2691:11;2680:23;:10;:23;:::i;:96::-;2673:103;2059:724;-1:-1:-1;;;;;2059:724:75:o;1732:187:124:-;1818:7;1853:12;1845:6;;;;1837:29;;;;;;;;;;;;;;;-1:-1:-1;;;1888:5:124;;;1732:187::o;4555:169:82:-;4665:10;;:::i;:::-;4698:19;4702:1;4705:11;4714:1;4705:8;:11::i;:::-;4698:3;:19::i;3718:338:124:-;3804:7;3904:12;3897:5;3889:28;;;;;;;;;;;;;;;;3927:9;3943:1;3939;:5;;;;;;;3718:338;-1:-1:-1;;;;;3718:338:124:o;10183:325:77:-;10272:4;10340:2;10332:5;:10;10328:79;;;-1:-1:-1;902:2:77;10376:18;;10365:31;;10358:38;;10328:79;-1:-1:-1;956:2:77;10472:27;10461:40;;;10183:325::o;3722:137:82:-;3840:7;;;:12;;;;3722:137::o;1153:124:69:-;1215:11;;:::i;:::-;-1:-1:-1;1249:21:69;;;;;;;;;1006:6;1249:21;;1153:124;:::o;4500:128:124:-;4558:7;4584:37;4588:1;4591;4584:37;;;;;;;;;;;;;;;;;:3;:37::i;5660:203:82:-;5753:10;;:::i;:::-;-1:-1:-1;5786:70:82;;;;;;;;;5811:6;;5810:7;5786:70;;;5838:7;;;;5786:70;;;;5660:203;;;:::o;5132:163:124:-;5218:7;5253:12;5245:6;5237:29;;;;;;;;;;;;;;;;5287:1;5283;:5;;;;;;;5132:163;-1:-1:-1;;;;5132:163:124:o;1626:16798:29:-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;1626:16798:29;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;1626:16798:29;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;1626:16798:29;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;1626:16798:29;;;;;;;;;;;;;;;;;;;;;:::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;160:707;;277:3;270:4;262:6;258:17;254:27;244:2;;295:1;292;285:12;244:2;332:6;319:20;354:80;369:64;426:6;369:64;;;354:80;;;345:89;;451:5;476:6;469:5;462:21;506:4;498:6;494:17;484:27;;528:4;523:3;519:14;512:21;;581:6;628:3;620:4;612:6;608:17;603:3;599:27;596:36;593:2;;;645:1;642;635:12;593:2;670:1;655:206;680:6;677:1;674:13;655:206;;;738:3;760:37;793:3;781:10;760:37;;;748:50;;-1:-1;821:4;812:14;;;;840;;;;;702:1;695:9;655:206;;;659:14;237:630;;;;;;;;893:722;;1021:3;1014:4;1006:6;1002:17;998:27;988:2;;1039:1;1036;1029:12;988:2;1069:6;1063:13;1091:80;1106:64;1163:6;1106:64;;1091:80;1082:89;;1188:5;1213:6;1206:5;1199:21;1243:4;1235:6;1231:17;1221:27;;1265:4;1260:3;1256:14;1249:21;;1318:6;1365:3;1357:4;1349:6;1345:17;1340:3;1336:27;1333:36;1330:2;;;1382:1;1379;1372:12;1330:2;1407:1;1392:217;1417:6;1414:1;1411:13;1392:217;;;1475:3;1497:48;1541:3;1529:10;1497:48;;;1485:61;;-1:-1;1569:4;1560:14;;;;1588;;;;;1439:1;1432:9;1392:217;;1623:128;1698:13;;1716:30;1698:13;1716:30;;1758:158;1848:13;;1866:45;1848:13;1866:45;;1949:322;;2061:4;2049:9;2044:3;2040:19;2036:30;2033:2;;;2079:1;2076;2069:12;2033:2;2097:20;2112:4;2097:20;;;2088:29;-1:-1;2168:1;2200:49;2245:3;2225:9;2200:49;;;2175:75;;-1:-1;2186:5;2027:244;-1:-1;;2027:244;2304:344;;2427:4;2415:9;2410:3;2406:19;2402:30;2399:2;;;2445:1;2442;2435:12;2399:2;2463:20;2478:4;2463:20;;;2454:29;-1:-1;2534:1;2566:60;2622:3;2602:9;2566:60;;2683:661;;2807:4;2795:9;2790:3;2786:19;2782:30;2779:2;;;2825:1;2822;2815:12;2779:2;2843:20;2858:4;2843:20;;;2834:29;-1:-1;2915:1;2947:59;3002:3;2982:9;2947:59;;;2922:85;;-1:-1;3070:2;3103:59;3158:3;3134:22;;;3103:59;;;3096:4;3089:5;3085:16;3078:85;3028:146;3230:2;3263:59;3318:3;3309:6;3298:9;3294:22;3263:59;;;3256:4;3249:5;3245:16;3238:85;3184:150;2773:571;;;;;3377:468;;3489:4;3477:9;3472:3;3468:19;3464:30;3461:2;;;3507:1;3504;3497:12;3461:2;3525:20;3540:4;3525:20;;;3516:29;-1:-1;3596:1;3628:49;3673:3;3653:9;3628:49;;;3603:75;;-1:-1;3741:2;3774:49;3819:3;3795:22;;;3774:49;;;3767:4;3760:5;3756:16;3749:75;3699:136;3455:390;;;;;3875:495;;3997:4;3985:9;3980:3;3976:19;3972:30;3969:2;;;4015:1;4012;4005:12;3969:2;4033:20;4048:4;4033:20;;;4024:29;-1:-1;4103:1;4135:57;4188:3;4168:9;4135:57;;;4110:83;;-1:-1;4255:2;4288:60;4344:3;4320:22;;;4835:13;;4853:33;4835:13;4853:33;;4898:130;4965:20;;4990:33;4965:20;4990:33;;5035:134;5113:13;;5131:33;5113:13;5131:33;;5176:132;5253:13;;5271:32;5253:13;5271:32;;5315:132;5392:13;;5410:32;5392:13;5410:32;;5454:392;;5594:2;5582:9;5573:7;5569:23;5565:32;5562:2;;;5610:1;5607;5600:12;5562:2;5645:24;;5689:18;5678:30;;5675:2;;;5721:1;5718;5711:12;5675:2;5741:89;5822:7;5813:6;5802:9;5798:22;5741:89;;5853:257;;5965:2;5953:9;5944:7;5940:23;5936:32;5933:2;;;5981:1;5978;5971:12;5933:2;6016:1;6033:61;6086:7;6066:9;6033:61;;6117:287;;6244:2;6232:9;6223:7;6219:23;6215:32;6212:2;;;6260:1;6257;6250:12;6212:2;6295:1;6312:76;6380:7;6360:9;6312:76;;6411:309;;6549:2;6537:9;6528:7;6524:23;6520:32;6517:2;;;6565:1;6562;6555:12;6517:2;6600:1;6617:87;6696:7;6676:9;6617:87;;6727:311;;6866:2;6854:9;6845:7;6841:23;6837:32;6834:2;;;6882:1;6879;6872:12;6834:2;6917:1;6934:88;7014:7;6994:9;6934:88;;7045:1281;;;;;;;7353:3;7341:9;7332:7;7328:23;7324:33;7321:2;;;7370:1;7367;7360:12;7321:2;7405:1;7422:76;7490:7;7470:9;7422:76;;;7412:86;;7384:120;7535:2;7553:76;7621:7;7612:6;7601:9;7597:22;7553:76;;;7543:86;;7514:121;7666:3;7685:76;7753:7;7744:6;7733:9;7729:22;7685:76;;;7675:86;;7645:122;7798:3;7817:53;7862:7;7853:6;7842:9;7838:22;7817:53;;;7807:63;;7777:99;7935:3;7924:9;7920:19;7907:33;7960:18;7952:6;7949:30;7946:2;;;7992:1;7989;7982:12;7946:2;8012:78;8082:7;8073:6;8062:9;8058:22;8012:78;;;8002:88;;7886:210;8155:3;8144:9;8140:19;8127:33;8180:18;8172:6;8169:30;8166:2;;;8212:1;8209;8202:12;8166:2;8232:78;8302:7;8293:6;8282:9;8278:22;8232:78;;;8222:88;;8106:210;7315:1011;;;;;;;;;8333:307;;8470:2;8458:9;8449:7;8445:23;8441:32;8438:2;;;8486:1;8483;8476:12;8438:2;8521:1;8538:86;8616:7;8596:9;8538:86;;8965:263;;9080:2;9068:9;9059:7;9055:23;9051:32;9048:2;;;9096:1;9093;9086:12;9048:2;9131:1;9148:64;9204:7;9184:9;9148:64;;9236:257;;9387:100;9483:3;9475:6;9387:100;;9502:253;;9627:88;9711:3;9703:6;9627:88;;;-1:-1;;9744:4;9735:14;;9620:135;9763:142;9854:45;9893:5;9854:45;;;9849:3;9842:58;9836:69;;;9912:103;9985:24;10003:5;9985:24;;10209:1048;;10404:79;10477:5;10404:79;;;10496:111;10600:6;10595:3;10496:111;;;10489:118;;10630:3;10672:4;10664:6;10660:17;10655:3;10651:27;10699:81;10774:5;10699:81;;;10800:7;10828:1;10813:405;10838:6;10835:1;10832:13;10813:405;;;10900:9;10894:4;10890:20;10885:3;10878:33;10945:6;10939:13;10967:114;11076:4;11061:13;10967:114;;;10959:122;;11098:85;11176:6;11098:85;;;11206:4;11197:14;;;;;11088:95;-1:-1;;10860:1;10853:9;10813:405;;;-1:-1;11231:4;;10383:874;-1:-1;;;;;;;10383:874;11320:842;;11503:73;11570:5;11503:73;;;11589:105;11687:6;11682:3;11589:105;;;11582:112;;11715:75;11784:5;11715:75;;;11810:7;11838:1;11823:317;11848:6;11845:1;11842:13;11823:317;;;11915:6;11909:13;11936:101;12033:3;12018:13;11936:101;;;11929:108;;12054:79;12126:6;12054:79;;;12044:89;-1:-1;;11870:1;11863:9;11823:317;;;-1:-1;12153:3;;11482:680;-1:-1;;;;;11482:680;12170:94;12237:21;12252:5;12237:21;;12271:148;12370:43;12389:23;12406:5;12389:23;;;12370:43;;12426:148;12525:43;12544:23;12561:5;12544:23;;12581:152;12682:45;12702:24;12720:5;12702:24;;12740:356;;12868:38;12900:5;12868:38;;;12918:88;12999:6;12994:3;12918:88;;;12911:95;;13011:52;13056:6;13051:3;13044:4;13037:5;13033:16;13011:52;;;13075:16;;;;;12848:248;-1:-1;;12848:248;13103:315;;13199:34;13227:5;13199:34;;;13245:60;13298:6;13293:3;13245:60;;;13238:67;;13310:52;13355:6;13350:3;13343:4;13336:5;13332:16;13310:52;;;13383:29;13405:6;13383:29;;;13374:39;;;;13179:239;-1:-1;;;13179:239;13425:176;13533:62;13589:5;13533:62;;13608:144;13695:51;13740:5;13695:51;;13759:158;13853:58;13905:5;13853:58;;14438:327;;14598:67;14662:2;14657:3;14598:67;;;14698:29;14678:50;;14756:2;14747:12;;14584:181;-1:-1;;14584:181;14774:370;;14934:67;14998:2;14993:3;14934:67;;;15034:34;15014:55;;15103:3;15098:2;15089:12;;15082:25;15135:2;15126:12;;14920:224;-1:-1;;14920:224;15153:374;;15313:67;15377:2;15372:3;15313:67;;;15413:34;15393:55;;15482:7;15477:2;15468:12;;15461:29;15518:2;15509:12;;15299:228;-1:-1;;15299:228;15536:331;;15696:67;15760:2;15755:3;15696:67;;;15796:33;15776:54;;15858:2;15849:12;;15682:185;-1:-1;;15682:185;15936:1616;16155:23;;15936:1616;;16081:6;16072:16;;;16184:77;16076:3;16155:23;16184:77;;;16103:164;16345:4;16338:5;16334:16;16328:23;16357:63;16414:4;16409:3;16405:14;16391:12;16357:63;;;16277:149;16501:4;16494:5;16490:16;16484:23;16513:119;16626:4;16621:3;16617:14;16603:12;16513:119;;;16436:202;16722:4;16715:5;16711:16;16705:23;16734:63;16791:4;16786:3;16782:14;16768:12;16734:63;;;16648:155;16889:4;16882:5;16878:16;16872:23;16901:63;16958:4;16953:3;16949:14;16935:12;16901:63;;;16813:157;17051:4;17044:5;17040:16;17034:23;17063:65;17120:6;17115:3;17111:16;17097:12;17063:65;;;16980:154;17217:4;17210:5;17206:16;17200:23;17229:65;17286:6;17281:3;17277:16;17263:12;17229:65;;;17144:156;17373:4;17366:5;17362:16;17356:23;17427:3;17421:4;17417:14;17408:6;17403:3;17399:16;17392:40;17447:67;17509:4;17495:12;17447:67;;17618:821;17823:23;;17757:4;17748:14;;;17852:57;17752:3;17823:23;17852:57;;;17777:138;17996:4;17989:5;17985:16;17979:23;18008:84;18086:4;18081:3;18077:14;18063:12;18008:84;;;17925:173;18170:4;18163:5;18159:16;18153:23;18182:81;18257:4;18252:3;18248:14;18234:12;18182:81;;;18108:161;18343:4;18336:5;18332:16;18326:23;18355:63;18412:4;18407:3;18403:14;18389:12;18355:63;;18495:475;18701:23;;18634:4;18625:14;;;18730:63;18629:3;18701:23;18730:63;;;18654:145;18874:4;18867:5;18863:16;18857:23;18886:63;18943:4;18938:3;18934:14;18920:12;20021:103;20094:24;20112:5;20094:24;;20251:244;;20370:75;20441:3;20432:6;20370:75;;;-1:-1;20467:2;20458:12;;20358:137;-1:-1;20358:137;20502:553;;20718:93;20807:3;20798:6;20718:93;;;20711:100;;20822:73;20891:3;20882:6;20822:73;;;20917:1;20912:3;20908:11;20901:18;;20937:93;21026:3;21017:6;20937:93;;21062:978;;21376:93;21465:3;21456:6;21376:93;;;21369:100;;21480:73;21549:3;21540:6;21480:73;;;21575:1;21570:3;21566:11;21559:18;;21595:93;21684:3;21675:6;21595:93;;;21588:100;;21699:73;21768:3;21759:6;21699:73;;;21794:1;21789:3;21785:11;21778:18;;21814:93;21903:3;21894:6;21814:93;;;21807:100;;21918:73;21987:3;21978:6;21918:73;;;-1:-1;22013:1;22004:11;;21357:683;-1:-1;;;;;;21357:683;22047:1269;;22433:93;22522:3;22513:6;22433:93;;;22426:100;;22537:73;22606:3;22597:6;22537:73;;;22632:1;22627:3;22623:11;22616:18;;22652:93;22741:3;22732:6;22652:93;;;22645:100;;22756:73;22825:3;22816:6;22756:73;;;22851:1;22846:3;22842:11;22835:18;;22871:93;22960:3;22951:6;22871:93;;;22864:100;;22975:73;23044:3;23035:6;22975:73;;;23070:1;23065:3;23061:11;23054:18;;23090:93;23179:3;23170:6;23090:93;;;23083:100;;23194:73;23263:3;23254:6;23194:73;;;-1:-1;23289:1;23280:11;;22414:902;-1:-1;;;;;;;;22414:902;23323:340;23477:2;23462:18;;23491:71;23466:9;23535:6;23491:71;;;23573:80;23649:2;23638:9;23634:18;23625:6;23573:80;;23670:796;24004:2;24018:47;;;23989:18;;24079:146;23989:18;24211:6;24079:146;;;24071:154;;24273:9;24267:4;24263:20;24258:2;24247:9;24243:18;24236:48;24298:158;24451:4;24442:6;24298:158;;24473:263;24616:2;24601:18;;24630:96;24605:9;24699:6;24630:96;;24743:301;24881:2;24895:47;;;24866:18;;24956:78;24866:18;25020:6;24956:78;;25051:407;25242:2;25256:47;;;25227:18;;25317:131;25227:18;25317:131;;25465:407;25656:2;25670:47;;;25641:18;;25731:131;25641:18;25731:131;;25879:407;26070:2;26084:47;;;26055:18;;26145:131;26055:18;26145:131;;26293:407;26484:2;26498:47;;;26469:18;;26559:131;26469:18;26559:131;;26707:297;26867:2;26852:18;;26881:113;26856:9;26967:6;26881:113;;27323:416;27515:2;27500:18;;27529:117;27504:9;27619:6;27529:117;;;27657:72;27725:2;27714:9;27710:18;27701:6;27657:72;;28161:213;28279:2;28264:18;;28293:71;28268:9;28337:6;28293:71;;28381:324;28527:2;28512:18;;28541:71;28516:9;28585:6;28541:71;;;28623:72;28691:2;28680:9;28676:18;28667:6;28623:72;;28712:256;28774:2;28768:9;28800:17;;;28875:18;28860:34;;28896:22;;;28857:62;28854:2;;;28932:1;28929;28922:12;28854:2;28948;28941:22;28752:216;;-1:-1;28752:216;28975:304;;29134:18;29126:6;29123:30;29120:2;;;29166:1;29163;29156:12;29120:2;-1:-1;29201:4;29189:17;;;29254:15;;29057:222;29286:176;29435:4;29426:14;;29383:79;29646:162;29774:12;;29745:63;30634:203;30777:19;;;30826:4;30817:14;;30770:67;31537:91;;31599:24;31617:5;31599:24;;31635:85;31701:13;31694:21;;31677:43;31727:144;31799:66;31788:78;;31771:100;31878:144;31950:66;31939:78;;31922:100;32029:72;32091:5;32074:27;32108:138;32186:5;32192:49;32186:5;32192:49;;32253:152;32338:5;32344:56;32338:5;32344:56;;32565:113;32638:34;32627:46;;32610:68;32685:121;32758:42;32747:54;;32730:76;32892:88;32964:10;32953:22;;32936:44;32987:104;33059:26;33048:38;;33031:60;33098:129;;33185:37;33216:5;33234:171;;33338:62;33394:5;33338:62;;33552:138;;33645:40;33679:5;33645:40;;33697:152;;33797:47;33838:5;33797:47;;34253:268;34318:1;34325:101;34339:6;34336:1;34333:13;34325:101;;;34406:11;;;34400:18;34387:11;;;34380:39;34361:2;34354:10;34325:101;;;34441:6;34438:1;34435:13;34432:2;;;-1:-1;;34506:1;34488:16;;34481:27;34302:219;34770:97;34858:2;34838:14;-1:-1;;34834:28;;34818:49;34875:107;34960:1;34953:5;34950:12;34940:2;;34966:9;34989:114;35081:1;35074:5;35071:12;35061:2;;35087:9;35228:117;35297:24;35315:5;35297:24;;;35290:5;35287:35;35277:2;;35336:1;35333;35326:12;35352:111;35418:21;35433:5;35418:21;;35470:106;35551:1;35544:5;35541:12;35531:2;;35567:1;35564;35557:12;35583:117;35652:24;35670:5;35652:24;;35707:117;35776:24;35794:5;35776:24;;35831:115;35899:23;35916:5;35899:23;;35953:115;36021:23;36038:5;36021:23;",
|
|
108
108
|
"source": "/*\n\n Copyright 2019 dYdX Trading Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.7;\npragma experimental ABIEncoderV2;\n\nimport { SafeMath } from \"@openzeppelin/contracts/math/SafeMath.sol\";\nimport { ReentrancyGuard } from \"@openzeppelin/contracts/utils/ReentrancyGuard.sol\";\n\nimport { IDolomiteMargin } from \"../../protocol/interfaces/IDolomiteMargin.sol\";\nimport { Account } from \"../../protocol/lib/Account.sol\";\nimport { Actions } from \"../../protocol/lib/Actions.sol\";\nimport { Decimal } from \"../../protocol/lib/Decimal.sol\";\nimport { Interest } from \"../../protocol/lib/Interest.sol\";\nimport { Math } from \"../../protocol/lib/Math.sol\";\nimport { Monetary } from \"../../protocol/lib/Monetary.sol\";\nimport { Require } from \"../../protocol/lib/Require.sol\";\nimport { Types } from \"../../protocol/lib/Types.sol\";\nimport { LiquidatorProxyHelper } from \"../helpers/LiquidatorProxyHelper.sol\";\nimport { OnlyDolomiteMargin } from \"../helpers/OnlyDolomiteMargin.sol\";\n\n\n/**\n * @title LiquidatorProxyV1\n * @author dYdX\n *\n * Contract for liquidating other accounts in DolomiteMargin.\n */\ncontract LiquidatorProxyV1 is OnlyDolomiteMargin, ReentrancyGuard, LiquidatorProxyHelper {\n using Math for uint256;\n using SafeMath for uint256;\n using Types for Types.Par;\n using Types for Types.Wei;\n\n // ============ Constants ============\n\n bytes32 constant FILE = \"LiquidatorProxyV1\";\n\n // ============ Structs ============\n\n struct Constants {\n IDolomiteMargin dolomiteMargin;\n Account.Info solidAccount;\n Account.Info liquidAccount;\n Decimal.D256 minLiquidatorRatio;\n MarketInfo[] markets;\n uint256[] liquidMarkets;\n }\n\n struct LiquidatorProxyCache {\n // mutable\n uint256 toLiquidate;\n Types.Wei heldWei;\n Types.Wei owedWei;\n uint256 supplyValue;\n uint256 borrowValue;\n\n // immutable\n Decimal.D256 spread;\n uint256 heldMarket;\n uint256 owedMarket;\n uint256 heldPrice;\n uint256 owedPrice;\n uint256 owedPriceAdj;\n }\n\n // ============ Constructor ============\n\n constructor (\n address dolomiteMargin\n )\n public\n OnlyDolomiteMargin(dolomiteMargin)\n {} /* solium-disable-line no-empty-blocks */\n\n // ============ Public Functions ============\n\n /**\n * Liquidate liquidAccount using solidAccount. This contract and the msg.sender to this contract\n * must both be operators for the solidAccount.\n *\n * @param solidAccount The account that will do the liquidating\n * @param liquidAccount The account that will be liquidated\n * @param minLiquidatorRatio The minimum collateralization ratio to leave the solidAccount at\n * @param owedPreferences Ordered list of markets to repay first\n * @param heldPreferences Ordered list of markets to receive payout for first\n */\n function liquidate(\n Account.Info memory solidAccount,\n Account.Info memory liquidAccount,\n Decimal.D256 memory minLiquidatorRatio,\n uint256 minValueLiquidated,\n uint256[] memory owedPreferences,\n uint256[] memory heldPreferences\n )\n public\n nonReentrant\n {\n // put all values that will not change into a single struct\n Constants memory constants;\n constants.dolomiteMargin = DOLOMITE_MARGIN;\n constants.solidAccount = solidAccount;\n constants.liquidAccount = liquidAccount;\n constants.minLiquidatorRatio = minLiquidatorRatio;\n constants.liquidMarkets = constants.dolomiteMargin.getAccountMarketsWithNonZeroBalances(liquidAccount);\n constants.markets = getMarketInfos(\n constants.dolomiteMargin,\n constants.dolomiteMargin.getAccountMarketsWithNonZeroBalances(solidAccount),\n constants.liquidMarkets\n );\n\n // validate the msg.sender and that the liquidAccount can be liquidated\n checkRequirements(constants);\n\n // keep a running tally of how much value will be attempted to be liquidated\n uint256 totalValueLiquidated = 0;\n\n // for each owedMarket\n for (uint256 owedIndex = 0; owedIndex < owedPreferences.length; owedIndex++) {\n uint256 owedMarket = owedPreferences[owedIndex];\n\n // for each heldMarket\n for (uint256 heldIndex = 0; heldIndex < heldPreferences.length; heldIndex++) {\n uint256 heldMarket = heldPreferences[heldIndex];\n\n // cannot use the same market\n if (heldMarket == owedMarket) {\n continue;\n }\n\n // cannot liquidate non-negative markets\n if (!constants.dolomiteMargin.getAccountPar(liquidAccount, owedMarket).isNegative()) {\n break;\n }\n\n // cannot use non-positive markets as collateral\n if (!constants.dolomiteMargin.getAccountPar(liquidAccount, heldMarket).isPositive()) {\n continue;\n }\n\n // get all relevant values\n LiquidatorProxyCache memory cache = initializeCache(constants, heldMarket, owedMarket);\n\n // get the liquidation amount (before liquidator decreases in collateralization)\n calculateSafeLiquidationAmount(cache);\n\n // get the max liquidation amount (before liquidator reaches minLiquidatorRatio)\n calculateMaxLiquidationAmount(constants, cache);\n\n // if nothing to liquidate, do nothing\n if (cache.toLiquidate == 0) {\n continue;\n }\n\n // execute the liquidations\n constants.dolomiteMargin.operate(\n constructAccountsArray(constants),\n constructActionsArray(cache)\n );\n\n // increment the total value liquidated\n totalValueLiquidated = totalValueLiquidated.add(cache.toLiquidate.mul(cache.owedPrice));\n }\n }\n\n // revert if liquidator account does not have a lot of overhead to liquidate these pairs\n Require.that(\n totalValueLiquidated >= minValueLiquidated,\n FILE,\n \"Not enough liquidatable value\",\n totalValueLiquidated,\n minValueLiquidated\n );\n }\n\n // ============ Calculation Functions ============\n\n /**\n * Calculate the owedAmount that can be liquidated until the liquidator account will be left\n * with BOTH a non-negative balance of heldMarket AND a non-positive balance of owedMarket.\n * This is the amount that can be liquidated until the collateralization of the liquidator\n * account will begin to decrease.\n */\n function calculateSafeLiquidationAmount(\n LiquidatorProxyCache memory cache\n )\n private\n pure\n {\n bool negOwed = !cache.owedWei.isPositive();\n bool posHeld = !cache.heldWei.isNegative();\n\n // owedWei is already negative and heldWei is already positive\n if (negOwed && posHeld) {\n return;\n }\n\n // true if it takes longer for the liquidator owed balance to become negative than it takes\n // the liquidator held balance to become positive.\n bool owedGoesToZeroLast;\n if (negOwed) {\n owedGoesToZeroLast = false;\n } else if (posHeld) {\n owedGoesToZeroLast = true;\n } else {\n // owed is still positive and held is still negative\n owedGoesToZeroLast = cache.owedWei.value.mul(cache.owedPriceAdj) > cache.heldWei.value.mul(cache.heldPrice);\n }\n\n if (owedGoesToZeroLast) {\n // calculate the change in heldWei to get owedWei to zero\n Types.Wei memory heldWeiDelta = Types.Wei({\n sign: cache.owedWei.sign,\n value: cache.owedWei.value.getPartial(cache.owedPriceAdj, cache.heldPrice)\n });\n setCacheWeiValues(\n cache,\n cache.heldWei.add(heldWeiDelta),\n Types.zeroWei()\n );\n } else {\n // calculate the change in owedWei to get heldWei to zero\n Types.Wei memory owedWeiDelta = Types.Wei({\n sign: cache.heldWei.sign,\n value: cache.heldWei.value.getPartial(cache.heldPrice, cache.owedPriceAdj)\n });\n setCacheWeiValues(\n cache,\n Types.zeroWei(),\n cache.owedWei.add(owedWeiDelta)\n );\n }\n }\n\n /**\n * Calculate the additional owedAmount that can be liquidated until the collateralization of the\n * liquidator account reaches the minLiquidatorRatio. By this point, the cache will be set such\n * that the amount of owedMarket is non-positive and the amount of heldMarket is non-negative.\n */\n function calculateMaxLiquidationAmount(\n Constants memory constants,\n LiquidatorProxyCache memory cache\n )\n private\n pure\n {\n assert(!cache.heldWei.isNegative());\n assert(!cache.owedWei.isPositive());\n\n // if the liquidator account is already not above the collateralization requirement, return\n bool liquidatorAboveCollateralization = isCollateralized(\n cache.supplyValue,\n cache.borrowValue,\n constants.minLiquidatorRatio\n );\n if (!liquidatorAboveCollateralization) {\n cache.toLiquidate = 0;\n return;\n }\n\n // find the value difference between the current margin and the margin at minLiquidatorRatio\n uint256 requiredOverhead = Decimal.mul(cache.borrowValue, constants.minLiquidatorRatio);\n uint256 requiredSupplyValue = cache.borrowValue.add(requiredOverhead);\n uint256 remainingValueBuffer = cache.supplyValue.sub(requiredSupplyValue);\n\n // get the absolute difference between the minLiquidatorRatio and the liquidation spread\n Decimal.D256 memory spreadMarginDiff = Decimal.D256({\n value: constants.minLiquidatorRatio.value.sub(cache.spread.value)\n });\n\n // get the additional value of owedToken I can borrow to liquidate this position\n uint256 owedValueToTakeOn = Decimal.div(remainingValueBuffer, spreadMarginDiff);\n\n // get the additional amount of owedWei to liquidate\n uint256 owedWeiToLiquidate = owedValueToTakeOn.div(cache.owedPrice);\n\n // store the additional amount in the cache\n cache.toLiquidate = cache.toLiquidate.add(owedWeiToLiquidate);\n }\n\n // ============ Helper Functions ============\n\n /**\n * Make some basic checks before attempting to liquidate an account.\n * - Require that the msg.sender has the permission to use the liquidator account\n * - Require that the liquid account is liquidatable\n */\n function checkRequirements(\n Constants memory constants\n )\n private\n view\n {\n // check credentials for msg.sender\n Require.that(\n constants.solidAccount.owner == msg.sender\n || constants.dolomiteMargin.getIsLocalOperator(constants.solidAccount.owner, msg.sender),\n FILE,\n \"Sender not operator\",\n constants.solidAccount.owner\n );\n\n // require that the liquidAccount is liquidatable\n (\n Monetary.Value memory liquidSupplyValue,\n Monetary.Value memory liquidBorrowValue\n ) = getAdjustedAccountValues(\n constants.dolomiteMargin,\n constants.markets,\n constants.liquidAccount,\n constants.liquidMarkets\n );\n Require.that(\n liquidSupplyValue.value != 0,\n FILE,\n \"Liquid account no supply\"\n );\n Require.that(\n constants.dolomiteMargin.getAccountStatus(constants.liquidAccount) == Account.Status.Liquid ||\n !isCollateralized(\n liquidSupplyValue.value,\n liquidBorrowValue.value,\n constants.dolomiteMargin.getMarginRatio()\n ),\n FILE,\n \"Liquid account not liquidatable\",\n liquidSupplyValue.value,\n liquidBorrowValue.value\n );\n }\n\n /**\n * Changes the cache values to reflect changing the heldWei and owedWei of the liquidator\n * account. Changes toLiquidate, heldWei, owedWei, supplyValue, and borrowValue.\n */\n function setCacheWeiValues(\n LiquidatorProxyCache memory cache,\n Types.Wei memory newHeldWei,\n Types.Wei memory newOwedWei\n )\n private\n pure\n {\n // roll-back the old held value\n uint256 oldHeldValue = cache.heldWei.value.mul(cache.heldPrice);\n if (cache.heldWei.sign) {\n cache.supplyValue = cache.supplyValue.sub(oldHeldValue, \"cache.heldWei.sign\");\n } else {\n cache.borrowValue = cache.borrowValue.sub(oldHeldValue, \"!cache.heldWei.sign\");\n }\n\n // add the new held value\n uint256 newHeldValue = newHeldWei.value.mul(cache.heldPrice);\n if (newHeldWei.sign) {\n cache.supplyValue = cache.supplyValue.add(newHeldValue);\n } else {\n cache.borrowValue = cache.borrowValue.add(newHeldValue);\n }\n\n // roll-back the old owed value\n uint256 oldOwedValue = cache.owedWei.value.mul(cache.owedPrice);\n if (cache.owedWei.sign) {\n cache.supplyValue = cache.supplyValue.sub(oldOwedValue, \"cache.owedWei.sign\");\n } else {\n cache.borrowValue = cache.borrowValue.sub(oldOwedValue, \"!cache.owedWei.sign\");\n }\n\n // add the new owed value\n uint256 newOwedValue = newOwedWei.value.mul(cache.owedPrice);\n if (newOwedWei.sign) {\n cache.supplyValue = cache.supplyValue.add(newOwedValue);\n } else {\n cache.borrowValue = cache.borrowValue.add(newOwedValue);\n }\n\n // update toLiquidate, heldWei, and owedWei\n Types.Wei memory delta = cache.owedWei.sub(newOwedWei);\n assert(!delta.isNegative());\n cache.toLiquidate = cache.toLiquidate.add(delta.value);\n cache.heldWei = newHeldWei;\n cache.owedWei = newOwedWei;\n }\n\n /**\n * Returns true if the supplyValue over-collateralizes the borrowValue by the ratio.\n */\n function isCollateralized(\n uint256 supplyValue,\n uint256 borrowValue,\n Decimal.D256 memory ratio\n )\n private\n pure\n returns(bool)\n {\n uint256 requiredMargin = Decimal.mul(borrowValue, ratio);\n return supplyValue >= borrowValue.add(requiredMargin);\n }\n\n // ============ Getter Functions ============\n\n /**\n * Pre-populates cache values for some pair of markets.\n */\n function initializeCache(\n Constants memory constants,\n uint256 heldMarket,\n uint256 owedMarket\n )\n private\n view\n returns (LiquidatorProxyCache memory)\n {\n (\n Monetary.Value memory supplyValue,\n Monetary.Value memory borrowValue\n ) = getAccountValues(\n constants.dolomiteMargin,\n constants.markets,\n constants.solidAccount,\n constants.dolomiteMargin.getAccountMarketsWithNonZeroBalances(constants.solidAccount)\n );\n\n MarketInfo memory heldMarketInfo = binarySearch(constants.markets, heldMarket);\n MarketInfo memory owedMarketInfo = binarySearch(constants.markets, owedMarket);\n\n uint256 heldPrice = heldMarketInfo.price.value;\n uint256 owedPrice = owedMarketInfo.price.value;\n Decimal.D256 memory spread = constants.dolomiteMargin.getLiquidationSpreadForPair(heldMarket, owedMarket);\n\n return LiquidatorProxyCache({\n heldWei: Interest.parToWei(\n constants.dolomiteMargin.getAccountPar(constants.solidAccount, heldMarket),\n heldMarketInfo.index\n ),\n owedWei: Interest.parToWei(\n constants.dolomiteMargin.getAccountPar(constants.solidAccount, owedMarket),\n owedMarketInfo.index\n ),\n toLiquidate: 0,\n supplyValue: supplyValue.value,\n borrowValue: borrowValue.value,\n heldMarket: heldMarket,\n owedMarket: owedMarket,\n spread: spread,\n heldPrice: heldPrice,\n owedPrice: owedPrice,\n owedPriceAdj: Decimal.mul(owedPrice, Decimal.onePlus(spread))\n });\n }\n\n // ============ Operation-Construction Functions ============\n\n function constructAccountsArray(\n Constants memory constants\n )\n private\n pure\n returns (Account.Info[] memory)\n {\n Account.Info[] memory accounts = new Account.Info[](2);\n accounts[0] = constants.solidAccount;\n accounts[1] = constants.liquidAccount;\n return accounts;\n }\n\n function constructActionsArray(\n LiquidatorProxyCache memory cache\n )\n private\n pure\n returns (Actions.ActionArgs[] memory)\n {\n Actions.ActionArgs[] memory actions = new Actions.ActionArgs[](1);\n actions[0] = Actions.ActionArgs({\n actionType: Actions.ActionType.Liquidate,\n accountId: 0,\n amount: Types.AssetAmount({\n sign: true,\n denomination: Types.AssetDenomination.Wei,\n ref: Types.AssetReference.Delta,\n value: cache.toLiquidate\n }),\n primaryMarketId: cache.owedMarket,\n secondaryMarketId: cache.heldMarket,\n otherAddress: address(0),\n otherAccountId: 1,\n data: new bytes(0)\n });\n return actions;\n }\n}\n",
|
|
109
|
-
"sourcePath": "/
|
|
109
|
+
"sourcePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/proxies/LiquidatorProxyV1.sol",
|
|
110
110
|
"ast": {
|
|
111
|
-
"absolutePath": "/
|
|
111
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/proxies/LiquidatorProxyV1.sol",
|
|
112
112
|
"exportedSymbols": {
|
|
113
113
|
"LiquidatorProxyV1": [
|
|
114
114
|
12834
|
|
@@ -170,7 +170,7 @@
|
|
|
170
170
|
"unitAlias": ""
|
|
171
171
|
},
|
|
172
172
|
{
|
|
173
|
-
"absolutePath": "/
|
|
173
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IDolomiteMargin.sol",
|
|
174
174
|
"file": "../../protocol/interfaces/IDolomiteMargin.sol",
|
|
175
175
|
"id": 11764,
|
|
176
176
|
"nodeType": "ImportDirective",
|
|
@@ -186,7 +186,7 @@
|
|
|
186
186
|
"unitAlias": ""
|
|
187
187
|
},
|
|
188
188
|
{
|
|
189
|
-
"absolutePath": "/
|
|
189
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Account.sol",
|
|
190
190
|
"file": "../../protocol/lib/Account.sol",
|
|
191
191
|
"id": 11766,
|
|
192
192
|
"nodeType": "ImportDirective",
|
|
@@ -202,7 +202,7 @@
|
|
|
202
202
|
"unitAlias": ""
|
|
203
203
|
},
|
|
204
204
|
{
|
|
205
|
-
"absolutePath": "/
|
|
205
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Actions.sol",
|
|
206
206
|
"file": "../../protocol/lib/Actions.sol",
|
|
207
207
|
"id": 11768,
|
|
208
208
|
"nodeType": "ImportDirective",
|
|
@@ -218,7 +218,7 @@
|
|
|
218
218
|
"unitAlias": ""
|
|
219
219
|
},
|
|
220
220
|
{
|
|
221
|
-
"absolutePath": "/
|
|
221
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Decimal.sol",
|
|
222
222
|
"file": "../../protocol/lib/Decimal.sol",
|
|
223
223
|
"id": 11770,
|
|
224
224
|
"nodeType": "ImportDirective",
|
|
@@ -234,7 +234,7 @@
|
|
|
234
234
|
"unitAlias": ""
|
|
235
235
|
},
|
|
236
236
|
{
|
|
237
|
-
"absolutePath": "/
|
|
237
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Interest.sol",
|
|
238
238
|
"file": "../../protocol/lib/Interest.sol",
|
|
239
239
|
"id": 11772,
|
|
240
240
|
"nodeType": "ImportDirective",
|
|
@@ -250,7 +250,7 @@
|
|
|
250
250
|
"unitAlias": ""
|
|
251
251
|
},
|
|
252
252
|
{
|
|
253
|
-
"absolutePath": "/
|
|
253
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Math.sol",
|
|
254
254
|
"file": "../../protocol/lib/Math.sol",
|
|
255
255
|
"id": 11774,
|
|
256
256
|
"nodeType": "ImportDirective",
|
|
@@ -266,7 +266,7 @@
|
|
|
266
266
|
"unitAlias": ""
|
|
267
267
|
},
|
|
268
268
|
{
|
|
269
|
-
"absolutePath": "/
|
|
269
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Monetary.sol",
|
|
270
270
|
"file": "../../protocol/lib/Monetary.sol",
|
|
271
271
|
"id": 11776,
|
|
272
272
|
"nodeType": "ImportDirective",
|
|
@@ -282,7 +282,7 @@
|
|
|
282
282
|
"unitAlias": ""
|
|
283
283
|
},
|
|
284
284
|
{
|
|
285
|
-
"absolutePath": "/
|
|
285
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Require.sol",
|
|
286
286
|
"file": "../../protocol/lib/Require.sol",
|
|
287
287
|
"id": 11778,
|
|
288
288
|
"nodeType": "ImportDirective",
|
|
@@ -298,7 +298,7 @@
|
|
|
298
298
|
"unitAlias": ""
|
|
299
299
|
},
|
|
300
300
|
{
|
|
301
|
-
"absolutePath": "/
|
|
301
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Types.sol",
|
|
302
302
|
"file": "../../protocol/lib/Types.sol",
|
|
303
303
|
"id": 11780,
|
|
304
304
|
"nodeType": "ImportDirective",
|
|
@@ -314,7 +314,7 @@
|
|
|
314
314
|
"unitAlias": ""
|
|
315
315
|
},
|
|
316
316
|
{
|
|
317
|
-
"absolutePath": "/
|
|
317
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/helpers/LiquidatorProxyHelper.sol",
|
|
318
318
|
"file": "../helpers/LiquidatorProxyHelper.sol",
|
|
319
319
|
"id": 11782,
|
|
320
320
|
"nodeType": "ImportDirective",
|
|
@@ -330,7 +330,7 @@
|
|
|
330
330
|
"unitAlias": ""
|
|
331
331
|
},
|
|
332
332
|
{
|
|
333
|
-
"absolutePath": "/
|
|
333
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/helpers/OnlyDolomiteMargin.sol",
|
|
334
334
|
"file": "../helpers/OnlyDolomiteMargin.sol",
|
|
335
335
|
"id": 11784,
|
|
336
336
|
"nodeType": "ImportDirective",
|
|
@@ -14608,7 +14608,7 @@
|
|
|
14608
14608
|
"src": "603:17822:29"
|
|
14609
14609
|
},
|
|
14610
14610
|
"legacyAST": {
|
|
14611
|
-
"absolutePath": "/
|
|
14611
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/proxies/LiquidatorProxyV1.sol",
|
|
14612
14612
|
"exportedSymbols": {
|
|
14613
14613
|
"LiquidatorProxyV1": [
|
|
14614
14614
|
12834
|
|
@@ -14670,7 +14670,7 @@
|
|
|
14670
14670
|
"unitAlias": ""
|
|
14671
14671
|
},
|
|
14672
14672
|
{
|
|
14673
|
-
"absolutePath": "/
|
|
14673
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/interfaces/IDolomiteMargin.sol",
|
|
14674
14674
|
"file": "../../protocol/interfaces/IDolomiteMargin.sol",
|
|
14675
14675
|
"id": 11764,
|
|
14676
14676
|
"nodeType": "ImportDirective",
|
|
@@ -14686,7 +14686,7 @@
|
|
|
14686
14686
|
"unitAlias": ""
|
|
14687
14687
|
},
|
|
14688
14688
|
{
|
|
14689
|
-
"absolutePath": "/
|
|
14689
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Account.sol",
|
|
14690
14690
|
"file": "../../protocol/lib/Account.sol",
|
|
14691
14691
|
"id": 11766,
|
|
14692
14692
|
"nodeType": "ImportDirective",
|
|
@@ -14702,7 +14702,7 @@
|
|
|
14702
14702
|
"unitAlias": ""
|
|
14703
14703
|
},
|
|
14704
14704
|
{
|
|
14705
|
-
"absolutePath": "/
|
|
14705
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Actions.sol",
|
|
14706
14706
|
"file": "../../protocol/lib/Actions.sol",
|
|
14707
14707
|
"id": 11768,
|
|
14708
14708
|
"nodeType": "ImportDirective",
|
|
@@ -14718,7 +14718,7 @@
|
|
|
14718
14718
|
"unitAlias": ""
|
|
14719
14719
|
},
|
|
14720
14720
|
{
|
|
14721
|
-
"absolutePath": "/
|
|
14721
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Decimal.sol",
|
|
14722
14722
|
"file": "../../protocol/lib/Decimal.sol",
|
|
14723
14723
|
"id": 11770,
|
|
14724
14724
|
"nodeType": "ImportDirective",
|
|
@@ -14734,7 +14734,7 @@
|
|
|
14734
14734
|
"unitAlias": ""
|
|
14735
14735
|
},
|
|
14736
14736
|
{
|
|
14737
|
-
"absolutePath": "/
|
|
14737
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Interest.sol",
|
|
14738
14738
|
"file": "../../protocol/lib/Interest.sol",
|
|
14739
14739
|
"id": 11772,
|
|
14740
14740
|
"nodeType": "ImportDirective",
|
|
@@ -14750,7 +14750,7 @@
|
|
|
14750
14750
|
"unitAlias": ""
|
|
14751
14751
|
},
|
|
14752
14752
|
{
|
|
14753
|
-
"absolutePath": "/
|
|
14753
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Math.sol",
|
|
14754
14754
|
"file": "../../protocol/lib/Math.sol",
|
|
14755
14755
|
"id": 11774,
|
|
14756
14756
|
"nodeType": "ImportDirective",
|
|
@@ -14766,7 +14766,7 @@
|
|
|
14766
14766
|
"unitAlias": ""
|
|
14767
14767
|
},
|
|
14768
14768
|
{
|
|
14769
|
-
"absolutePath": "/
|
|
14769
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Monetary.sol",
|
|
14770
14770
|
"file": "../../protocol/lib/Monetary.sol",
|
|
14771
14771
|
"id": 11776,
|
|
14772
14772
|
"nodeType": "ImportDirective",
|
|
@@ -14782,7 +14782,7 @@
|
|
|
14782
14782
|
"unitAlias": ""
|
|
14783
14783
|
},
|
|
14784
14784
|
{
|
|
14785
|
-
"absolutePath": "/
|
|
14785
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Require.sol",
|
|
14786
14786
|
"file": "../../protocol/lib/Require.sol",
|
|
14787
14787
|
"id": 11778,
|
|
14788
14788
|
"nodeType": "ImportDirective",
|
|
@@ -14798,7 +14798,7 @@
|
|
|
14798
14798
|
"unitAlias": ""
|
|
14799
14799
|
},
|
|
14800
14800
|
{
|
|
14801
|
-
"absolutePath": "/
|
|
14801
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/protocol/lib/Types.sol",
|
|
14802
14802
|
"file": "../../protocol/lib/Types.sol",
|
|
14803
14803
|
"id": 11780,
|
|
14804
14804
|
"nodeType": "ImportDirective",
|
|
@@ -14814,7 +14814,7 @@
|
|
|
14814
14814
|
"unitAlias": ""
|
|
14815
14815
|
},
|
|
14816
14816
|
{
|
|
14817
|
-
"absolutePath": "/
|
|
14817
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/helpers/LiquidatorProxyHelper.sol",
|
|
14818
14818
|
"file": "../helpers/LiquidatorProxyHelper.sol",
|
|
14819
14819
|
"id": 11782,
|
|
14820
14820
|
"nodeType": "ImportDirective",
|
|
@@ -14830,7 +14830,7 @@
|
|
|
14830
14830
|
"unitAlias": ""
|
|
14831
14831
|
},
|
|
14832
14832
|
{
|
|
14833
|
-
"absolutePath": "/
|
|
14833
|
+
"absolutePath": "/Users/corey/Leavitt-Innovations/dolomite-v2-protocol/contracts/external/helpers/OnlyDolomiteMargin.sol",
|
|
14834
14834
|
"file": "../helpers/OnlyDolomiteMargin.sol",
|
|
14835
14835
|
"id": 11784,
|
|
14836
14836
|
"nodeType": "ImportDirective",
|
|
@@ -29116,17 +29116,11 @@
|
|
|
29116
29116
|
"events": {},
|
|
29117
29117
|
"links": {},
|
|
29118
29118
|
"address": "0xc0b3B62DD0400E4baa721DdEc9B8A384147b23fF",
|
|
29119
|
-
"transactionHash": "
|
|
29120
|
-
},
|
|
29121
|
-
"80001": {
|
|
29122
|
-
"events": {},
|
|
29123
|
-
"links": {},
|
|
29124
|
-
"address": "0xB96374dF791905Bea6636024367C1CF18BcC5729",
|
|
29125
|
-
"transactionHash": "0xfb89c7a8ec25f7054a575123cf43e823f3bf7842261a412163a41c86778fe802"
|
|
29119
|
+
"transactionHash": "0x2db71002c493efd09627ef5f52509924d469967889ceafd9419e847914d6bb4c"
|
|
29126
29120
|
}
|
|
29127
29121
|
},
|
|
29128
29122
|
"schemaVersion": "3.0.23",
|
|
29129
|
-
"updatedAt": "2022-02-
|
|
29123
|
+
"updatedAt": "2022-02-07T07:18:44.966Z",
|
|
29130
29124
|
"devdoc": {
|
|
29131
29125
|
"author": "dYdX * Contract for liquidating other accounts in DolomiteMargin.",
|
|
29132
29126
|
"methods": {
|