{
  "_format": "hh-sol-artifact-1",
  "contractName": "LockMigrator",
  "sourceName": "contracts/LockMigrator.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_merkleRoot",
          "type": "bytes32"
        },
        {
          "internalType": "contract IERC20",
          "name": "_maha",
          "type": "address"
        },
        {
          "internalType": "contract IERC20",
          "name": "_scallop",
          "type": "address"
        },
        {
          "internalType": "contract INFTLocker",
          "name": "_mahaxLocker",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "oldReward",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newReward",
          "type": "uint256"
        }
      ],
      "name": "MigrationRewardChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "Paused",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "who",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "TransferMigrationReward",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "Unpaused",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "isAddressBanned",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_value",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_endDate",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_owner",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_tokenId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_mahaReward",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_scallopReward",
          "type": "uint256"
        },
        {
          "internalType": "bytes32[]",
          "name": "proof",
          "type": "bytes32[]"
        }
      ],
      "name": "isLockValid",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "isTokenIdBanned",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "isTokenIdMigrated",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "maha",
      "outputs": [
        {
          "internalType": "contract IERC20",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "mahaxLocker",
      "outputs": [
        {
          "internalType": "contract INFTLocker",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "merkleRoot",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_value",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_endDate",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_tokenId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_who",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_mahaReward",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_scallopReward",
          "type": "uint256"
        },
        {
          "internalType": "bytes32[]",
          "name": "_proof",
          "type": "bytes32[]"
        }
      ],
      "name": "migrateLock",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "_value",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "_endDate",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "_tokenId",
          "type": "uint256[]"
        },
        {
          "internalType": "address[]",
          "name": "_who",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "_mahaReward",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "_scallopReward",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes32[][]",
          "name": "proof",
          "type": "bytes32[][]"
        }
      ],
      "name": "migrateLocks",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "migrationReward",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "paused",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "refund",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "scallop",
      "outputs": [
        {
          "internalType": "contract IERC20",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "reward",
          "type": "uint256"
        }
      ],
      "name": "setMigrationReward",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "toggleBanID",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_who",
          "type": "address"
        }
      ],
      "name": "toggleBanOwner",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "togglePause",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x6080604052678ac7230489e800006003553480156200001d57600080fd5b506040516200160d3803806200160d8339810160408190526200004091620000f5565b6200004b33620000a5565b6000805460ff60a01b1916905560018055600293909355600480546001600160a01b03199081166001600160a01b039485161790915560058054821692841692909217909155600680549091169190921617905562000169565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080600080608085870312156200010b578384fd5b8451935060208501516200011f8162000150565b6040860151909350620001328162000150565b6060860151909250620001458162000150565b939692955090935050565b6001600160a01b03811681146200016657600080fd5b50565b61149480620001796000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c80635c975abb116100ad57806394cc36761161007157806394cc367614610279578063c4ae31681461028c578063e01a8b9f14610294578063f2fde38b146102a7578063ffc7d718146102ba57600080fd5b80635c975abb146102325780636f03ec941461023a578063715018a61461024d5780637302d43c146102555780638da5cb5b1461026857600080fd5b80634c2d392a116100f45780634c2d392a146101d857806356946bbd146101eb57806358554b46146101fe578063590e1ae31461022157806359bc03521461022957600080fd5b80630bfe6f5f146101315780632ba97dfd146101695780632eb4a7ab1461017e5780633a50433d146101955780633de00c36146101b8575b600080fd5b61015461013f366004611249565b60086020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61017c610177366004611249565b6102cd565b005b61018760025481565b604051908152602001610160565b6101546101a3366004611249565b60076020526000908152604090205460ff1681565b6004546101cb906001600160a01b031681565b6040516101609190611347565b61017c6101e6366004611249565b6102f5565b61017c6101f9366004611116565b61033e565b61015461020c3660046110fc565b60096020526000908152604090205460ff1681565b61017c610487565b61018760035481565b610154610684565b6005546101cb906001600160a01b031681565b61017c610694565b6101876102633660046112e6565b6106a8565b6000546001600160a01b03166101cb565b61017c6102873660046110fc565b6106c5565b61017c6106f6565b6101546102a2366004611279565b61071b565b61017c6102b53660046110fc565b61078a565b6006546101cb906001600160a01b031681565b6102d5610805565b6000908152600860205260409020805460ff19811660ff90911615179055565b6102fd610805565b60035460408051918252602082018390527ffd84e80076cfe22eaa00af386d8f2e89c0086871f1057dcf303e0e97357d3f85910160405180910390a1600355565b60005b875181101561047d5761046a88828151811061036d57634e487b7160e01b600052603260045260246000fd5b602002602001015188838151811061039557634e487b7160e01b600052603260045260246000fd5b60200260200101518884815181106103bd57634e487b7160e01b600052603260045260246000fd5b60200260200101518885815181106103e557634e487b7160e01b600052603260045260246000fd5b602002602001015188868151811061040d57634e487b7160e01b600052603260045260246000fd5b602002602001015188878151811061043557634e487b7160e01b600052603260045260246000fd5b602002602001015188888151811061045d57634e487b7160e01b600052603260045260246000fd5b602002602001015161085f565b508061047581611417565b915050610341565b5050505050505050565b61048f610805565b600480546040516370a0823160e01b81526001600160a01b039091169163a9059cbb91339184916370a08231916104c891309101611347565b60206040518083038186803b1580156104e057600080fd5b505afa1580156104f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105189190611261565b6040518363ffffffff1660e01b815260040161053592919061135b565b602060405180830381600087803b15801561054f57600080fd5b505af1158015610563573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105879190611229565b506005546040516370a0823160e01b81526001600160a01b039091169063a9059cbb90339083906370a08231906105c2903090600401611347565b60206040518083038186803b1580156105da57600080fd5b505afa1580156105ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106129190611261565b6040518363ffffffff1660e01b815260040161062f92919061135b565b602060405180830381600087803b15801561064957600080fd5b505af115801561065d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106819190611229565b50565b600054600160a01b900460ff1690565b61069c610805565b6106a66000610d75565b565b60006106b98888888888888861085f565b98975050505050505050565b6106cd610805565b6001600160a01b03166000908152600960205260409020805460ff19811660ff90911615179055565b6106fe610805565b610706610684565b15610713576106a6610dc5565b6106a6610e14565b60408051602081018990529081018790526001600160a01b03861660608201526080810185905260a0810184905260c08101839052600090819060e00160405160208183030381529060405280519060200120905061077d8360025483610e57565b9998505050505050505050565b610792610805565b6001600160a01b0381166107fc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61068181610d75565b6000546001600160a01b031633146106a65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107f3565b6000600260015414156108b45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107f3565b60026001556108c1610e6d565b6108cf62093a8060026113e1565b6108d990426113c9565b87101561091b5760405162461bcd60e51b815260206004820152601060248201526f195b990819185d1948195e1c1a5c995960821b60448201526064016107f3565b856109575760405162461bcd60e51b815260206004820152600c60248201526b0746f6b656e496420697320360a41b60448201526064016107f3565b60008681526007602052604090205460ff16156109b15760405162461bcd60e51b81526020600482015260186024820152771d1bdad95b925908185b1c9958591e481b5a59dc985d195960421b60448201526064016107f3565b60008681526008602052604090205460ff1615610a015760405162461bcd60e51b815260206004820152600e60248201526d1d1bdad95b92590818985b9b995960921b60448201526064016107f3565b6001600160a01b03851660009081526009602052604090205460ff1615610a595760405162461bcd60e51b815260206004820152600c60248201526b1bdddb995c8818985b9b995960a21b60448201526064016107f3565b6000610a6a8989888a89898961071b565b905080610ab25760405162461bcd60e51b81526020600482015260166024820152754d69677261746f723a20696e76616c6964206c6f636b60501b60448201526064016107f3565b6000610abe428a611400565b600654604051638df4b13b60e01b8152600481018d9052602481018390526001600160a01b038a8116604483015292935060009290911690638df4b13b90606401602060405180830381600087803b158015610b1957600080fd5b505af1158015610b2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b519190611261565b905060008111610ba35760405162461bcd60e51b815260206004820152601a60248201527f4d69677261746f723a206d6967726174696f6e206661696c656400000000000060448201526064016107f3565b6000898152600760205260409020805460ff191660011790558615610c47576004805460405163a9059cbb60e01b81526001600160a01b039091169163a9059cbb91610bf3918c918c910161135b565b602060405180830381600087803b158015610c0d57600080fd5b505af1158015610c21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c459190611229565b505b8515610cd35760055460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb90610c7f908b908a9060040161135b565b602060405180830381600087803b158015610c9957600080fd5b505af1158015610cad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd19190611229565b505b60035415610d63576004805460035460405163a9059cbb60e01b81526001600160a01b039092169263a9059cbb92610d0f92339290910161135b565b602060405180830381600087803b158015610d2957600080fd5b505af1158015610d3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d619190611229565b505b600180559a9950505050505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610dcd610eb5565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b604051610e0a9190611347565b60405180910390a1565b610e1c610e6d565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610dfd3390565b600082610e648584610f00565b14949350505050565b610e75610684565b156106a65760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016107f3565b610ebd610684565b6106a65760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016107f3565b600081815b8451811015610f5357610f3f82868381518110610f3257634e487b7160e01b600052603260045260246000fd5b6020026020010151610f5b565b915080610f4b81611417565b915050610f05565b509392505050565b6000818310610f77576000828152602084905260409020610f86565b60008381526020839052604090205b9392505050565b80356001600160a01b0381168114610fa457600080fd5b919050565b600082601f830112610fb9578081fd5b81356020610fce610fc9836113a5565b611374565b80838252828201915082860187848660051b8901011115610fed578586fd5b855b858110156110125761100082610f8d565b84529284019290840190600101610fef565b5090979650505050505050565b600082601f83011261102f578081fd5b8135602061103f610fc9836113a5565b80838252828201915082860187848660051b890101111561105e578586fd5b855b8581101561101257813567ffffffffffffffff81111561107e578788fd5b61108c8a87838c010161109f565b8552509284019290840190600101611060565b600082601f8301126110af578081fd5b813560206110bf610fc9836113a5565b80838252828201915082860187848660051b89010111156110de578586fd5b855b85811015611012578135845292840192908401906001016110e0565b60006020828403121561110d578081fd5b610f8682610f8d565b600080600080600080600060e0888a031215611130578283fd5b873567ffffffffffffffff80821115611147578485fd5b6111538b838c0161109f565b985060208a0135915080821115611168578485fd5b6111748b838c0161109f565b975060408a0135915080821115611189578485fd5b6111958b838c0161109f565b965060608a01359150808211156111aa578485fd5b6111b68b838c01610fa9565b955060808a01359150808211156111cb578485fd5b6111d78b838c0161109f565b945060a08a01359150808211156111ec578384fd5b6111f88b838c0161109f565b935060c08a013591508082111561120d578283fd5b5061121a8a828b0161101f565b91505092959891949750929550565b60006020828403121561123a578081fd5b81518015158114610f86578182fd5b60006020828403121561125a578081fd5b5035919050565b600060208284031215611272578081fd5b5051919050565b600080600080600080600060e0888a031215611293578283fd5b87359650602088013595506112aa60408901610f8d565b9450606088013593506080880135925060a0880135915060c088013567ffffffffffffffff8111156112da578182fd5b61121a8a828b0161109f565b600080600080600080600060e0888a031215611300578081fd5b87359650602088013595506040880135945061131e60608901610f8d565b93506080880135925060a0880135915060c088013567ffffffffffffffff8111156112da578182fd5b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b604051601f8201601f1916810167ffffffffffffffff8111828210171561139d5761139d611448565b604052919050565b600067ffffffffffffffff8211156113bf576113bf611448565b5060051b60200190565b600082198211156113dc576113dc611432565b500190565b60008160001904831182151516156113fb576113fb611432565b500290565b60008282101561141257611412611432565b500390565b600060001982141561142b5761142b611432565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea264697066735822122031125a6145b90410e213c06598eb2f498d44eeea71ac27d102f80dd5bb8578df64736f6c63430008040033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061012c5760003560e01c80635c975abb116100ad57806394cc36761161007157806394cc367614610279578063c4ae31681461028c578063e01a8b9f14610294578063f2fde38b146102a7578063ffc7d718146102ba57600080fd5b80635c975abb146102325780636f03ec941461023a578063715018a61461024d5780637302d43c146102555780638da5cb5b1461026857600080fd5b80634c2d392a116100f45780634c2d392a146101d857806356946bbd146101eb57806358554b46146101fe578063590e1ae31461022157806359bc03521461022957600080fd5b80630bfe6f5f146101315780632ba97dfd146101695780632eb4a7ab1461017e5780633a50433d146101955780633de00c36146101b8575b600080fd5b61015461013f366004611249565b60086020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61017c610177366004611249565b6102cd565b005b61018760025481565b604051908152602001610160565b6101546101a3366004611249565b60076020526000908152604090205460ff1681565b6004546101cb906001600160a01b031681565b6040516101609190611347565b61017c6101e6366004611249565b6102f5565b61017c6101f9366004611116565b61033e565b61015461020c3660046110fc565b60096020526000908152604090205460ff1681565b61017c610487565b61018760035481565b610154610684565b6005546101cb906001600160a01b031681565b61017c610694565b6101876102633660046112e6565b6106a8565b6000546001600160a01b03166101cb565b61017c6102873660046110fc565b6106c5565b61017c6106f6565b6101546102a2366004611279565b61071b565b61017c6102b53660046110fc565b61078a565b6006546101cb906001600160a01b031681565b6102d5610805565b6000908152600860205260409020805460ff19811660ff90911615179055565b6102fd610805565b60035460408051918252602082018390527ffd84e80076cfe22eaa00af386d8f2e89c0086871f1057dcf303e0e97357d3f85910160405180910390a1600355565b60005b875181101561047d5761046a88828151811061036d57634e487b7160e01b600052603260045260246000fd5b602002602001015188838151811061039557634e487b7160e01b600052603260045260246000fd5b60200260200101518884815181106103bd57634e487b7160e01b600052603260045260246000fd5b60200260200101518885815181106103e557634e487b7160e01b600052603260045260246000fd5b602002602001015188868151811061040d57634e487b7160e01b600052603260045260246000fd5b602002602001015188878151811061043557634e487b7160e01b600052603260045260246000fd5b602002602001015188888151811061045d57634e487b7160e01b600052603260045260246000fd5b602002602001015161085f565b508061047581611417565b915050610341565b5050505050505050565b61048f610805565b600480546040516370a0823160e01b81526001600160a01b039091169163a9059cbb91339184916370a08231916104c891309101611347565b60206040518083038186803b1580156104e057600080fd5b505afa1580156104f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105189190611261565b6040518363ffffffff1660e01b815260040161053592919061135b565b602060405180830381600087803b15801561054f57600080fd5b505af1158015610563573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105879190611229565b506005546040516370a0823160e01b81526001600160a01b039091169063a9059cbb90339083906370a08231906105c2903090600401611347565b60206040518083038186803b1580156105da57600080fd5b505afa1580156105ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106129190611261565b6040518363ffffffff1660e01b815260040161062f92919061135b565b602060405180830381600087803b15801561064957600080fd5b505af115801561065d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106819190611229565b50565b600054600160a01b900460ff1690565b61069c610805565b6106a66000610d75565b565b60006106b98888888888888861085f565b98975050505050505050565b6106cd610805565b6001600160a01b03166000908152600960205260409020805460ff19811660ff90911615179055565b6106fe610805565b610706610684565b15610713576106a6610dc5565b6106a6610e14565b60408051602081018990529081018790526001600160a01b03861660608201526080810185905260a0810184905260c08101839052600090819060e00160405160208183030381529060405280519060200120905061077d8360025483610e57565b9998505050505050505050565b610792610805565b6001600160a01b0381166107fc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61068181610d75565b6000546001600160a01b031633146106a65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107f3565b6000600260015414156108b45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107f3565b60026001556108c1610e6d565b6108cf62093a8060026113e1565b6108d990426113c9565b87101561091b5760405162461bcd60e51b815260206004820152601060248201526f195b990819185d1948195e1c1a5c995960821b60448201526064016107f3565b856109575760405162461bcd60e51b815260206004820152600c60248201526b0746f6b656e496420697320360a41b60448201526064016107f3565b60008681526007602052604090205460ff16156109b15760405162461bcd60e51b81526020600482015260186024820152771d1bdad95b925908185b1c9958591e481b5a59dc985d195960421b60448201526064016107f3565b60008681526008602052604090205460ff1615610a015760405162461bcd60e51b815260206004820152600e60248201526d1d1bdad95b92590818985b9b995960921b60448201526064016107f3565b6001600160a01b03851660009081526009602052604090205460ff1615610a595760405162461bcd60e51b815260206004820152600c60248201526b1bdddb995c8818985b9b995960a21b60448201526064016107f3565b6000610a6a8989888a89898961071b565b905080610ab25760405162461bcd60e51b81526020600482015260166024820152754d69677261746f723a20696e76616c6964206c6f636b60501b60448201526064016107f3565b6000610abe428a611400565b600654604051638df4b13b60e01b8152600481018d9052602481018390526001600160a01b038a8116604483015292935060009290911690638df4b13b90606401602060405180830381600087803b158015610b1957600080fd5b505af1158015610b2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b519190611261565b905060008111610ba35760405162461bcd60e51b815260206004820152601a60248201527f4d69677261746f723a206d6967726174696f6e206661696c656400000000000060448201526064016107f3565b6000898152600760205260409020805460ff191660011790558615610c47576004805460405163a9059cbb60e01b81526001600160a01b039091169163a9059cbb91610bf3918c918c910161135b565b602060405180830381600087803b158015610c0d57600080fd5b505af1158015610c21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c459190611229565b505b8515610cd35760055460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb90610c7f908b908a9060040161135b565b602060405180830381600087803b158015610c9957600080fd5b505af1158015610cad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd19190611229565b505b60035415610d63576004805460035460405163a9059cbb60e01b81526001600160a01b039092169263a9059cbb92610d0f92339290910161135b565b602060405180830381600087803b158015610d2957600080fd5b505af1158015610d3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d619190611229565b505b600180559a9950505050505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610dcd610eb5565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b604051610e0a9190611347565b60405180910390a1565b610e1c610e6d565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610dfd3390565b600082610e648584610f00565b14949350505050565b610e75610684565b156106a65760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016107f3565b610ebd610684565b6106a65760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016107f3565b600081815b8451811015610f5357610f3f82868381518110610f3257634e487b7160e01b600052603260045260246000fd5b6020026020010151610f5b565b915080610f4b81611417565b915050610f05565b509392505050565b6000818310610f77576000828152602084905260409020610f86565b60008381526020839052604090205b9392505050565b80356001600160a01b0381168114610fa457600080fd5b919050565b600082601f830112610fb9578081fd5b81356020610fce610fc9836113a5565b611374565b80838252828201915082860187848660051b8901011115610fed578586fd5b855b858110156110125761100082610f8d565b84529284019290840190600101610fef565b5090979650505050505050565b600082601f83011261102f578081fd5b8135602061103f610fc9836113a5565b80838252828201915082860187848660051b890101111561105e578586fd5b855b8581101561101257813567ffffffffffffffff81111561107e578788fd5b61108c8a87838c010161109f565b8552509284019290840190600101611060565b600082601f8301126110af578081fd5b813560206110bf610fc9836113a5565b80838252828201915082860187848660051b89010111156110de578586fd5b855b85811015611012578135845292840192908401906001016110e0565b60006020828403121561110d578081fd5b610f8682610f8d565b600080600080600080600060e0888a031215611130578283fd5b873567ffffffffffffffff80821115611147578485fd5b6111538b838c0161109f565b985060208a0135915080821115611168578485fd5b6111748b838c0161109f565b975060408a0135915080821115611189578485fd5b6111958b838c0161109f565b965060608a01359150808211156111aa578485fd5b6111b68b838c01610fa9565b955060808a01359150808211156111cb578485fd5b6111d78b838c0161109f565b945060a08a01359150808211156111ec578384fd5b6111f88b838c0161109f565b935060c08a013591508082111561120d578283fd5b5061121a8a828b0161101f565b91505092959891949750929550565b60006020828403121561123a578081fd5b81518015158114610f86578182fd5b60006020828403121561125a578081fd5b5035919050565b600060208284031215611272578081fd5b5051919050565b600080600080600080600060e0888a031215611293578283fd5b87359650602088013595506112aa60408901610f8d565b9450606088013593506080880135925060a0880135915060c088013567ffffffffffffffff8111156112da578182fd5b61121a8a828b0161109f565b600080600080600080600060e0888a031215611300578081fd5b87359650602088013595506040880135945061131e60608901610f8d565b93506080880135925060a0880135915060c088013567ffffffffffffffff8111156112da578182fd5b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b604051601f8201601f1916810167ffffffffffffffff8111828210171561139d5761139d611448565b604052919050565b600067ffffffffffffffff8211156113bf576113bf611448565b5060051b60200190565b600082198211156113dc576113dc611432565b500190565b60008160001904831182151516156113fb576113fb611432565b500290565b60008282101561141257611412611432565b500390565b600060001982141561142b5761142b611432565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea264697066735822122031125a6145b90410e213c06598eb2f498d44eeea71ac27d102f80dd5bb8578df64736f6c63430008040033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
