{
  "_format": "hh-sol-artifact-1",
  "contractName": "WAAVE",
  "sourceName": "contracts/__deprecated__/AssetWrappers/WAAVE.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "ERC20_symbol",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "ERC20_name",
          "type": "string"
        },
        {
          "internalType": "uint8",
          "name": "ERC20_decimals",
          "type": "uint8"
        },
        {
          "internalType": "contract IERC20",
          "name": "_aToken",
          "type": "address"
        },
        {
          "internalType": "contract IAaveIncentivesController",
          "name": "_aaveIncentivesController",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Approval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "SHAREOFFSET",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "aToken",
      "outputs": [
        {
          "internalType": "contract IERC20",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "aTokenArray",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "aavePerShare",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        }
      ],
      "name": "allowance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "approve",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_to",
          "type": "address"
        }
      ],
      "name": "claimReward",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "decimals",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "subtractedValue",
          "type": "uint256"
        }
      ],
      "name": "decreaseAllowance",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "endTreasuryReward",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_for",
          "type": "address"
        }
      ],
      "name": "getPendingRewards",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_user",
          "type": "address"
        }
      ],
      "name": "getUserInfo",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "addedValue",
          "type": "uint256"
        }
      ],
      "name": "increaseAllowance",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_activePool",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_VML",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_VMR",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_defaultPool",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_stabilityPool",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_VaultedgeFinanceTreasury",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_borrowerOperations",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_collSurplusPool",
          "type": "address"
        }
      ],
      "name": "setAddresses",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "symbol",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "transfer",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "transferFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "unwrap",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "unwrapFor",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "updateReward",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_to",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_rewardRecipient",
          "type": "address"
        }
      ],
      "name": "wrap",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x6001608081815260c06040529060a0602080368337505081516200002b926006925060200190620001ef565b5064e8d4a510006010553480156200004257600080fd5b5060405162001f0938038062001f098339810160408190526200006591620003a4565b8351849086906200007e90600390602085019062000259565b5080516200009490600490602084019062000259565b505050620000a8826200013e60201b60201c565b620000b3816200013e565b6011805461ff00191661010060ff861602179055600580546001600160a01b0319166001600160a01b03841690811790915560068054600090620000fb57620000fb62000492565b600091825260209091200180546001600160a01b039283166001600160a01b0319918216179091556007805493909216921691909117905550620004d792505050565b6001600160a01b0381166200019a5760405162461bcd60e51b815260206004820152601e60248201527f4163636f756e742063616e6e6f74206265207a65726f2061646472657373000060448201526064015b60405180910390fd5b803b80620001eb5760405162461bcd60e51b815260206004820181905260248201527f4163636f756e7420636f64652073697a652063616e6e6f74206265207a65726f604482015260640162000191565b5050565b82805482825590600052602060002090810192821562000247579160200282015b828111156200024757825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019062000210565b5062000255929150620002d6565b5090565b828054620002679062000455565b90600052602060002090601f0160209004810192826200028b576000855562000247565b82601f10620002a657805160ff191683800117855562000247565b8280016001018555821562000247579182015b8281111562000247578251825591602001919060010190620002b9565b5b80821115620002555760008155600101620002d7565b600082601f830112620002ff57600080fd5b81516001600160401b03808211156200031c576200031c620004a8565b604051601f8301601f19908116603f01168101908282118183101715620003475762000347620004a8565b816040528381526020925086838588010111156200036457600080fd5b600091505b8382101562000388578582018301518183018401529082019062000369565b838211156200039a5760008385830101525b9695505050505050565b600080600080600060a08688031215620003bd57600080fd5b85516001600160401b0380821115620003d557600080fd5b620003e389838a01620002ed565b96506020880151915080821115620003fa57600080fd5b506200040988828901620002ed565b945050604086015160ff811681146200042157600080fd5b60608701519093506200043481620004be565b60808701519092506200044781620004be565b809150509295509295909350565b600181811c908216806200046a57607f821691505b602082108114156200048c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114620004d457600080fd5b50565b611a2280620004e76000396000f3fe608060405234801561001057600080fd5b50600436106101985760003560e01c8063a0c1f15e116100e3578063cb337bb01161008c578063dd62ed3e11610066578063dd62ed3e14610379578063de0e9a3e146103b2578063f6ed2017146103c557600080fd5b8063cb337bb01461034d578063d279c19114610355578063d733cfd01461036657600080fd5b8063c2861f02116100bd578063c2861f021461031e578063c95d7dc614610327578063ca70560a1461033a57600080fd5b8063a0c1f15e146102cd578063a457c2d7146102f8578063a9059cbb1461030b57600080fd5b8063313ce5671161014557806370a082311161011f57806370a0823114610289578063932eeefe146102b257806395d89b41146102c557600080fd5b8063313ce5671461022b57806339509351146102485780636386c1c71461025b57600080fd5b806323b872dd1161017657806323b872dd146101f0578063261c80b6146102035780632c8e8dfa1461021857600080fd5b806306fdde031461019d578063095ea7b3146101bb57806318160ddd146101de575b600080fd5b6101a56103e6565b6040516101b291906118c0565b60405180910390f35b6101ce6101c9366004611771565b610478565b60405190151581526020016101b2565b6002545b6040519081526020016101b2565b6101ce6101fe366004611735565b610490565b610216610211366004611735565b6104b4565b005b610216610226366004611735565b6105ca565b601154610100900460ff1660405160ff90911681526020016101b2565b6101ce610256366004611771565b6105e2565b61026e610269366004611649565b610621565b604080519384526020840192909252908201526060016101b2565b6101e2610297366004611649565b6001600160a01b031660009081526020819052604090205490565b6102166102c03660046117ef565b6106dc565b6101a561088e565b6005546102e0906001600160a01b031681565b6040516001600160a01b0390911681526020016101b2565b6101ce610306366004611771565b61089d565b6101ce610319366004611771565b610947565b6101e260105481565b6102e06103353660046117bd565b610955565b610216610348366004611771565b61097f565b6101e26109a2565b610216610363366004611649565b50565b61021661037436600461169e565b610a76565b6101e261038736600461166b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6102166103c03660046117bd565b610b81565b6103d86103d3366004611649565b610c58565b6040516101b292919061183c565b6060600380546103f590611985565b80601f016020809104026020016040519081016040528092919081815260200182805461042190611985565b801561046e5780601f106104435761010080835404028352916020019161046e565b820191906000526020600020905b81548152906001019060200180831161045157829003601f168201915b5050505050905090565b600033610486818585610d4a565b5060019392505050565b60003361049e858285610ea2565b6104a9858585610f2e565b506001949350505050565b6104bc61111b565b6001600160a01b038316600090815260126020526040812060040180548392906104e790849061196e565b909155506104f7905033826111c7565b6005546001600160a01b031663a9059cbb83670de0b6b3a764000061051a6109a2565b610524908661194f565b61052e919061192d565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b15801561058c57600080fd5b505af11580156105a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c4919061179b565b50505050565b6105d2611330565b6105dd8383836113c9565b505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190610486908290869061061c908790611915565b610d4a565b6001600160a01b0381166000908152601260209081526040808320815160a081018352815481526001820154938101939093526002810154918301919091526003810154606083015260040154608082015281908190670de0b6b3a76400006106886109a2565b6001600160a01b0387166000908152602081905260409020546106ab919061194f565b6106b5919061192d565b6001600160a01b038616600090815260208190526040812054935093509350509193909250565b600e546001600160a01b0316331461077157336001600160a01b038416146107715760405162461bcd60e51b815260206004820152602b60248201527f574a4c503a206d73672e73656e64657220616e64205f66726f6d206d7573742060448201527f6265207468652073616d6500000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6005546040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018690526001600160a01b03909116906323b872dd90606401602060405180830381600087803b1580156107dc57600080fd5b505af11580156107f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610814919061179b565b50610842826108216109a2565b61083387670de0b6b3a764000061194f565b61083d919061192d565b611434565b6008546001600160a01b03838116911614156105c4576001600160a01b03811660009081526012602052604081206004018054869290610883908490611915565b909155505050505050565b6060600480546103f590611985565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091908381101561093a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610768565b6104a98286868403610d4a565b600033610486818585610f2e565b6006818154811061096557600080fd5b6000918252602090912001546001600160a01b0316905081565b6109876114f3565b600d5461099e906001600160a01b031683836113c9565b5050565b60006109ad60025490565b6109be5750670de0b6b3a764000090565b6002546005546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03909116906370a082319060240160206040518083038186803b158015610a1d57600080fd5b505afa158015610a31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5591906117d6565b610a6790670de0b6b3a764000061194f565b610a71919061192d565b905090565b60115460ff1615610a8657600080fd5b610a8f88611588565b610a9887611588565b610aa186611588565b610aaa85611588565b610ab384611588565b610abc83611588565b610ac582611588565b610ace81611588565b600880547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b039a8b1617909155600980548216988a1698909817909755600a8054881696891696909617909555600b8054871694881694909417909355600c8054861692871692909217909155600d80548516918616919091179055600e80548416918516919091179055600f805490921692169190911790556011805460ff19166001179055565b610b8b33826111c7565b6005546001600160a01b031663a9059cbb33670de0b6b3a7640000610bae6109a2565b610bb8908661194f565b610bc2919061192d565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b158015610c2057600080fd5b505af1158015610c34573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099e919061179b565b60408051600280825260608281019093528291600091816020016020820280368337505060408051600280825260608201835293945060009390925090602083019080368337505060055484519293506001600160a01b031691849150600090610cc457610cc46119d6565b60200260200101906001600160a01b031690816001600160a01b031681525050670de0b6b3a7640000610cf56109a2565b6001600160a01b038716600090815260208190526040902054610d18919061194f565b610d22919061192d565b81600081518110610d3557610d356119d6565b60209081029190910101529094909350915050565b6001600160a01b038316610dc55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610768565b6001600160a01b038216610e415760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610768565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981146105c45781811015610f215760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610768565b6105c48484848403610d4a565b6001600160a01b038316610faa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610768565b6001600160a01b0382166110265760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610768565b6001600160a01b038316600090815260208190526040902054818110156110b55760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610768565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36105c4565b6008546001600160a01b031633148061113e5750600c546001600160a01b031633145b806111535750600f546001600160a01b031633145b6111c55760405162461bcd60e51b815260206004820152602b60248201527f43616c6c6572206973206e6f742061637469766520706f6f6c206f722073746160448201527f62696c69747920706f6f6c0000000000000000000000000000000000000000006064820152608401610768565b565b6001600160a01b0382166112435760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610768565b6001600160a01b038216600090815260208190526040902054818110156112d25760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610768565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6009546001600160a01b03163314806113535750600a546001600160a01b031633145b806113685750600b546001600160a01b031633145b8061137d5750600e546001600160a01b031633145b6111c55760405162461bcd60e51b815260206004820152601160248201527f43616c6c6572206973206e6f74204c52440000000000000000000000000000006044820152606401610768565b6001600160a01b038316600090815260126020526040812060040180548392906113f490849061196e565b909155506113ff9050565b6001600160a01b0382166000908152601260205260408120600401805483929061142a908490611915565b9091555050505050565b6001600160a01b03821661148a5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610768565b806002600082825461149c9190611915565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600c546001600160a01b03163314806115165750600b546001600160a01b031633145b6111c55760405162461bcd60e51b815260206004820152602c60248201527f43616c6c6572206973206e6f742073746162696c69747920706f6f6c206f722060448201527f64656661756c7420706f6f6c00000000000000000000000000000000000000006064820152608401610768565b6001600160a01b0381166115de5760405162461bcd60e51b815260206004820152601e60248201527f4163636f756e742063616e6e6f74206265207a65726f206164647265737300006044820152606401610768565b803b8061099e5760405162461bcd60e51b815260206004820181905260248201527f4163636f756e7420636f64652073697a652063616e6e6f74206265207a65726f6044820152606401610768565b80356001600160a01b038116811461164457600080fd5b919050565b60006020828403121561165b57600080fd5b6116648261162d565b9392505050565b6000806040838503121561167e57600080fd5b6116878361162d565b91506116956020840161162d565b90509250929050565b600080600080600080600080610100898b0312156116bb57600080fd5b6116c48961162d565b97506116d260208a0161162d565b96506116e060408a0161162d565b95506116ee60608a0161162d565b94506116fc60808a0161162d565b935061170a60a08a0161162d565b925061171860c08a0161162d565b915061172660e08a0161162d565b90509295985092959890939650565b60008060006060848603121561174a57600080fd5b6117538461162d565b92506117616020850161162d565b9150604084013590509250925092565b6000806040838503121561178457600080fd5b61178d8361162d565b946020939093013593505050565b6000602082840312156117ad57600080fd5b8151801515811461166457600080fd5b6000602082840312156117cf57600080fd5b5035919050565b6000602082840312156117e857600080fd5b5051919050565b6000806000806080858703121561180557600080fd5b843593506118156020860161162d565b92506118236040860161162d565b91506118316060860161162d565b905092959194509250565b604080825283519082018190526000906020906060840190828701845b8281101561187e5781516001600160a01b031684529284019290840190600101611859565b5050508381038285015284518082528583019183019060005b818110156118b357835183529284019291840191600101611897565b5090979650505050505050565b600060208083528351808285015260005b818110156118ed578581018301518582016040015282016118d1565b818111156118ff576000604083870101525b50601f01601f1916929092016040019392505050565b60008219821115611928576119286119c0565b500190565b60008261194a57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611969576119696119c0565b500290565b600082821015611980576119806119c0565b500390565b600181811c9082168061199957607f821691505b602082108114156119ba57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea26469706673582212206e4ee9acad841e8a7312ff6d6d2d3b6384ce8b62d4938bfdf714ed6a1c67c3dd64736f6c63430008070033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101985760003560e01c8063a0c1f15e116100e3578063cb337bb01161008c578063dd62ed3e11610066578063dd62ed3e14610379578063de0e9a3e146103b2578063f6ed2017146103c557600080fd5b8063cb337bb01461034d578063d279c19114610355578063d733cfd01461036657600080fd5b8063c2861f02116100bd578063c2861f021461031e578063c95d7dc614610327578063ca70560a1461033a57600080fd5b8063a0c1f15e146102cd578063a457c2d7146102f8578063a9059cbb1461030b57600080fd5b8063313ce5671161014557806370a082311161011f57806370a0823114610289578063932eeefe146102b257806395d89b41146102c557600080fd5b8063313ce5671461022b57806339509351146102485780636386c1c71461025b57600080fd5b806323b872dd1161017657806323b872dd146101f0578063261c80b6146102035780632c8e8dfa1461021857600080fd5b806306fdde031461019d578063095ea7b3146101bb57806318160ddd146101de575b600080fd5b6101a56103e6565b6040516101b291906118c0565b60405180910390f35b6101ce6101c9366004611771565b610478565b60405190151581526020016101b2565b6002545b6040519081526020016101b2565b6101ce6101fe366004611735565b610490565b610216610211366004611735565b6104b4565b005b610216610226366004611735565b6105ca565b601154610100900460ff1660405160ff90911681526020016101b2565b6101ce610256366004611771565b6105e2565b61026e610269366004611649565b610621565b604080519384526020840192909252908201526060016101b2565b6101e2610297366004611649565b6001600160a01b031660009081526020819052604090205490565b6102166102c03660046117ef565b6106dc565b6101a561088e565b6005546102e0906001600160a01b031681565b6040516001600160a01b0390911681526020016101b2565b6101ce610306366004611771565b61089d565b6101ce610319366004611771565b610947565b6101e260105481565b6102e06103353660046117bd565b610955565b610216610348366004611771565b61097f565b6101e26109a2565b610216610363366004611649565b50565b61021661037436600461169e565b610a76565b6101e261038736600461166b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6102166103c03660046117bd565b610b81565b6103d86103d3366004611649565b610c58565b6040516101b292919061183c565b6060600380546103f590611985565b80601f016020809104026020016040519081016040528092919081815260200182805461042190611985565b801561046e5780601f106104435761010080835404028352916020019161046e565b820191906000526020600020905b81548152906001019060200180831161045157829003601f168201915b5050505050905090565b600033610486818585610d4a565b5060019392505050565b60003361049e858285610ea2565b6104a9858585610f2e565b506001949350505050565b6104bc61111b565b6001600160a01b038316600090815260126020526040812060040180548392906104e790849061196e565b909155506104f7905033826111c7565b6005546001600160a01b031663a9059cbb83670de0b6b3a764000061051a6109a2565b610524908661194f565b61052e919061192d565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b15801561058c57600080fd5b505af11580156105a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c4919061179b565b50505050565b6105d2611330565b6105dd8383836113c9565b505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190610486908290869061061c908790611915565b610d4a565b6001600160a01b0381166000908152601260209081526040808320815160a081018352815481526001820154938101939093526002810154918301919091526003810154606083015260040154608082015281908190670de0b6b3a76400006106886109a2565b6001600160a01b0387166000908152602081905260409020546106ab919061194f565b6106b5919061192d565b6001600160a01b038616600090815260208190526040812054935093509350509193909250565b600e546001600160a01b0316331461077157336001600160a01b038416146107715760405162461bcd60e51b815260206004820152602b60248201527f574a4c503a206d73672e73656e64657220616e64205f66726f6d206d7573742060448201527f6265207468652073616d6500000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6005546040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018690526001600160a01b03909116906323b872dd90606401602060405180830381600087803b1580156107dc57600080fd5b505af11580156107f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610814919061179b565b50610842826108216109a2565b61083387670de0b6b3a764000061194f565b61083d919061192d565b611434565b6008546001600160a01b03838116911614156105c4576001600160a01b03811660009081526012602052604081206004018054869290610883908490611915565b909155505050505050565b6060600480546103f590611985565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091908381101561093a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610768565b6104a98286868403610d4a565b600033610486818585610f2e565b6006818154811061096557600080fd5b6000918252602090912001546001600160a01b0316905081565b6109876114f3565b600d5461099e906001600160a01b031683836113c9565b5050565b60006109ad60025490565b6109be5750670de0b6b3a764000090565b6002546005546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03909116906370a082319060240160206040518083038186803b158015610a1d57600080fd5b505afa158015610a31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5591906117d6565b610a6790670de0b6b3a764000061194f565b610a71919061192d565b905090565b60115460ff1615610a8657600080fd5b610a8f88611588565b610a9887611588565b610aa186611588565b610aaa85611588565b610ab384611588565b610abc83611588565b610ac582611588565b610ace81611588565b600880547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b039a8b1617909155600980548216988a1698909817909755600a8054881696891696909617909555600b8054871694881694909417909355600c8054861692871692909217909155600d80548516918616919091179055600e80548416918516919091179055600f805490921692169190911790556011805460ff19166001179055565b610b8b33826111c7565b6005546001600160a01b031663a9059cbb33670de0b6b3a7640000610bae6109a2565b610bb8908661194f565b610bc2919061192d565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b158015610c2057600080fd5b505af1158015610c34573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099e919061179b565b60408051600280825260608281019093528291600091816020016020820280368337505060408051600280825260608201835293945060009390925090602083019080368337505060055484519293506001600160a01b031691849150600090610cc457610cc46119d6565b60200260200101906001600160a01b031690816001600160a01b031681525050670de0b6b3a7640000610cf56109a2565b6001600160a01b038716600090815260208190526040902054610d18919061194f565b610d22919061192d565b81600081518110610d3557610d356119d6565b60209081029190910101529094909350915050565b6001600160a01b038316610dc55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610768565b6001600160a01b038216610e415760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610768565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981146105c45781811015610f215760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610768565b6105c48484848403610d4a565b6001600160a01b038316610faa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610768565b6001600160a01b0382166110265760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610768565b6001600160a01b038316600090815260208190526040902054818110156110b55760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610768565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36105c4565b6008546001600160a01b031633148061113e5750600c546001600160a01b031633145b806111535750600f546001600160a01b031633145b6111c55760405162461bcd60e51b815260206004820152602b60248201527f43616c6c6572206973206e6f742061637469766520706f6f6c206f722073746160448201527f62696c69747920706f6f6c0000000000000000000000000000000000000000006064820152608401610768565b565b6001600160a01b0382166112435760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610768565b6001600160a01b038216600090815260208190526040902054818110156112d25760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610768565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6009546001600160a01b03163314806113535750600a546001600160a01b031633145b806113685750600b546001600160a01b031633145b8061137d5750600e546001600160a01b031633145b6111c55760405162461bcd60e51b815260206004820152601160248201527f43616c6c6572206973206e6f74204c52440000000000000000000000000000006044820152606401610768565b6001600160a01b038316600090815260126020526040812060040180548392906113f490849061196e565b909155506113ff9050565b6001600160a01b0382166000908152601260205260408120600401805483929061142a908490611915565b9091555050505050565b6001600160a01b03821661148a5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610768565b806002600082825461149c9190611915565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600c546001600160a01b03163314806115165750600b546001600160a01b031633145b6111c55760405162461bcd60e51b815260206004820152602c60248201527f43616c6c6572206973206e6f742073746162696c69747920706f6f6c206f722060448201527f64656661756c7420706f6f6c00000000000000000000000000000000000000006064820152608401610768565b6001600160a01b0381166115de5760405162461bcd60e51b815260206004820152601e60248201527f4163636f756e742063616e6e6f74206265207a65726f206164647265737300006044820152606401610768565b803b8061099e5760405162461bcd60e51b815260206004820181905260248201527f4163636f756e7420636f64652073697a652063616e6e6f74206265207a65726f6044820152606401610768565b80356001600160a01b038116811461164457600080fd5b919050565b60006020828403121561165b57600080fd5b6116648261162d565b9392505050565b6000806040838503121561167e57600080fd5b6116878361162d565b91506116956020840161162d565b90509250929050565b600080600080600080600080610100898b0312156116bb57600080fd5b6116c48961162d565b97506116d260208a0161162d565b96506116e060408a0161162d565b95506116ee60608a0161162d565b94506116fc60808a0161162d565b935061170a60a08a0161162d565b925061171860c08a0161162d565b915061172660e08a0161162d565b90509295985092959890939650565b60008060006060848603121561174a57600080fd5b6117538461162d565b92506117616020850161162d565b9150604084013590509250925092565b6000806040838503121561178457600080fd5b61178d8361162d565b946020939093013593505050565b6000602082840312156117ad57600080fd5b8151801515811461166457600080fd5b6000602082840312156117cf57600080fd5b5035919050565b6000602082840312156117e857600080fd5b5051919050565b6000806000806080858703121561180557600080fd5b843593506118156020860161162d565b92506118236040860161162d565b91506118316060860161162d565b905092959194509250565b604080825283519082018190526000906020906060840190828701845b8281101561187e5781516001600160a01b031684529284019290840190600101611859565b5050508381038285015284518082528583019183019060005b818110156118b357835183529284019291840191600101611897565b5090979650505050505050565b600060208083528351808285015260005b818110156118ed578581018301518582016040015282016118d1565b818111156118ff576000604083870101525b50601f01601f1916929092016040019392505050565b60008219821115611928576119286119c0565b500190565b60008261194a57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611969576119696119c0565b500290565b600082821015611980576119806119c0565b500390565b600181811c9082168061199957607f821691505b602082108114156119ba57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea26469706673582212206e4ee9acad841e8a7312ff6d6d2d3b6384ce8b62d4938bfdf714ed6a1c67c3dd64736f6c63430008070033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
