{
  "contractName": "SchemeRegistrar",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_avatar",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_intVoteInterface",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "_scheme",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes4",
          "name": "_permissions",
          "type": "bytes4"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "_descriptionHash",
          "type": "string"
        }
      ],
      "name": "NewSchemeProposal",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_avatar",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "ProposalDeleted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_avatar",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "int256",
          "name": "_param",
          "type": "int256"
        }
      ],
      "name": "ProposalExecuted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_avatar",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_intVoteInterface",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "_scheme",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "_descriptionHash",
          "type": "string"
        }
      ],
      "name": "RemoveSchemeProposal",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "avatar",
      "outputs": [
        {
          "internalType": "contract Avatar",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IERC20",
          "name": "_stakingToken",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "balanceOfStakingToken",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "burnReputation",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "internalType": "int256",
          "name": "_decision",
          "type": "int256"
        }
      ],
      "name": "executeProposal",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "getTotalReputationSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract Avatar",
          "name": "_avatar",
          "type": "address"
        },
        {
          "internalType": "contract IntVoteInterface",
          "name": "_votingMachine",
          "type": "address"
        },
        {
          "internalType": "uint256[11]",
          "name": "_votingParamsRegister",
          "type": "uint256[11]"
        },
        {
          "internalType": "address",
          "name": "_voteOnBehalfRegister",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_voteRegisterParamsHash",
          "type": "bytes32"
        },
        {
          "internalType": "uint256[11]",
          "name": "_votingParamsRemove",
          "type": "uint256[11]"
        },
        {
          "internalType": "address",
          "name": "_voteOnBehalfRemove",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_voteRemoveParamsHash",
          "type": "bytes32"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "mintReputation",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "organizationProposals",
      "outputs": [
        {
          "internalType": "address",
          "name": "scheme",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "addScheme",
          "type": "bool"
        },
        {
          "internalType": "bytes4",
          "name": "permissions",
          "type": "bytes4"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "proposalsBlockNumber",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_scheme",
          "type": "address"
        },
        {
          "internalType": "bytes4",
          "name": "_permissions",
          "type": "bytes4"
        },
        {
          "internalType": "string",
          "name": "_descriptionHash",
          "type": "string"
        }
      ],
      "name": "proposeScheme",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_scheme",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "_descriptionHash",
          "type": "string"
        }
      ],
      "name": "proposeToRemoveScheme",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_owner",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "reputationOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IERC20",
          "name": "_stakingToken",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "stakingTokenTransfer",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "voteParamsHash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "voteRegisterParamsHash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "voteRemoveParamsHash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "votingMachine",
      "outputs": [
        {
          "internalType": "contract IntVoteInterface",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b506119a8806100206000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80637a5cb92c116100a2578063bea75f2811610071578063bea75f2814610341578063d29b5d2f1461037d578063d8145e2d146103af578063f81f8bf6146103fe578063ff1a7f0a146104305761010b565b80637a5cb92c146102a45780639588378e146102c15780639d4c162d146102ed578063b551c373146103245761010b565b806358613592116100de578063586135921461015e5780635aef7de614610214578063681d50841461021c5780636b8eb403146102785761010b565b80633ed2bc55146101105780633edf7ca11461012a5780634a650ecf1461014e5780634ea2c7ec14610156575b600080fd5b6101186104f5565b60408051918252519081900360200190f35b6101326104fb565b604080516001600160a01b039092168252519081900360200190f35b61011861050a565b610118610510565b6101186004803603604081101561017457600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561019f57600080fd5b8201836020820111156101b157600080fd5b803590602001918460018302840111640100000000831117156101d357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610516945050505050565b6101326106ff565b610276600480360361038081101561023357600080fd5b506001600160a01b038135811691602081013582169160408201916101a08101358216916101c0820135916101e08101916103408201351690610360013561070e565b005b6101186004803603604081101561028e57600080fd5b506001600160a01b038135169060200135610af4565b610118600480360360208110156102ba57600080fd5b5035610bce565b610118600480360360408110156102d757600080fd5b506001600160a01b038135169060200135610be0565b6103106004803603604081101561030357600080fd5b5080359060200135610d11565b604080519115158252519081900360200190f35b6101186004803603602081101561033a57600080fd5b503561102f565b6103106004803603608081101561035757600080fd5b506001600160a01b0381358116916020810135909116906040810135906060013561118c565b6103106004803603606081101561039357600080fd5b508035906001600160a01b0360208201351690604001356112f0565b6103cc600480360360208110156103c557600080fd5b503561144b565b604080516001600160a01b03909416845291151560208401526001600160e01b03191682820152519081900360600190f35b6103106004803603606081101561041457600080fd5b508035906001600160a01b03602082013516906040013561147d565b6101186004803603606081101561044657600080fd5b6001600160a01b03823516916001600160e01b03196020820135169181019060608101604082013564010000000081111561048057600080fd5b82018360208201111561049257600080fd5b803590602001918460018302840111640100000000831117156104b457600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506115a3945050505050565b60395481565b6034546001600160a01b031681565b60385481565b60355481565b60006001600160a01b03831661056b576040805162461bcd60e51b8152602060048201526015602482015274736368656d652063616e6e6f74206265207a65726f60581b604482015290519081900360640190fd5b60345460395460335460408051634439bdaf60e11b81526002600482015260248101939093523360448401526001600160a01b0391821660648401525160009391909116916388737b5e91608480830192602092919082900301818787803b1580156105d657600080fd5b505af11580156105ea573d6000803e3d6000fd5b505050506040513d602081101561060057600080fd5b5051600081815260376020908152604080832080546001600160a01b0319166001600160a01b038a811691821790925560345460335484519283528286018581528b51958401959095528a5197985090831696889691909316947f504b6bd2558241a5f0532c970f3444e1fc24e1f7cf3d7c49a8d213bd612e9055948c948c94939192606085019290860191908190849084905b838110156106ac578181015183820152602001610694565b50505050905090810190601f1680156106d95780820380516001836020036101000a031916815260200191505b50935050505060405180910390a460008181526036602052604090204390559392505050565b6033546001600160a01b031681565b61071788611805565b603480546001600160a01b0319166001600160a01b03891617905583610908576040516307b4e1e360e01b815287906001600160a01b038216906307b4e1e390899089906004018083610160808284376000838201526001600160a01b03909416601f909401601f19169091019283525050604051602080830193509181900382018186803b1580156107a957600080fd5b505afa1580156107bd573d6000803e3d6000fd5b505050506040513d60208110156107d357600080fd5b505160388190556040805162941a0160e21b81526004810192909252516000916001600160a01b038416916302506804916024808201926101a092909190829003018186803b15801561082557600080fd5b505afa158015610839573d6000803e3d6000fd5b505050506040513d6101a081101561085057600080fd5b505190508061090157604051638894c41b60e01b81526001600160a01b03831690638894c41b908a908a90600401808361016080828437600081840152601f19601f820116905080830192505050826001600160a01b03166001600160a01b0316815260200192505050602060405180830381600087803b1580156108d457600080fd5b505af11580156108e8573d6000803e3d6000fd5b505050506040513d60208110156108fe57600080fd5b50505b505061090e565b60388490555b80610ae4576040516307b4e1e360e01b815287906001600160a01b038216906307b4e1e390869086906004018083610160808284376000838201526001600160a01b03909416601f909401601f19169091019283525050604051602080830193509181900382018186803b15801561098557600080fd5b505afa158015610999573d6000803e3d6000fd5b505050506040513d60208110156109af57600080fd5b505160398190556040805162941a0160e21b81526004810192909252516000916001600160a01b038416916302506804916024808201926101a092909190829003018186803b158015610a0157600080fd5b505afa158015610a15573d6000803e3d6000fd5b505050506040513d6101a0811015610a2c57600080fd5b5051905080610add57604051638894c41b60e01b81526001600160a01b03831690638894c41b9087908790600401808361016080828437600081840152601f19601f820116905080830192505050826001600160a01b03166001600160a01b0316815260200192505050602060405180830381600087803b158015610ab057600080fd5b505af1158015610ac4573d6000803e3d6000fd5b505050506040513d6020811015610ada57600080fd5b50505b5050610aea565b60398190555b5050505050505050565b60345460009082906001600160a01b03163314610b4d576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603354604080516370a0823160e01b81526001600160a01b0392831660048201529051918616916370a0823191602480820192602092909190829003018186803b158015610b9a57600080fd5b505afa158015610bae573d6000803e3d6000fd5b505050506040513d6020811015610bc457600080fd5b5051949350505050565b60366020526000908152604090205481565b60345460009082906001600160a01b03163314610c39576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b158015610c8757600080fd5b505afa158015610c9b573d6000803e3d6000fd5b505050506040513d6020811015610cb157600080fd5b505160008481526036602090815260409182902054825163277166bf60e11b81526001600160a01b03898116600483015260248201929092529251931692634ee2cd7e926044808201939291829003018186803b158015610b9a57600080fd5b60345460009083906001600160a01b03163314610d6a576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b610d72611924565b50600084815260376020908152604091829020825160608101845290546001600160a01b038116808352600160a01b820460ff16151593830193909352600160a81b900460e01b6001600160e01b03191692810192909252610dd357600080fd5b60008581526037602052604080822080546001600160c81b0319169055603354905187926001600160a01b03909216917f6bc0cb9e9967b59a69ace442598e1df4368d38661bd5c0800fbcbc9fe855fbbe91a38360011415610fe15760335460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610e7457600080fd5b505afa158015610e88573d6000803e3d6000fd5b505050506040513d6020811015610e9e57600080fd5b5051602083015190915015610f455781516040808401518151635d1da8cb60e01b81526001600160a01b0393841660048201526001600160e01b03199091166024820152905191831691635d1da8cb916044808201926020929091908290030181600087803b158015610f1057600080fd5b505af1158015610f24573d6000803e3d6000fd5b505050506040513d6020811015610f3a57600080fd5b5051610f4557600080fd5b8160200151610fdf57806001600160a01b031663653915e583600001516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b158015610faa57600080fd5b505af1158015610fbe573d6000803e3d6000fd5b505050506040513d6020811015610fd457600080fd5b5051610fdf57600080fd5b505b60335460408051868152905187926001600160a01b0316917fd2632e80f5364f02aded1c64e8a04637b7c8bb9c2db2bedf4b6ac47c013acbc0919081900360200190a3506001949350505050565b60345460009082906001600160a01b03163314611088576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b1580156110d657600080fd5b505afa1580156110ea573d6000803e3d6000fd5b505050506040513d602081101561110057600080fd5b5051600084815260366020908152604091829020548251630981b24d60e41b8152600481019190915291516001600160a01b039093169263981b24d0926024808201939291829003018186803b15801561115957600080fd5b505afa15801561116d573d6000803e3d6000fd5b505050506040513d602081101561118357600080fd5b50519392505050565b60345460009082906001600160a01b031633146111e5576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561123357600080fd5b505afa158015611247573d6000803e3d6000fd5b505050506040513d602081101561125d57600080fd5b50516040805163dab0efff60e01b81526001600160a01b0389811660048301528881166024830152604482018890529151919092169163dab0efff9160648083019260209291908290030181600087803b1580156112ba57600080fd5b505af11580156112ce573d6000803e3d6000fd5b505050506040513d60208110156112e457600080fd5b50519695505050505050565b60345460009082906001600160a01b03163314611349576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561139757600080fd5b505afa1580156113ab573d6000803e3d6000fd5b505050506040513d60208110156113c157600080fd5b50516040805163dea9e24d60e01b8152600481018890526001600160a01b0387811660248301529151919092169163dea9e24d9160448083019260209291908290030181600087803b15801561141657600080fd5b505af115801561142a573d6000803e3d6000fd5b505050506040513d602081101561144057600080fd5b505195945050505050565b6037602052600090815260409020546001600160a01b0381169060ff600160a01b82041690600160a81b900460e01b83565b60345460009082906001600160a01b031633146114d6576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561152457600080fd5b505afa158015611538573d6000803e3d6000fd5b505050506040513d602081101561154e57600080fd5b50516040805163ddbfcc6b60e01b8152600481018890526001600160a01b0387811660248301529151919092169163ddbfcc6b9160448083019260209291908290030181600087803b15801561141657600080fd5b60006001600160a01b0384166115f8576040805162461bcd60e51b8152602060048201526015602482015274736368656d652063616e6e6f74206265207a65726f60581b604482015290519081900360640190fd5b60345460385460335460408051634439bdaf60e11b81526002600482015260248101939093523360448401526001600160a01b0391821660648401525160009391909116916388737b5e91608480830192602092919082900301818787803b15801561166357600080fd5b505af1158015611677573d6000803e3d6000fd5b505050506040513d602081101561168d57600080fd5b50519050611699611924565b5060408051606080820183526001600160a01b0380891680845260016020808601919091526001600160e01b03198a168587018190526034546033548851948552848401929092529683018581528a519584019590955289519596841695889591909416937fe3d6017b3686d60e6c60aa29ac7ec5d94a1f957618ba3fe74462e9f5b54adef3938d938d938d93909160808401919085019080838360005b8381101561174f578181015183820152602001611737565b50505050905090810190601f16801561177c5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a4600082815260376020908152604080832084518154848701519684015160e01c600160a81b0263ffffffff60a81b19971515600160a01b0260ff60a01b196001600160a01b039094166001600160a01b03199093169290921792909216179590951694909417909355603690522043905590509392505050565b600054610100900460ff168061181e575061181e61191e565b8061182c575060005460ff16155b6118675760405162461bcd60e51b815260040180806020018281038252602e815260200180611945602e913960400191505060405180910390fd5b600054610100900460ff16158015611892576000805460ff1961ff0019909116610100171660011790555b6001600160a01b0382166118ed576040805162461bcd60e51b815260206004820152601760248201527f536368656d65206d757374206861766520617661746172000000000000000000604482015290519081900360640190fd5b603380546001600160a01b0319166001600160a01b038416179055801561191a576000805461ff00191690555b5050565b303b1590565b60408051606081018252600080825260208201819052918101919091529056fe436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a2646970667358221220f6d46e1d734eea0f486df57c5fde757dcb315cf51637c19db4a97810ee91a82b64736f6c634300060a0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061010b5760003560e01c80637a5cb92c116100a2578063bea75f2811610071578063bea75f2814610341578063d29b5d2f1461037d578063d8145e2d146103af578063f81f8bf6146103fe578063ff1a7f0a146104305761010b565b80637a5cb92c146102a45780639588378e146102c15780639d4c162d146102ed578063b551c373146103245761010b565b806358613592116100de578063586135921461015e5780635aef7de614610214578063681d50841461021c5780636b8eb403146102785761010b565b80633ed2bc55146101105780633edf7ca11461012a5780634a650ecf1461014e5780634ea2c7ec14610156575b600080fd5b6101186104f5565b60408051918252519081900360200190f35b6101326104fb565b604080516001600160a01b039092168252519081900360200190f35b61011861050a565b610118610510565b6101186004803603604081101561017457600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561019f57600080fd5b8201836020820111156101b157600080fd5b803590602001918460018302840111640100000000831117156101d357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610516945050505050565b6101326106ff565b610276600480360361038081101561023357600080fd5b506001600160a01b038135811691602081013582169160408201916101a08101358216916101c0820135916101e08101916103408201351690610360013561070e565b005b6101186004803603604081101561028e57600080fd5b506001600160a01b038135169060200135610af4565b610118600480360360208110156102ba57600080fd5b5035610bce565b610118600480360360408110156102d757600080fd5b506001600160a01b038135169060200135610be0565b6103106004803603604081101561030357600080fd5b5080359060200135610d11565b604080519115158252519081900360200190f35b6101186004803603602081101561033a57600080fd5b503561102f565b6103106004803603608081101561035757600080fd5b506001600160a01b0381358116916020810135909116906040810135906060013561118c565b6103106004803603606081101561039357600080fd5b508035906001600160a01b0360208201351690604001356112f0565b6103cc600480360360208110156103c557600080fd5b503561144b565b604080516001600160a01b03909416845291151560208401526001600160e01b03191682820152519081900360600190f35b6103106004803603606081101561041457600080fd5b508035906001600160a01b03602082013516906040013561147d565b6101186004803603606081101561044657600080fd5b6001600160a01b03823516916001600160e01b03196020820135169181019060608101604082013564010000000081111561048057600080fd5b82018360208201111561049257600080fd5b803590602001918460018302840111640100000000831117156104b457600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506115a3945050505050565b60395481565b6034546001600160a01b031681565b60385481565b60355481565b60006001600160a01b03831661056b576040805162461bcd60e51b8152602060048201526015602482015274736368656d652063616e6e6f74206265207a65726f60581b604482015290519081900360640190fd5b60345460395460335460408051634439bdaf60e11b81526002600482015260248101939093523360448401526001600160a01b0391821660648401525160009391909116916388737b5e91608480830192602092919082900301818787803b1580156105d657600080fd5b505af11580156105ea573d6000803e3d6000fd5b505050506040513d602081101561060057600080fd5b5051600081815260376020908152604080832080546001600160a01b0319166001600160a01b038a811691821790925560345460335484519283528286018581528b51958401959095528a5197985090831696889691909316947f504b6bd2558241a5f0532c970f3444e1fc24e1f7cf3d7c49a8d213bd612e9055948c948c94939192606085019290860191908190849084905b838110156106ac578181015183820152602001610694565b50505050905090810190601f1680156106d95780820380516001836020036101000a031916815260200191505b50935050505060405180910390a460008181526036602052604090204390559392505050565b6033546001600160a01b031681565b61071788611805565b603480546001600160a01b0319166001600160a01b03891617905583610908576040516307b4e1e360e01b815287906001600160a01b038216906307b4e1e390899089906004018083610160808284376000838201526001600160a01b03909416601f909401601f19169091019283525050604051602080830193509181900382018186803b1580156107a957600080fd5b505afa1580156107bd573d6000803e3d6000fd5b505050506040513d60208110156107d357600080fd5b505160388190556040805162941a0160e21b81526004810192909252516000916001600160a01b038416916302506804916024808201926101a092909190829003018186803b15801561082557600080fd5b505afa158015610839573d6000803e3d6000fd5b505050506040513d6101a081101561085057600080fd5b505190508061090157604051638894c41b60e01b81526001600160a01b03831690638894c41b908a908a90600401808361016080828437600081840152601f19601f820116905080830192505050826001600160a01b03166001600160a01b0316815260200192505050602060405180830381600087803b1580156108d457600080fd5b505af11580156108e8573d6000803e3d6000fd5b505050506040513d60208110156108fe57600080fd5b50505b505061090e565b60388490555b80610ae4576040516307b4e1e360e01b815287906001600160a01b038216906307b4e1e390869086906004018083610160808284376000838201526001600160a01b03909416601f909401601f19169091019283525050604051602080830193509181900382018186803b15801561098557600080fd5b505afa158015610999573d6000803e3d6000fd5b505050506040513d60208110156109af57600080fd5b505160398190556040805162941a0160e21b81526004810192909252516000916001600160a01b038416916302506804916024808201926101a092909190829003018186803b158015610a0157600080fd5b505afa158015610a15573d6000803e3d6000fd5b505050506040513d6101a0811015610a2c57600080fd5b5051905080610add57604051638894c41b60e01b81526001600160a01b03831690638894c41b9087908790600401808361016080828437600081840152601f19601f820116905080830192505050826001600160a01b03166001600160a01b0316815260200192505050602060405180830381600087803b158015610ab057600080fd5b505af1158015610ac4573d6000803e3d6000fd5b505050506040513d6020811015610ada57600080fd5b50505b5050610aea565b60398190555b5050505050505050565b60345460009082906001600160a01b03163314610b4d576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603354604080516370a0823160e01b81526001600160a01b0392831660048201529051918616916370a0823191602480820192602092909190829003018186803b158015610b9a57600080fd5b505afa158015610bae573d6000803e3d6000fd5b505050506040513d6020811015610bc457600080fd5b5051949350505050565b60366020526000908152604090205481565b60345460009082906001600160a01b03163314610c39576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b158015610c8757600080fd5b505afa158015610c9b573d6000803e3d6000fd5b505050506040513d6020811015610cb157600080fd5b505160008481526036602090815260409182902054825163277166bf60e11b81526001600160a01b03898116600483015260248201929092529251931692634ee2cd7e926044808201939291829003018186803b158015610b9a57600080fd5b60345460009083906001600160a01b03163314610d6a576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b610d72611924565b50600084815260376020908152604091829020825160608101845290546001600160a01b038116808352600160a01b820460ff16151593830193909352600160a81b900460e01b6001600160e01b03191692810192909252610dd357600080fd5b60008581526037602052604080822080546001600160c81b0319169055603354905187926001600160a01b03909216917f6bc0cb9e9967b59a69ace442598e1df4368d38661bd5c0800fbcbc9fe855fbbe91a38360011415610fe15760335460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b916004808301926020929190829003018186803b158015610e7457600080fd5b505afa158015610e88573d6000803e3d6000fd5b505050506040513d6020811015610e9e57600080fd5b5051602083015190915015610f455781516040808401518151635d1da8cb60e01b81526001600160a01b0393841660048201526001600160e01b03199091166024820152905191831691635d1da8cb916044808201926020929091908290030181600087803b158015610f1057600080fd5b505af1158015610f24573d6000803e3d6000fd5b505050506040513d6020811015610f3a57600080fd5b5051610f4557600080fd5b8160200151610fdf57806001600160a01b031663653915e583600001516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b158015610faa57600080fd5b505af1158015610fbe573d6000803e3d6000fd5b505050506040513d6020811015610fd457600080fd5b5051610fdf57600080fd5b505b60335460408051868152905187926001600160a01b0316917fd2632e80f5364f02aded1c64e8a04637b7c8bb9c2db2bedf4b6ac47c013acbc0919081900360200190a3506001949350505050565b60345460009082906001600160a01b03163314611088576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b1580156110d657600080fd5b505afa1580156110ea573d6000803e3d6000fd5b505050506040513d602081101561110057600080fd5b5051600084815260366020908152604091829020548251630981b24d60e41b8152600481019190915291516001600160a01b039093169263981b24d0926024808201939291829003018186803b15801561115957600080fd5b505afa15801561116d573d6000803e3d6000fd5b505050506040513d602081101561118357600080fd5b50519392505050565b60345460009082906001600160a01b031633146111e5576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561123357600080fd5b505afa158015611247573d6000803e3d6000fd5b505050506040513d602081101561125d57600080fd5b50516040805163dab0efff60e01b81526001600160a01b0389811660048301528881166024830152604482018890529151919092169163dab0efff9160648083019260209291908290030181600087803b1580156112ba57600080fd5b505af11580156112ce573d6000803e3d6000fd5b505050506040513d60208110156112e457600080fd5b50519695505050505050565b60345460009082906001600160a01b03163314611349576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561139757600080fd5b505afa1580156113ab573d6000803e3d6000fd5b505050506040513d60208110156113c157600080fd5b50516040805163dea9e24d60e01b8152600481018890526001600160a01b0387811660248301529151919092169163dea9e24d9160448083019260209291908290030181600087803b15801561141657600080fd5b505af115801561142a573d6000803e3d6000fd5b505050506040513d602081101561144057600080fd5b505195945050505050565b6037602052600090815260409020546001600160a01b0381169060ff600160a01b82041690600160a81b900460e01b83565b60345460009082906001600160a01b031633146114d6576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561152457600080fd5b505afa158015611538573d6000803e3d6000fd5b505050506040513d602081101561154e57600080fd5b50516040805163ddbfcc6b60e01b8152600481018890526001600160a01b0387811660248301529151919092169163ddbfcc6b9160448083019260209291908290030181600087803b15801561141657600080fd5b60006001600160a01b0384166115f8576040805162461bcd60e51b8152602060048201526015602482015274736368656d652063616e6e6f74206265207a65726f60581b604482015290519081900360640190fd5b60345460385460335460408051634439bdaf60e11b81526002600482015260248101939093523360448401526001600160a01b0391821660648401525160009391909116916388737b5e91608480830192602092919082900301818787803b15801561166357600080fd5b505af1158015611677573d6000803e3d6000fd5b505050506040513d602081101561168d57600080fd5b50519050611699611924565b5060408051606080820183526001600160a01b0380891680845260016020808601919091526001600160e01b03198a168587018190526034546033548851948552848401929092529683018581528a519584019590955289519596841695889591909416937fe3d6017b3686d60e6c60aa29ac7ec5d94a1f957618ba3fe74462e9f5b54adef3938d938d938d93909160808401919085019080838360005b8381101561174f578181015183820152602001611737565b50505050905090810190601f16801561177c5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a4600082815260376020908152604080832084518154848701519684015160e01c600160a81b0263ffffffff60a81b19971515600160a01b0260ff60a01b196001600160a01b039094166001600160a01b03199093169290921792909216179590951694909417909355603690522043905590509392505050565b600054610100900460ff168061181e575061181e61191e565b8061182c575060005460ff16155b6118675760405162461bcd60e51b815260040180806020018281038252602e815260200180611945602e913960400191505060405180910390fd5b600054610100900460ff16158015611892576000805460ff1961ff0019909116610100171660011790555b6001600160a01b0382166118ed576040805162461bcd60e51b815260206004820152601760248201527f536368656d65206d757374206861766520617661746172000000000000000000604482015290519081900360640190fd5b603380546001600160a01b0319166001600160a01b038416179055801561191a576000805461ff00191690555b5050565b303b1590565b60408051606081018252600080825260208201819052918101919091529056fe436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a2646970667358221220f6d46e1d734eea0f486df57c5fde757dcb315cf51637c19db4a97810ee91a82b64736f6c634300060a0033"
}