{
  "_format": "hh-sol-artifact-1",
  "contractName": "StakingProxy",
  "sourceName": "contracts/governance/Staking/StakingProxy.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "SOV",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_oldImplementation",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_newImplementation",
          "type": "address"
        }
      ],
      "name": "ImplementationChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_oldOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "payable": true,
      "stateMutability": "payable",
      "type": "fallback"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "DELEGATION_TYPEHASH",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "DOMAIN_TYPEHASH",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "MAX_DURATION",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "MAX_VOTING_WEIGHT",
      "outputs": [
        {
          "internalType": "uint96",
          "name": "",
          "type": "uint96"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "SOVToken",
      "outputs": [
        {
          "internalType": "contract IERC20",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "WEIGHT_FACTOR",
      "outputs": [
        {
          "internalType": "uint96",
          "name": "",
          "type": "uint96"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "admins",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "allUnlocked",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint32",
          "name": "",
          "type": "uint32"
        }
      ],
      "name": "delegateStakingCheckpoints",
      "outputs": [
        {
          "internalType": "uint32",
          "name": "fromBlock",
          "type": "uint32"
        },
        {
          "internalType": "uint96",
          "name": "stake",
          "type": "uint96"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "delegates",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "feeSharing",
      "outputs": [
        {
          "internalType": "contract IFeeSharingProxy",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getImplementation",
      "outputs": [
        {
          "internalType": "address",
          "name": "_implementation",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getProxyOwner",
      "outputs": [
        {
          "internalType": "address",
          "name": "_owner",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "isOwner",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "kickoffTS",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "newStakingContract",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "nonces",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "numDelegateStakingCheckpoints",
      "outputs": [
        {
          "internalType": "uint32",
          "name": "",
          "type": "uint32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "numTotalStakingCheckpoints",
      "outputs": [
        {
          "internalType": "uint32",
          "name": "",
          "type": "uint32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "numUserStakingCheckpoints",
      "outputs": [
        {
          "internalType": "uint32",
          "name": "",
          "type": "uint32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "_implementation",
          "type": "address"
        }
      ],
      "name": "setImplementation",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "_owner",
          "type": "address"
        }
      ],
      "name": "setProxyOwner",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint32",
          "name": "",
          "type": "uint32"
        }
      ],
      "name": "totalStakingCheckpoints",
      "outputs": [
        {
          "internalType": "uint32",
          "name": "fromBlock",
          "type": "uint32"
        },
        {
          "internalType": "uint96",
          "name": "stake",
          "type": "uint96"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint32",
          "name": "",
          "type": "uint32"
        }
      ],
      "name": "userStakingCheckpoints",
      "outputs": [
        {
          "internalType": "uint32",
          "name": "fromBlock",
          "type": "uint32"
        },
        {
          "internalType": "uint96",
          "name": "stake",
          "type": "uint96"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "vestingCodeHashes",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "vestingRegistryLogic",
      "outputs": [
        {
          "internalType": "contract VestingRegistryLogic",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "vestingWhitelist",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "weightScaling",
      "outputs": [
        {
          "internalType": "uint96",
          "name": "",
          "type": "uint96"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60c0604052600a608081905269534f565374616b696e6760b01b60a09081526200002d9160029190620001ea565b506005805460ff19169055600d80546001600160a01b0316600360a01b1790553480156200005a57600080fd5b506040516200115338038062001153833981810160405260208110156200008057600080fd5b50516000620000976001600160e01b036200010e16565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350916000805160206200110e833981519152908290a350620000e4336001600160e01b036200011316565b600380546001600160a01b0319166001600160a01b0392909216919091179055426001556200028c565b335b90565b6001600160a01b0381166200015a5760405162461bcd60e51b81526004018080602001828103825260258152602001806200112e6025913960400191505060405180910390fd5b6001600160a01b038116620001776001600160e01b03620001c216565b6001600160a01b03166000805160206200110e83398151915260405160405180910390a3604080516e35b2bc97383937bc3c9737bbb732b960891b8152905190819003600f01902055565b604080516e35b2bc97383937bc3c9737bbb732b960891b8152905190819003600f0190205490565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200022d57805160ff19168380011785556200025d565b828001600101855582156200025d579182015b828111156200025d57825182559160200191906001019062000240565b506200026b9291506200026f565b5090565b6200011091905b808211156200026b576000815560010162000276565b610e72806200029c6000396000f3fe6080604052600436106101cc5760003560e01c806394c2ce58116100f7578063bf626ec111610095578063db27ec1811610064578063db27ec181461066d578063dfb267c2146106a6578063e7a324dc146106dc578063f2fde38b146106f1576101cc565b8063bf626ec1146105db578063caaee91c146105f0578063d27569e714610625578063d784d4261461063a576101cc565b8063aaf10f42116100d1578063aaf10f4214610569578063adae90021461057e578063ae81dfe4146105b1578063b1724b46146105c6576101cc565b806394c2ce58146105065780639929e8861461053f578063a58848c514610554576101cc565b806327dd1b001161016f5780637ecebe001161013e5780637ecebe00146104665780638da5cb5b146104995780638f32d59b146104ae5780639436e7d4146104c3576101cc565b806327dd1b0014610348578063429b62e51461038157806368cefccc146103b45780636b6fde0e14610421576101cc565b8063104932cf116101ab578063104932cf146102d857806317748adc146102ed5780631ab7710d1461031e57806320606b7014610333576101cc565b8062073f991461024257806303a18fa31461026957806307392cc01461029a575b60006101d6610724565b90506001600160a01b03811661021d5760405162461bcd60e51b8152600401808060200182810382526023815260200180610df66023913960400191505060405180910390fd5b60405136600082376000803683855af43d806000843e81801561023e578184f35b8184fd5b34801561024e57600080fd5b5061025761074f565b60408051918252519081900360200190f35b34801561027557600080fd5b5061027e610755565b604080516001600160a01b039092168252519081900360200190f35b3480156102a657600080fd5b506102c4600480360360208110156102bd57600080fd5b5035610764565b604080519115158252519081900360200190f35b3480156102e457600080fd5b5061027e610779565b3480156102f957600080fd5b50610302610788565b604080516001600160601b039092168252519081900360200190f35b34801561032a57600080fd5b5061027e61078d565b34801561033f57600080fd5b506102576107b5565b34801561035457600080fd5b5061027e6004803603604081101561036b57600080fd5b506001600160a01b0381351690602001356107d0565b34801561038d57600080fd5b506102c4600480360360208110156103a457600080fd5b50356001600160a01b03166107f6565b3480156103c057600080fd5b506103f9600480360360608110156103d757600080fd5b5080356001600160a01b0316906020810135906040013563ffffffff1661080b565b6040805163ffffffff90931683526001600160601b0390911660208301528051918290030190f35b34801561042d57600080fd5b506103f96004803603606081101561044457600080fd5b5080356001600160a01b0316906020810135906040013563ffffffff16610847565b34801561047257600080fd5b506102576004803603602081101561048957600080fd5b50356001600160a01b0316610883565b3480156104a557600080fd5b5061027e610895565b3480156104ba57600080fd5b506102c46108a4565b3480156104cf57600080fd5b506104ed600480360360208110156104e657600080fd5b50356108c8565b6040805163ffffffff9092168252519081900360200190f35b34801561051257600080fd5b506104ed6004803603604081101561052957600080fd5b506001600160a01b0381351690602001356108e0565b34801561054b57600080fd5b506102c4610903565b34801561056057600080fd5b5061027e61090c565b34801561057557600080fd5b5061027e610724565b34801561058a57600080fd5b506102c4600480360360208110156105a157600080fd5b50356001600160a01b031661091b565b3480156105bd57600080fd5b5061027e610930565b3480156105d257600080fd5b50610257610944565b3480156105e757600080fd5b5061030261094c565b3480156105fc57600080fd5b506106236004803603602081101561061357600080fd5b50356001600160a01b0316610962565b005b34801561063157600080fd5b506103026109d3565b34801561064657600080fd5b506106236004803603602081101561065d57600080fd5b50356001600160a01b03166109d8565b34801561067957600080fd5b506104ed6004803603604081101561069057600080fd5b506001600160a01b038135169060200135610a46565b3480156106b257600080fd5b506103f9600480360360408110156106c957600080fd5b508035906020013563ffffffff16610a69565b3480156106e857600080fd5b50610257610a9f565b3480156106fd57600080fd5b506106236004803603602081101561071457600080fd5b50356001600160a01b0316610aba565b604080517135b2bc9734b6b83632b6b2b73a30ba34b7b760711b815290519081900360120190205490565b60015481565b600d546001600160a01b031681565b60106020526000908152604090205460ff1681565b6011546001600160a01b031681565b600981565b604080516e35b2bc97383937bc3c9737bbb732b960891b8152905190819003600f0190205490565b604051806043610d6882396043019050604051809103902081565b60046020908152600092835260408084209091529082529020546001600160a01b031681565b600f6020526000908152604090205460ff1681565b600a60209081526000938452604080852082529284528284209052825290205463ffffffff81169064010000000090046001600160601b031682565b600860209081526000938452604080852082529284528284209052825290205463ffffffff81169064010000000090046001600160601b031682565b600c6020526000908152604090205481565b6000546001600160a01b031690565b600080546001600160a01b03166108b9610b0b565b6001600160a01b031614905090565b60076020526000908152604090205463ffffffff1681565b600960209081526000928352604080842090915290825290205463ffffffff1681565b60055460ff1681565b6003546001600160a01b031681565b600e6020526000908152604090205460ff1681565b60055461010090046001600160a01b031681565b63059fa60081565b600d54600160a01b90046001600160601b031681565b61096a61078d565b6001600160a01b0316336001600160a01b0316146109c7576040805162461bcd60e51b8152602060048201526015602482015274141c9bde1e4e8e881858d8d95cdcc819195b9a5959605a1b604482015290519081900360640190fd5b6109d081610b0f565b50565b600a81565b6109e061078d565b6001600160a01b0316336001600160a01b031614610a3d576040805162461bcd60e51b8152602060048201526015602482015274141c9bde1e4e8e881858d8d95cdcc819195b9a5959605a1b604482015290519081900360640190fd5b6109d081610bc2565b600b60209081526000928352604080842090915290825290205463ffffffff1681565b600660209081526000928352604080842090915290825290205463ffffffff81169064010000000090046001600160601b031682565b60405180604b610dab8239604b019050604051809103902081565b610ac26108a4565b610b02576040805162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b604482015290519081900360640190fd5b6109d081610c78565b3390565b6001600160a01b038116610b545760405162461bcd60e51b8152600401808060200182810382526025815260200180610e196025913960400191505060405180910390fd5b806001600160a01b0316610b6661078d565b6001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3604080516e35b2bc97383937bc3c9737bbb732b960891b8152905190819003600f01902055565b6001600160a01b038116610c075760405162461bcd60e51b8152600401808060200182810382526029815260200180610d3f6029913960400191505060405180910390fd5b806001600160a01b0316610c19610724565b6001600160a01b03167fcfbf4028add9318bbf716f08c348595afb063b0e9feed1f86d33681a4b3ed4d360405160405180910390a3604080517135b2bc9734b6b83632b6b2b73a30ba34b7b760711b8152905190819003601201902055565b6001600160a01b038116610cbd5760405162461bcd60e51b8152600401808060200182810382526026815260200180610d196026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737350726f78793a3a736574496d706c656d656e746174696f6e3a20696e76616c69642061646472657373454950373132446f6d61696e28737472696e67206e616d652c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e74726163742944656c65676174696f6e28616464726573732064656c6567617465652c75696e74323536206c6f636b446174652c75696e74323536206e6f6e63652c75696e74323536206578706972792950726f78793a3a28293a20696d706c656d656e746174696f6e206e6f7420666f756e6450726f78793a3a73657450726f78794f776e65723a20696e76616c69642061646472657373a265627a7a72315820e833a5c2625147691199c0c1e76bb3a8522a2ea1c6082c18e848521a5951994564736f6c634300051100328be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e050726f78793a3a73657450726f78794f776e65723a20696e76616c69642061646472657373",
  "deployedBytecode": "0x6080604052600436106101cc5760003560e01c806394c2ce58116100f7578063bf626ec111610095578063db27ec1811610064578063db27ec181461066d578063dfb267c2146106a6578063e7a324dc146106dc578063f2fde38b146106f1576101cc565b8063bf626ec1146105db578063caaee91c146105f0578063d27569e714610625578063d784d4261461063a576101cc565b8063aaf10f42116100d1578063aaf10f4214610569578063adae90021461057e578063ae81dfe4146105b1578063b1724b46146105c6576101cc565b806394c2ce58146105065780639929e8861461053f578063a58848c514610554576101cc565b806327dd1b001161016f5780637ecebe001161013e5780637ecebe00146104665780638da5cb5b146104995780638f32d59b146104ae5780639436e7d4146104c3576101cc565b806327dd1b0014610348578063429b62e51461038157806368cefccc146103b45780636b6fde0e14610421576101cc565b8063104932cf116101ab578063104932cf146102d857806317748adc146102ed5780631ab7710d1461031e57806320606b7014610333576101cc565b8062073f991461024257806303a18fa31461026957806307392cc01461029a575b60006101d6610724565b90506001600160a01b03811661021d5760405162461bcd60e51b8152600401808060200182810382526023815260200180610df66023913960400191505060405180910390fd5b60405136600082376000803683855af43d806000843e81801561023e578184f35b8184fd5b34801561024e57600080fd5b5061025761074f565b60408051918252519081900360200190f35b34801561027557600080fd5b5061027e610755565b604080516001600160a01b039092168252519081900360200190f35b3480156102a657600080fd5b506102c4600480360360208110156102bd57600080fd5b5035610764565b604080519115158252519081900360200190f35b3480156102e457600080fd5b5061027e610779565b3480156102f957600080fd5b50610302610788565b604080516001600160601b039092168252519081900360200190f35b34801561032a57600080fd5b5061027e61078d565b34801561033f57600080fd5b506102576107b5565b34801561035457600080fd5b5061027e6004803603604081101561036b57600080fd5b506001600160a01b0381351690602001356107d0565b34801561038d57600080fd5b506102c4600480360360208110156103a457600080fd5b50356001600160a01b03166107f6565b3480156103c057600080fd5b506103f9600480360360608110156103d757600080fd5b5080356001600160a01b0316906020810135906040013563ffffffff1661080b565b6040805163ffffffff90931683526001600160601b0390911660208301528051918290030190f35b34801561042d57600080fd5b506103f96004803603606081101561044457600080fd5b5080356001600160a01b0316906020810135906040013563ffffffff16610847565b34801561047257600080fd5b506102576004803603602081101561048957600080fd5b50356001600160a01b0316610883565b3480156104a557600080fd5b5061027e610895565b3480156104ba57600080fd5b506102c46108a4565b3480156104cf57600080fd5b506104ed600480360360208110156104e657600080fd5b50356108c8565b6040805163ffffffff9092168252519081900360200190f35b34801561051257600080fd5b506104ed6004803603604081101561052957600080fd5b506001600160a01b0381351690602001356108e0565b34801561054b57600080fd5b506102c4610903565b34801561056057600080fd5b5061027e61090c565b34801561057557600080fd5b5061027e610724565b34801561058a57600080fd5b506102c4600480360360208110156105a157600080fd5b50356001600160a01b031661091b565b3480156105bd57600080fd5b5061027e610930565b3480156105d257600080fd5b50610257610944565b3480156105e757600080fd5b5061030261094c565b3480156105fc57600080fd5b506106236004803603602081101561061357600080fd5b50356001600160a01b0316610962565b005b34801561063157600080fd5b506103026109d3565b34801561064657600080fd5b506106236004803603602081101561065d57600080fd5b50356001600160a01b03166109d8565b34801561067957600080fd5b506104ed6004803603604081101561069057600080fd5b506001600160a01b038135169060200135610a46565b3480156106b257600080fd5b506103f9600480360360408110156106c957600080fd5b508035906020013563ffffffff16610a69565b3480156106e857600080fd5b50610257610a9f565b3480156106fd57600080fd5b506106236004803603602081101561071457600080fd5b50356001600160a01b0316610aba565b604080517135b2bc9734b6b83632b6b2b73a30ba34b7b760711b815290519081900360120190205490565b60015481565b600d546001600160a01b031681565b60106020526000908152604090205460ff1681565b6011546001600160a01b031681565b600981565b604080516e35b2bc97383937bc3c9737bbb732b960891b8152905190819003600f0190205490565b604051806043610d6882396043019050604051809103902081565b60046020908152600092835260408084209091529082529020546001600160a01b031681565b600f6020526000908152604090205460ff1681565b600a60209081526000938452604080852082529284528284209052825290205463ffffffff81169064010000000090046001600160601b031682565b600860209081526000938452604080852082529284528284209052825290205463ffffffff81169064010000000090046001600160601b031682565b600c6020526000908152604090205481565b6000546001600160a01b031690565b600080546001600160a01b03166108b9610b0b565b6001600160a01b031614905090565b60076020526000908152604090205463ffffffff1681565b600960209081526000928352604080842090915290825290205463ffffffff1681565b60055460ff1681565b6003546001600160a01b031681565b600e6020526000908152604090205460ff1681565b60055461010090046001600160a01b031681565b63059fa60081565b600d54600160a01b90046001600160601b031681565b61096a61078d565b6001600160a01b0316336001600160a01b0316146109c7576040805162461bcd60e51b8152602060048201526015602482015274141c9bde1e4e8e881858d8d95cdcc819195b9a5959605a1b604482015290519081900360640190fd5b6109d081610b0f565b50565b600a81565b6109e061078d565b6001600160a01b0316336001600160a01b031614610a3d576040805162461bcd60e51b8152602060048201526015602482015274141c9bde1e4e8e881858d8d95cdcc819195b9a5959605a1b604482015290519081900360640190fd5b6109d081610bc2565b600b60209081526000928352604080842090915290825290205463ffffffff1681565b600660209081526000928352604080842090915290825290205463ffffffff81169064010000000090046001600160601b031682565b60405180604b610dab8239604b019050604051809103902081565b610ac26108a4565b610b02576040805162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b604482015290519081900360640190fd5b6109d081610c78565b3390565b6001600160a01b038116610b545760405162461bcd60e51b8152600401808060200182810382526025815260200180610e196025913960400191505060405180910390fd5b806001600160a01b0316610b6661078d565b6001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3604080516e35b2bc97383937bc3c9737bbb732b960891b8152905190819003600f01902055565b6001600160a01b038116610c075760405162461bcd60e51b8152600401808060200182810382526029815260200180610d3f6029913960400191505060405180910390fd5b806001600160a01b0316610c19610724565b6001600160a01b03167fcfbf4028add9318bbf716f08c348595afb063b0e9feed1f86d33681a4b3ed4d360405160405180910390a3604080517135b2bc9734b6b83632b6b2b73a30ba34b7b760711b8152905190819003601201902055565b6001600160a01b038116610cbd5760405162461bcd60e51b8152600401808060200182810382526026815260200180610d196026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737350726f78793a3a736574496d706c656d656e746174696f6e3a20696e76616c69642061646472657373454950373132446f6d61696e28737472696e67206e616d652c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e74726163742944656c65676174696f6e28616464726573732064656c6567617465652c75696e74323536206c6f636b446174652c75696e74323536206e6f6e63652c75696e74323536206578706972792950726f78793a3a28293a20696d706c656d656e746174696f6e206e6f7420666f756e6450726f78793a3a73657450726f78794f776e65723a20696e76616c69642061646472657373a265627a7a72315820e833a5c2625147691199c0c1e76bb3a8522a2ea1c6082c18e848521a5951994564736f6c63430005110032",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
