{
  "contractName": "ContributionReward",
  "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": "string",
          "name": "_descriptionHash",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "int256",
          "name": "_reputationChange",
          "type": "int256"
        },
        {
          "indexed": false,
          "internalType": "uint256[5]",
          "name": "_rewards",
          "type": "uint256[5]"
        },
        {
          "indexed": false,
          "internalType": "contract IERC20",
          "name": "_externalToken",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        }
      ],
      "name": "NewContributionProposal",
      "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": "_beneficiary",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "RedeemEther",
      "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": "_beneficiary",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "RedeemExternalToken",
      "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": "_beneficiary",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "RedeemNativeToken",
      "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": "_beneficiary",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "int256",
          "name": "_amount",
          "type": "int256"
        }
      ],
      "name": "RedeemReputation",
      "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"
        },
        {
          "internalType": "uint256",
          "name": "_redeemType",
          "type": "uint256"
        }
      ],
      "name": "getPeriodsToPay",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "getProposalEthReward",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "getProposalExecutionTime",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "getProposalExternalToken",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "getProposalExternalTokenReward",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "_redeemType",
          "type": "uint256"
        }
      ],
      "name": "getRedeemedPeriods",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "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": "_votingParams",
          "type": "uint256[11]"
        },
        {
          "internalType": "address",
          "name": "_voteOnBehalf",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_voteParamsHash",
          "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": "uint256",
          "name": "nativeTokenReward",
          "type": "uint256"
        },
        {
          "internalType": "int256",
          "name": "reputationChange",
          "type": "int256"
        },
        {
          "internalType": "uint256",
          "name": "ethReward",
          "type": "uint256"
        },
        {
          "internalType": "contract IERC20",
          "name": "externalToken",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "externalTokenReward",
          "type": "uint256"
        },
        {
          "internalType": "address payable",
          "name": "beneficiary",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "periodLength",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "numberOfPeriods",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "executionTime",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "proposalsBlockNumber",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "_descriptionHash",
          "type": "string"
        },
        {
          "internalType": "int256",
          "name": "_reputationChange",
          "type": "int256"
        },
        {
          "internalType": "uint256[5]",
          "name": "_rewards",
          "type": "uint256[5]"
        },
        {
          "internalType": "contract IERC20",
          "name": "_externalToken",
          "type": "address"
        },
        {
          "internalType": "address payable",
          "name": "_beneficiary",
          "type": "address"
        }
      ],
      "name": "proposeContributionReward",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "internalType": "bool[4]",
          "name": "_whatToRedeem",
          "type": "bool[4]"
        }
      ],
      "name": "redeem",
      "outputs": [
        {
          "internalType": "int256",
          "name": "reputationReward",
          "type": "int256"
        },
        {
          "internalType": "uint256",
          "name": "nativeTokenReward",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "etherReward",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "externalTokenReward",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "redeemEther",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "redeemExternalToken",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "redeemNativeToken",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "redeemReputation",
      "outputs": [
        {
          "internalType": "int256",
          "name": "reputation",
          "type": "int256"
        }
      ],
      "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": "votingMachine",
      "outputs": [
        {
          "internalType": "contract IntVoteInterface",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50612ca4806100206000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80635d353bef116100de5780639f874c9911610097578063c7916cf911610071578063c7916cf914610587578063d29b5d2f146105a4578063d8145e2d146105d6578063f81f8bf61461064757610173565b80639f874c9914610511578063b551c3731461052e578063bea75f281461054b57610173565b80635d353bef1461042b5780636b8eb403146104485780637a5cb92c146104745780637e078b55146104915780639588378e146104ae5780639d4c162d146104da57610173565b80633edf7ca1116101305780633edf7ca1146103755780634ea2c7ec1461039957806352717a5e146103a1578063540fbeb3146103be57806358243213146104065780635aef7de61461042357610173565b806303e722d1146101785780630743ec07146102795780632108d7a71461029c57806334f24352146102bf5780633a0284ff146102dc5780633c2163dc14610358575b600080fd5b610267600480360361012081101561018f57600080fd5b8101906020810181356401000000008111156101aa57600080fd5b8201836020820111156101bc57600080fd5b803590602001918460018302840111640100000000831117156101de57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805160a081810190925293968535969095909460c0820194509250602001906005908390839080828437600092019190915250919450505080356001600160a01b03908116925060209091013516610679565b60408051918252519081900360200190f35b6102676004803603604081101561028f57600080fd5b50803590602001356109a9565b610267600480360360408110156102b257600080fd5b5080359060200135610b80565b610267600480360360208110156102d557600080fd5b5035610ba5565b610332600480360360a08110156102f257600080fd5b604080516080818101909252833593928301929160a08301919060208401906004908390839080828437600092019190915250919450610e7e9350505050565b604080519485526020850193909352838301919091526060830152519081900360800190f35b6102676004803603602081101561036e57600080fd5b5035610ee6565b61037d6111f4565b604080516001600160a01b039092168252519081900360200190f35b610267611203565b610267600480360360208110156103b757600080fd5b5035611209565b61040460048036036101e08110156103d557600080fd5b506001600160a01b038135811691602081013582169160408201916101a0810135909116906101c0013561121e565b005b6102676004803603602081101561041c57600080fd5b50356112fc565b61037d6115d9565b6102676004803603602081101561044157600080fd5b50356115e8565b6102676004803603604081101561045e57600080fd5b506001600160a01b0381351690602001356115fd565b6102676004803603602081101561048a57600080fd5b50356116d7565b61037d600480360360208110156104a757600080fd5b50356116e9565b610267600480360360408110156104c457600080fd5b506001600160a01b038135169060200135611707565b6104fd600480360360408110156104f057600080fd5b5080359060200135611838565b604080519115158252519081900360200190f35b6102676004803603602081101561052757600080fd5b503561193d565b6102676004803603602081101561054457600080fd5b5035611952565b6104fd6004803603608081101561056157600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611aaf565b6102676004803603602081101561059d57600080fd5b5035611c13565b6104fd600480360360608110156105ba57600080fd5b508035906001600160a01b036020820135169060400135612002565b6105f3600480360360208110156105ec57600080fd5b503561215d565b60408051998a5260208a0198909852888801969096526001600160a01b0394851660608901526080880193909352921660a086015260c085019190915260e084015261010083015251908190036101200190f35b6104fd6004803603606081101561065d57600080fd5b508035906001600160a01b0360208201351690604001356121b4565b600061068585856122da565b60345460355460335460408051634439bdaf60e11b81526002600482015260248101939093523360448401526001600160a01b0391821660648401525160009391909116916388737b5e91608480830192602092919082900301818787803b1580156106f057600080fd5b505af1158015610704573d6000803e3d6000fd5b505050506040513d602081101561071a57600080fd5b50519050826001600160a01b0381166107305750335b6107386129fc565b60408051610140810182528851815260208082018b9052890151818301526001600160a01b03888116606080840191909152928a01516080830152841660a08201529088015160c082015260e08101886004602090810291909101518252600082820181905260408051608080820183528382528185018490528183018490526060808301859052958301919091528883526037845291819020855181559285015160018401558401516002830155918301516003820180546001600160a01b039283166001600160a01b0319918216179091559284015160048084019190915560a085015160058401805491909316941693909317905560c0830151600682015560e0830151600782015561010083015160088201556101208301519293508392909161086a916009840191612a66565b505060345460335460408051602081018d90526001600160a01b0393841694508793909216917fcbdcbf9aaeb1e9eff0f75d74e1c1e044bc87110164baec7d18d825b0450d97df918e918e918e918e918b9190819081018560a080838360005b838110156108e25781810151838201526020016108ca565b50505050905001846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828103825287818151815260200191508051906020019080838360005b8381101561094e578181015183820152602001610936565b50505050905090810190601f16801561097b5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a4505060008181526036602052604090204390559695505050505050565b600060038211156109eb5760405162461bcd60e51b8152600401808060200182810382526026815260200180612c156026913960400191505060405180910390fd5b6109f36129fc565b6000848152603760209081526040918290208251610140810184528154815260018201549281019290925260028101548284015260038101546001600160a01b039081166060840152600480830154608080860191909152600584015490921660a0850152600683015460c0850152600783015460e085015260088301546101008501528451918201948590529293919261012085019260098501919082845b815481526020019060010190808311610a9357505050505081525050905080610100015160001415610ac9576000915050610b7a565b60c081015160009015610afd5760c0820151610100830151610af290429063ffffffff6124cb16565b81610af957fe5b0490505b60008260c0015160001480610b1657508260e001518210155b15610b4c57610b458361012001518660048110610b2f57fe5b602002015160e08501519063ffffffff6124cb16565b9050610b75565b610b728361012001518660048110610b6057fe5b6020020151839063ffffffff6124cb16565b90505b925050505b92915050565b60008281526037602052604081206009018260048110610b9c57fe5b01549392505050565b6000610baf6129fc565b6000838152603760209081526040918290208251610140810184528154815260018201549281019290925260028101548284015260038101546001600160a01b039081166060840152600480830154608080860191909152600584015490921660a0850152600683015460c0850152600783015460e085015260088301546101008501528451918201948590529293919261012085019260098501919082845b815481526020019060010190808311610c4f57505050919092525050506000848152603760205260409020600881015491925090610cd0576040805162461bcd60e51b81526020600482015260196024820152781c1c9bdc1bdcd85b081b9bdd08195e1958dd5d1959081e595d603a1b604482015290519081900360640190fd5b6000610cdd8560016109a9565b600083558351909150610cf790829063ffffffff61251416565b93508315610e7457603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610d4d57600080fd5b505afa158015610d61573d6000803e3d6000fd5b505050506040513d6020811015610d7757600080fd5b505160a084015160408051630218b66560e31b8152600481018890526001600160a01b039283166024820152905191909216916310c5b3289160448083019260209291908290030181600087803b158015610dd157600080fd5b505af1158015610de5573d6000803e3d6000fd5b505050506040513d6020811015610dfb57600080fd5b5051610e0657600080fd5b610e1f816009840160015b01549063ffffffff61256d16565b600983016001015560a08301516033546040805187815290516001600160a01b0393841693899316917f13f7471cab9806ac4ff5d80ae879babfbf1081e240d05c4450b75f69c626cb2e919081900360200190a45b5090519055919050565b60008080808481602002015115610e9b57610e9886611c13565b93505b602085015115610eb157610eae86610ba5565b92505b604085015115610ec757610ec4866112fc565b91505b606085015115610edd57610eda86610ee6565b90505b92959194509250565b6000610ef06129fc565b6000838152603760209081526040918290208251610140810184528154815260018201549281019290925260028101548284015260038101546001600160a01b039081166060840152600480830154608080860191909152600584015490921660a0850152600683015460c0850152600783015460e085015260088301546101008501528451918201948590529293919261012085019260098501919082845b815481526020019060010190808311610f9057505050919092525050506000848152603760205260409020600881015491925090611011576040805162461bcd60e51b81526020600482015260196024820152781c1c9bdc1bdcd85b081b9bdd08195e1958dd5d1959081e595d603a1b604482015290519081900360640190fd5b600061101e8560036109a9565b6000600484015560038301549091506001600160a01b031615801590611048575060008360800151115b156111e257608083015161106390829063ffffffff61251416565b935083156111e257603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156110b957600080fd5b505afa1580156110cd573d6000803e3d6000fd5b505050506040513d60208110156110e357600080fd5b5051606084015160a08501516040805163dab0efff60e01b81526001600160a01b03938416600482015291831660248301526044820188905251919092169163dab0efff9160648083019260209291908290030181600087803b15801561114957600080fd5b505af115801561115d573d6000803e3d6000fd5b505050506040513d602081101561117357600080fd5b505161117e57600080fd5b61118d81600984016003610e11565b600983016003015560a08301516033546040805187815290516001600160a01b0393841693899316917f5a66e28cdcd3bc22082d9f07be2b6bed5f50f349e5d89f655d750ecdd1988374919081900360200190a45b50608090910151600490910155919050565b6034546001600160a01b031681565b60355481565b60009081526037602052604090206004015490565b600054610100900460ff168061123757506112376125c7565b80611245575060005460ff16155b6112805760405162461bcd60e51b815260040180806020018281038252602e815260200180612bb6602e913960400191505060405180910390fd5b600054610100900460ff161580156112ab576000805460ff1961ff0019909116610100171660011790555b6112e286868487600b806020026040519081016040528092919082600b602002808284376000920191909152508991506125ce9050565b80156112f4576000805461ff00191690555b505050505050565b60006113066129fc565b6000838152603760209081526040918290208251610140810184528154815260018201549281019290925260028101548284015260038101546001600160a01b039081166060840152600480830154608080860191909152600584015490921660a0850152600683015460c0850152600783015460e085015260088301546101008501528451918201948590529293919261012085019260098501919082845b8154815260200190600101908083116113a657505050919092525050506000848152603760205260409020600881015491925090611427576040805162461bcd60e51b81526020600482015260196024820152781c1c9bdc1bdcd85b081b9bdd08195e1958dd5d1959081e595d603a1b604482015290519081900360640190fd5b60006114348560026109a9565b60006002840155604084015190915061145490829063ffffffff61251416565b935083156115c757603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156114aa57600080fd5b505afa1580156114be573d6000803e3d6000fd5b505050506040513d60208110156114d457600080fd5b505160a08401516040805163658b6a5160e11b8152600481018890526001600160a01b0392831660248201529051919092169163cb16d4a29160448083019260209291908290030181600087803b15801561152e57600080fd5b505af1158015611542573d6000803e3d6000fd5b505050506040513d602081101561155857600080fd5b505161156357600080fd5b61157281600984016002610e11565b600983016002015560a08301516033546040805187815290516001600160a01b0393841693899316917f7dd55ea53ce2c347b544c257b778e1dd6638f232fa6b94320e740440e72b4b87919081900360200190a45b50604090910151600290910155919050565b6033546001600160a01b031681565b60009081526037602052604090206008015490565b60345460009082906001600160a01b03163314611656576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603354604080516370a0823160e01b81526001600160a01b0392831660048201529051918616916370a0823191602480820192602092909190829003018186803b1580156116a357600080fd5b505afa1580156116b7573d6000803e3d6000fd5b505050506040513d60208110156116cd57600080fd5b5051949350505050565b60366020526000908152604090205481565b6000908152603760205260409020600301546001600160a01b031690565b60345460009082906001600160a01b03163314611760576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b1580156117ae57600080fd5b505afa1580156117c2573d6000803e3d6000fd5b505050506040513d60208110156117d857600080fd5b505160008481526036602090815260409182902054825163277166bf60e11b81526001600160a01b03898116600483015260248201929092529251931692634ee2cd7e926044808201939291829003018186803b1580156116a357600080fd5b60345460009083906001600160a01b03163314611891576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b600084815260376020526040902060080154156118ad57600080fd5b6000848152603760205260409020600501546001600160a01b03166118d157600080fd5b82600114156118f0576000848152603760205260409020426008909101555b60335460408051858152905186926001600160a01b0316917fd2632e80f5364f02aded1c64e8a04637b7c8bb9c2db2bedf4b6ac47c013acbc0919081900360200190a35060019392505050565b60009081526037602052604090206002015490565b60345460009082906001600160a01b031633146119ab576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b1580156119f957600080fd5b505afa158015611a0d573d6000803e3d6000fd5b505050506040513d6020811015611a2357600080fd5b5051600084815260366020908152604091829020548251630981b24d60e41b8152600481019190915291516001600160a01b039093169263981b24d0926024808201939291829003018186803b158015611a7c57600080fd5b505afa158015611a90573d6000803e3d6000fd5b505050506040513d6020811015611aa657600080fd5b50519392505050565b60345460009082906001600160a01b03163314611b08576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611b5657600080fd5b505afa158015611b6a573d6000803e3d6000fd5b505050506040513d6020811015611b8057600080fd5b50516040805163dab0efff60e01b81526001600160a01b0389811660048301528881166024830152604482018890529151919092169163dab0efff9160648083019260209291908290030181600087803b158015611bdd57600080fd5b505af1158015611bf1573d6000803e3d6000fd5b505050506040513d6020811015611c0757600080fd5b50519695505050505050565b6000611c1d6129fc565b6000838152603760209081526040918290208251610140810184528154815260018201549281019290925260028101548284015260038101546001600160a01b039081166060840152600480830154608080860191909152600584015490921660a0850152600683015460c0850152600783015460e085015260088301546101008501528451918201948590529293919261012085019260098501919082845b815481526020019060010190808311611cbd57505050919092525050506000848152603760205260409020600881015491925090611d3e576040805162461bcd60e51b81526020600482015260196024820152781c1c9bdc1bdcd85b081b9bdd08195e1958dd5d1959081e595d603a1b604482015290519081900360640190fd5b6000611d4b8560006109a9565b600060018401819055602085015182029550909150841315611e7357603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611db557600080fd5b505afa158015611dc9573d6000803e3d6000fd5b505050506040513d6020811015611ddf57600080fd5b505160a08401516040805163dea9e24d60e01b8152600481018890526001600160a01b0392831660248201529051919092169163dea9e24d9160448083019260209291908290030181600087803b158015611e3957600080fd5b505af1158015611e4d573d6000803e3d6000fd5b505050506040513d6020811015611e6357600080fd5b5051611e6e57600080fd5b611f86565b6000841215611f8657603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611eca57600080fd5b505afa158015611ede573d6000803e3d6000fd5b505050506040513d6020811015611ef457600080fd5b505160a08401516040805163ddbfcc6b60e01b8152600088810360048301526001600160a01b0393841660248301529151929093169263ddbfcc6b9260448083019360209383900390910190829087803b158015611f5157600080fd5b505af1158015611f65573d6000803e3d6000fd5b505050506040513d6020811015611f7b57600080fd5b5051611f8657600080fd5b8315611ff057611f9b81600984016000610e11565b600983016000015560a08301516033546040805187815290516001600160a01b0393841693899316917feab8bc4bf2fd6ce5634b8e75023e0e48367e68249ce2aa2c0ef7c0efe5648bee919081900360200190a45b50602090910151600190910155919050565b60345460009082906001600160a01b0316331461205b576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156120a957600080fd5b505afa1580156120bd573d6000803e3d6000fd5b505050506040513d60208110156120d357600080fd5b50516040805163dea9e24d60e01b8152600481018890526001600160a01b0387811660248301529151919092169163dea9e24d9160448083019260209291908290030181600087803b15801561212857600080fd5b505af115801561213c573d6000803e3d6000fd5b505050506040513d602081101561215257600080fd5b505195945050505050565b6037602052600090815260409020805460018201546002830154600384015460048501546005860154600687015460078801546008909801549697959694956001600160a01b039485169593949092169290919089565b60345460009082906001600160a01b0316331461220d576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561225b57600080fd5b505afa15801561226f573d6000803e3d6000fd5b505050506040513d602081101561228557600080fd5b50516040805163ddbfcc6b60e01b8152600481018890526001600160a01b0387811660248301529151919092169163ddbfcc6b9160448083019260209291908290030181600087803b15801561212857600080fd5b60608101511515806122f0575060808101516001145b61232b5760405162461bcd60e51b8152600401808060200182810382526034815260200180612add6034913960400191505060405180910390fd5b6080810151156124c757608081015160001914801561234d575081600160ff1b145b156123895760405162461bcd60e51b8152600401808060200182810382526031815260200180612be46031913960400191505060405180910390fd5b608081015182908082028161239a57fe5b05146123d75760405162461bcd60e51b8152600401808060200182810382526030815260200180612b3c6030913960400191505060405180910390fd5b80516080820151808202816123e857fe5b04146124255760405162461bcd60e51b815260040180806020018281038252602b815260200180612b11602b913960400191505060405180910390fd5b602081015160808201518082028161243957fe5b04146124765760405162461bcd60e51b8152600401808060200182810382526029815260200180612b6c6029913960400191505060405180910390fd5b604081015160808201518082028161248a57fe5b04146124c75760405162461bcd60e51b8152600401808060200182810382526034815260200180612c3b6034913960400191505060405180910390fd5b5050565b600061250d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061284d565b9392505050565b60008261252357506000610b7a565b8282028284828161253057fe5b041461250d5760405162461bcd60e51b8152600401808060200182810382526021815260200180612b956021913960400191505060405180910390fd5b60008282018381101561250d576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b303b155b90565b6001600160a01b038416612629576040805162461bcd60e51b815260206004820152601c60248201527f766f74696e674d616368696e652063616e6e6f74206265207a65726f00000000604482015290519081900360640190fd5b612632856128e4565b603480546001600160a01b0319166001600160a01b03861617905582612840576040516307b4e1e360e01b815284906001600160a01b038216906307b4e1e39085908590600401808361016080838360005b8381101561269c578181015183820152602001612684565b50505050905001826001600160a01b03166001600160a01b031681526020019250505060206040518083038186803b1580156126d757600080fd5b505afa1580156126eb573d6000803e3d6000fd5b505050506040513d602081101561270157600080fd5b505160358190556040805162941a0160e21b81526004810192909252516000916001600160a01b038416916302506804916024808201926101a092909190829003018186803b15801561275357600080fd5b505afa158015612767573d6000803e3d6000fd5b505050506040513d6101a081101561277e57600080fd5b505190508061283957604051638894c41b60e01b81526001600160a01b03831690638894c41b9086908690600401808361016080838360005b838110156127cf5781810151838201526020016127b7565b50505050905001826001600160a01b03166001600160a01b0316815260200192505050602060405180830381600087803b15801561280c57600080fd5b505af1158015612820573d6000803e3d6000fd5b505050506040513d602081101561283657600080fd5b50505b5050612846565b60358390555b5050505050565b600081848411156128dc5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156128a1578181015183820152602001612889565b50505050905090810190601f1680156128ce5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600054610100900460ff16806128fd57506128fd6125c7565b8061290b575060005460ff16155b6129465760405162461bcd60e51b815260040180806020018281038252602e815260200180612bb6602e913960400191505060405180910390fd5b600054610100900460ff16158015612971576000805460ff1961ff0019909116610100171660011790555b6001600160a01b0382166129cc576040805162461bcd60e51b815260206004820152601760248201527f536368656d65206d757374206861766520617661746172000000000000000000604482015290519081900360640190fd5b603380546001600160a01b0319166001600160a01b03841617905580156124c7576000805461ff00191690555050565b60405180610140016040528060008152602001600081526020016000815260200160006001600160a01b031681526020016000815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001612a61612aa4565b905290565b8260048101928215612a94579160200282015b82811115612a94578251825591602001919060010190612a79565b50612aa0929150612ac2565b5090565b60405180608001604052806004906020820280368337509192915050565b6125cb91905b80821115612aa05760008155600101612ac856fe706572696f644c656e67746820657175616c20302072657175697265206e756d6265724f66506572696f647320746f20626520316e756d6265724f66506572696f6473202a20746f6b656e5265776172642077696c6c206f766572666c6f776e756d6265724f66506572696f6473202a2072657075746174696f6e4368616e67652077696c6c206f766572666c6f776e756d6265724f66506572696f6473202a206574685265776172642077696c6c206f766572666c6f77536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a65646e756d6265724f66506572696f6473202a205f72657075746174696f6e4368616e67652077696c6c206f766572666c6f7773686f756c6420626520696e207468652072656465656d6564506572696f64732072616e67656e756d6265724f66506572696f6473202a207465787465726e616c546f6b656e5265776172642077696c6c206f766572666c6f77a26469706673582212205e02cbf277d96d8a5a51d6e73b4a7876c14b213afd3d48fbd59f8bb07e4843cb64736f6c634300060a0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101735760003560e01c80635d353bef116100de5780639f874c9911610097578063c7916cf911610071578063c7916cf914610587578063d29b5d2f146105a4578063d8145e2d146105d6578063f81f8bf61461064757610173565b80639f874c9914610511578063b551c3731461052e578063bea75f281461054b57610173565b80635d353bef1461042b5780636b8eb403146104485780637a5cb92c146104745780637e078b55146104915780639588378e146104ae5780639d4c162d146104da57610173565b80633edf7ca1116101305780633edf7ca1146103755780634ea2c7ec1461039957806352717a5e146103a1578063540fbeb3146103be57806358243213146104065780635aef7de61461042357610173565b806303e722d1146101785780630743ec07146102795780632108d7a71461029c57806334f24352146102bf5780633a0284ff146102dc5780633c2163dc14610358575b600080fd5b610267600480360361012081101561018f57600080fd5b8101906020810181356401000000008111156101aa57600080fd5b8201836020820111156101bc57600080fd5b803590602001918460018302840111640100000000831117156101de57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805160a081810190925293968535969095909460c0820194509250602001906005908390839080828437600092019190915250919450505080356001600160a01b03908116925060209091013516610679565b60408051918252519081900360200190f35b6102676004803603604081101561028f57600080fd5b50803590602001356109a9565b610267600480360360408110156102b257600080fd5b5080359060200135610b80565b610267600480360360208110156102d557600080fd5b5035610ba5565b610332600480360360a08110156102f257600080fd5b604080516080818101909252833593928301929160a08301919060208401906004908390839080828437600092019190915250919450610e7e9350505050565b604080519485526020850193909352838301919091526060830152519081900360800190f35b6102676004803603602081101561036e57600080fd5b5035610ee6565b61037d6111f4565b604080516001600160a01b039092168252519081900360200190f35b610267611203565b610267600480360360208110156103b757600080fd5b5035611209565b61040460048036036101e08110156103d557600080fd5b506001600160a01b038135811691602081013582169160408201916101a0810135909116906101c0013561121e565b005b6102676004803603602081101561041c57600080fd5b50356112fc565b61037d6115d9565b6102676004803603602081101561044157600080fd5b50356115e8565b6102676004803603604081101561045e57600080fd5b506001600160a01b0381351690602001356115fd565b6102676004803603602081101561048a57600080fd5b50356116d7565b61037d600480360360208110156104a757600080fd5b50356116e9565b610267600480360360408110156104c457600080fd5b506001600160a01b038135169060200135611707565b6104fd600480360360408110156104f057600080fd5b5080359060200135611838565b604080519115158252519081900360200190f35b6102676004803603602081101561052757600080fd5b503561193d565b6102676004803603602081101561054457600080fd5b5035611952565b6104fd6004803603608081101561056157600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135611aaf565b6102676004803603602081101561059d57600080fd5b5035611c13565b6104fd600480360360608110156105ba57600080fd5b508035906001600160a01b036020820135169060400135612002565b6105f3600480360360208110156105ec57600080fd5b503561215d565b60408051998a5260208a0198909852888801969096526001600160a01b0394851660608901526080880193909352921660a086015260c085019190915260e084015261010083015251908190036101200190f35b6104fd6004803603606081101561065d57600080fd5b508035906001600160a01b0360208201351690604001356121b4565b600061068585856122da565b60345460355460335460408051634439bdaf60e11b81526002600482015260248101939093523360448401526001600160a01b0391821660648401525160009391909116916388737b5e91608480830192602092919082900301818787803b1580156106f057600080fd5b505af1158015610704573d6000803e3d6000fd5b505050506040513d602081101561071a57600080fd5b50519050826001600160a01b0381166107305750335b6107386129fc565b60408051610140810182528851815260208082018b9052890151818301526001600160a01b03888116606080840191909152928a01516080830152841660a08201529088015160c082015260e08101886004602090810291909101518252600082820181905260408051608080820183528382528185018490528183018490526060808301859052958301919091528883526037845291819020855181559285015160018401558401516002830155918301516003820180546001600160a01b039283166001600160a01b0319918216179091559284015160048084019190915560a085015160058401805491909316941693909317905560c0830151600682015560e0830151600782015561010083015160088201556101208301519293508392909161086a916009840191612a66565b505060345460335460408051602081018d90526001600160a01b0393841694508793909216917fcbdcbf9aaeb1e9eff0f75d74e1c1e044bc87110164baec7d18d825b0450d97df918e918e918e918e918b9190819081018560a080838360005b838110156108e25781810151838201526020016108ca565b50505050905001846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828103825287818151815260200191508051906020019080838360005b8381101561094e578181015183820152602001610936565b50505050905090810190601f16801561097b5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a4505060008181526036602052604090204390559695505050505050565b600060038211156109eb5760405162461bcd60e51b8152600401808060200182810382526026815260200180612c156026913960400191505060405180910390fd5b6109f36129fc565b6000848152603760209081526040918290208251610140810184528154815260018201549281019290925260028101548284015260038101546001600160a01b039081166060840152600480830154608080860191909152600584015490921660a0850152600683015460c0850152600783015460e085015260088301546101008501528451918201948590529293919261012085019260098501919082845b815481526020019060010190808311610a9357505050505081525050905080610100015160001415610ac9576000915050610b7a565b60c081015160009015610afd5760c0820151610100830151610af290429063ffffffff6124cb16565b81610af957fe5b0490505b60008260c0015160001480610b1657508260e001518210155b15610b4c57610b458361012001518660048110610b2f57fe5b602002015160e08501519063ffffffff6124cb16565b9050610b75565b610b728361012001518660048110610b6057fe5b6020020151839063ffffffff6124cb16565b90505b925050505b92915050565b60008281526037602052604081206009018260048110610b9c57fe5b01549392505050565b6000610baf6129fc565b6000838152603760209081526040918290208251610140810184528154815260018201549281019290925260028101548284015260038101546001600160a01b039081166060840152600480830154608080860191909152600584015490921660a0850152600683015460c0850152600783015460e085015260088301546101008501528451918201948590529293919261012085019260098501919082845b815481526020019060010190808311610c4f57505050919092525050506000848152603760205260409020600881015491925090610cd0576040805162461bcd60e51b81526020600482015260196024820152781c1c9bdc1bdcd85b081b9bdd08195e1958dd5d1959081e595d603a1b604482015290519081900360640190fd5b6000610cdd8560016109a9565b600083558351909150610cf790829063ffffffff61251416565b93508315610e7457603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610d4d57600080fd5b505afa158015610d61573d6000803e3d6000fd5b505050506040513d6020811015610d7757600080fd5b505160a084015160408051630218b66560e31b8152600481018890526001600160a01b039283166024820152905191909216916310c5b3289160448083019260209291908290030181600087803b158015610dd157600080fd5b505af1158015610de5573d6000803e3d6000fd5b505050506040513d6020811015610dfb57600080fd5b5051610e0657600080fd5b610e1f816009840160015b01549063ffffffff61256d16565b600983016001015560a08301516033546040805187815290516001600160a01b0393841693899316917f13f7471cab9806ac4ff5d80ae879babfbf1081e240d05c4450b75f69c626cb2e919081900360200190a45b5090519055919050565b60008080808481602002015115610e9b57610e9886611c13565b93505b602085015115610eb157610eae86610ba5565b92505b604085015115610ec757610ec4866112fc565b91505b606085015115610edd57610eda86610ee6565b90505b92959194509250565b6000610ef06129fc565b6000838152603760209081526040918290208251610140810184528154815260018201549281019290925260028101548284015260038101546001600160a01b039081166060840152600480830154608080860191909152600584015490921660a0850152600683015460c0850152600783015460e085015260088301546101008501528451918201948590529293919261012085019260098501919082845b815481526020019060010190808311610f9057505050919092525050506000848152603760205260409020600881015491925090611011576040805162461bcd60e51b81526020600482015260196024820152781c1c9bdc1bdcd85b081b9bdd08195e1958dd5d1959081e595d603a1b604482015290519081900360640190fd5b600061101e8560036109a9565b6000600484015560038301549091506001600160a01b031615801590611048575060008360800151115b156111e257608083015161106390829063ffffffff61251416565b935083156111e257603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156110b957600080fd5b505afa1580156110cd573d6000803e3d6000fd5b505050506040513d60208110156110e357600080fd5b5051606084015160a08501516040805163dab0efff60e01b81526001600160a01b03938416600482015291831660248301526044820188905251919092169163dab0efff9160648083019260209291908290030181600087803b15801561114957600080fd5b505af115801561115d573d6000803e3d6000fd5b505050506040513d602081101561117357600080fd5b505161117e57600080fd5b61118d81600984016003610e11565b600983016003015560a08301516033546040805187815290516001600160a01b0393841693899316917f5a66e28cdcd3bc22082d9f07be2b6bed5f50f349e5d89f655d750ecdd1988374919081900360200190a45b50608090910151600490910155919050565b6034546001600160a01b031681565b60355481565b60009081526037602052604090206004015490565b600054610100900460ff168061123757506112376125c7565b80611245575060005460ff16155b6112805760405162461bcd60e51b815260040180806020018281038252602e815260200180612bb6602e913960400191505060405180910390fd5b600054610100900460ff161580156112ab576000805460ff1961ff0019909116610100171660011790555b6112e286868487600b806020026040519081016040528092919082600b602002808284376000920191909152508991506125ce9050565b80156112f4576000805461ff00191690555b505050505050565b60006113066129fc565b6000838152603760209081526040918290208251610140810184528154815260018201549281019290925260028101548284015260038101546001600160a01b039081166060840152600480830154608080860191909152600584015490921660a0850152600683015460c0850152600783015460e085015260088301546101008501528451918201948590529293919261012085019260098501919082845b8154815260200190600101908083116113a657505050919092525050506000848152603760205260409020600881015491925090611427576040805162461bcd60e51b81526020600482015260196024820152781c1c9bdc1bdcd85b081b9bdd08195e1958dd5d1959081e595d603a1b604482015290519081900360640190fd5b60006114348560026109a9565b60006002840155604084015190915061145490829063ffffffff61251416565b935083156115c757603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156114aa57600080fd5b505afa1580156114be573d6000803e3d6000fd5b505050506040513d60208110156114d457600080fd5b505160a08401516040805163658b6a5160e11b8152600481018890526001600160a01b0392831660248201529051919092169163cb16d4a29160448083019260209291908290030181600087803b15801561152e57600080fd5b505af1158015611542573d6000803e3d6000fd5b505050506040513d602081101561155857600080fd5b505161156357600080fd5b61157281600984016002610e11565b600983016002015560a08301516033546040805187815290516001600160a01b0393841693899316917f7dd55ea53ce2c347b544c257b778e1dd6638f232fa6b94320e740440e72b4b87919081900360200190a45b50604090910151600290910155919050565b6033546001600160a01b031681565b60009081526037602052604090206008015490565b60345460009082906001600160a01b03163314611656576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603354604080516370a0823160e01b81526001600160a01b0392831660048201529051918616916370a0823191602480820192602092909190829003018186803b1580156116a357600080fd5b505afa1580156116b7573d6000803e3d6000fd5b505050506040513d60208110156116cd57600080fd5b5051949350505050565b60366020526000908152604090205481565b6000908152603760205260409020600301546001600160a01b031690565b60345460009082906001600160a01b03163314611760576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b1580156117ae57600080fd5b505afa1580156117c2573d6000803e3d6000fd5b505050506040513d60208110156117d857600080fd5b505160008481526036602090815260409182902054825163277166bf60e11b81526001600160a01b03898116600483015260248201929092529251931692634ee2cd7e926044808201939291829003018186803b1580156116a357600080fd5b60345460009083906001600160a01b03163314611891576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b600084815260376020526040902060080154156118ad57600080fd5b6000848152603760205260409020600501546001600160a01b03166118d157600080fd5b82600114156118f0576000848152603760205260409020426008909101555b60335460408051858152905186926001600160a01b0316917fd2632e80f5364f02aded1c64e8a04637b7c8bb9c2db2bedf4b6ac47c013acbc0919081900360200190a35060019392505050565b60009081526037602052604090206002015490565b60345460009082906001600160a01b031633146119ab576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b1580156119f957600080fd5b505afa158015611a0d573d6000803e3d6000fd5b505050506040513d6020811015611a2357600080fd5b5051600084815260366020908152604091829020548251630981b24d60e41b8152600481019190915291516001600160a01b039093169263981b24d0926024808201939291829003018186803b158015611a7c57600080fd5b505afa158015611a90573d6000803e3d6000fd5b505050506040513d6020811015611aa657600080fd5b50519392505050565b60345460009082906001600160a01b03163314611b08576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611b5657600080fd5b505afa158015611b6a573d6000803e3d6000fd5b505050506040513d6020811015611b8057600080fd5b50516040805163dab0efff60e01b81526001600160a01b0389811660048301528881166024830152604482018890529151919092169163dab0efff9160648083019260209291908290030181600087803b158015611bdd57600080fd5b505af1158015611bf1573d6000803e3d6000fd5b505050506040513d6020811015611c0757600080fd5b50519695505050505050565b6000611c1d6129fc565b6000838152603760209081526040918290208251610140810184528154815260018201549281019290925260028101548284015260038101546001600160a01b039081166060840152600480830154608080860191909152600584015490921660a0850152600683015460c0850152600783015460e085015260088301546101008501528451918201948590529293919261012085019260098501919082845b815481526020019060010190808311611cbd57505050919092525050506000848152603760205260409020600881015491925090611d3e576040805162461bcd60e51b81526020600482015260196024820152781c1c9bdc1bdcd85b081b9bdd08195e1958dd5d1959081e595d603a1b604482015290519081900360640190fd5b6000611d4b8560006109a9565b600060018401819055602085015182029550909150841315611e7357603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611db557600080fd5b505afa158015611dc9573d6000803e3d6000fd5b505050506040513d6020811015611ddf57600080fd5b505160a08401516040805163dea9e24d60e01b8152600481018890526001600160a01b0392831660248201529051919092169163dea9e24d9160448083019260209291908290030181600087803b158015611e3957600080fd5b505af1158015611e4d573d6000803e3d6000fd5b505050506040513d6020811015611e6357600080fd5b5051611e6e57600080fd5b611f86565b6000841215611f8657603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611eca57600080fd5b505afa158015611ede573d6000803e3d6000fd5b505050506040513d6020811015611ef457600080fd5b505160a08401516040805163ddbfcc6b60e01b8152600088810360048301526001600160a01b0393841660248301529151929093169263ddbfcc6b9260448083019360209383900390910190829087803b158015611f5157600080fd5b505af1158015611f65573d6000803e3d6000fd5b505050506040513d6020811015611f7b57600080fd5b5051611f8657600080fd5b8315611ff057611f9b81600984016000610e11565b600983016000015560a08301516033546040805187815290516001600160a01b0393841693899316917feab8bc4bf2fd6ce5634b8e75023e0e48367e68249ce2aa2c0ef7c0efe5648bee919081900360200190a45b50602090910151600190910155919050565b60345460009082906001600160a01b0316331461205b576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156120a957600080fd5b505afa1580156120bd573d6000803e3d6000fd5b505050506040513d60208110156120d357600080fd5b50516040805163dea9e24d60e01b8152600481018890526001600160a01b0387811660248301529151919092169163dea9e24d9160448083019260209291908290030181600087803b15801561212857600080fd5b505af115801561213c573d6000803e3d6000fd5b505050506040513d602081101561215257600080fd5b505195945050505050565b6037602052600090815260409020805460018201546002830154600384015460048501546005860154600687015460078801546008909801549697959694956001600160a01b039485169593949092169290919089565b60345460009082906001600160a01b0316331461220d576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561225b57600080fd5b505afa15801561226f573d6000803e3d6000fd5b505050506040513d602081101561228557600080fd5b50516040805163ddbfcc6b60e01b8152600481018890526001600160a01b0387811660248301529151919092169163ddbfcc6b9160448083019260209291908290030181600087803b15801561212857600080fd5b60608101511515806122f0575060808101516001145b61232b5760405162461bcd60e51b8152600401808060200182810382526034815260200180612add6034913960400191505060405180910390fd5b6080810151156124c757608081015160001914801561234d575081600160ff1b145b156123895760405162461bcd60e51b8152600401808060200182810382526031815260200180612be46031913960400191505060405180910390fd5b608081015182908082028161239a57fe5b05146123d75760405162461bcd60e51b8152600401808060200182810382526030815260200180612b3c6030913960400191505060405180910390fd5b80516080820151808202816123e857fe5b04146124255760405162461bcd60e51b815260040180806020018281038252602b815260200180612b11602b913960400191505060405180910390fd5b602081015160808201518082028161243957fe5b04146124765760405162461bcd60e51b8152600401808060200182810382526029815260200180612b6c6029913960400191505060405180910390fd5b604081015160808201518082028161248a57fe5b04146124c75760405162461bcd60e51b8152600401808060200182810382526034815260200180612c3b6034913960400191505060405180910390fd5b5050565b600061250d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061284d565b9392505050565b60008261252357506000610b7a565b8282028284828161253057fe5b041461250d5760405162461bcd60e51b8152600401808060200182810382526021815260200180612b956021913960400191505060405180910390fd5b60008282018381101561250d576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b303b155b90565b6001600160a01b038416612629576040805162461bcd60e51b815260206004820152601c60248201527f766f74696e674d616368696e652063616e6e6f74206265207a65726f00000000604482015290519081900360640190fd5b612632856128e4565b603480546001600160a01b0319166001600160a01b03861617905582612840576040516307b4e1e360e01b815284906001600160a01b038216906307b4e1e39085908590600401808361016080838360005b8381101561269c578181015183820152602001612684565b50505050905001826001600160a01b03166001600160a01b031681526020019250505060206040518083038186803b1580156126d757600080fd5b505afa1580156126eb573d6000803e3d6000fd5b505050506040513d602081101561270157600080fd5b505160358190556040805162941a0160e21b81526004810192909252516000916001600160a01b038416916302506804916024808201926101a092909190829003018186803b15801561275357600080fd5b505afa158015612767573d6000803e3d6000fd5b505050506040513d6101a081101561277e57600080fd5b505190508061283957604051638894c41b60e01b81526001600160a01b03831690638894c41b9086908690600401808361016080838360005b838110156127cf5781810151838201526020016127b7565b50505050905001826001600160a01b03166001600160a01b0316815260200192505050602060405180830381600087803b15801561280c57600080fd5b505af1158015612820573d6000803e3d6000fd5b505050506040513d602081101561283657600080fd5b50505b5050612846565b60358390555b5050505050565b600081848411156128dc5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156128a1578181015183820152602001612889565b50505050905090810190601f1680156128ce5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600054610100900460ff16806128fd57506128fd6125c7565b8061290b575060005460ff16155b6129465760405162461bcd60e51b815260040180806020018281038252602e815260200180612bb6602e913960400191505060405180910390fd5b600054610100900460ff16158015612971576000805460ff1961ff0019909116610100171660011790555b6001600160a01b0382166129cc576040805162461bcd60e51b815260206004820152601760248201527f536368656d65206d757374206861766520617661746172000000000000000000604482015290519081900360640190fd5b603380546001600160a01b0319166001600160a01b03841617905580156124c7576000805461ff00191690555050565b60405180610140016040528060008152602001600081526020016000815260200160006001600160a01b031681526020016000815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001612a61612aa4565b905290565b8260048101928215612a94579160200282015b82811115612a94578251825591602001919060010190612a79565b50612aa0929150612ac2565b5090565b60405180608001604052806004906020820280368337509192915050565b6125cb91905b80821115612aa05760008155600101612ac856fe706572696f644c656e67746820657175616c20302072657175697265206e756d6265724f66506572696f647320746f20626520316e756d6265724f66506572696f6473202a20746f6b656e5265776172642077696c6c206f766572666c6f776e756d6265724f66506572696f6473202a2072657075746174696f6e4368616e67652077696c6c206f766572666c6f776e756d6265724f66506572696f6473202a206574685265776172642077696c6c206f766572666c6f77536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a65646e756d6265724f66506572696f6473202a205f72657075746174696f6e4368616e67652077696c6c206f766572666c6f7773686f756c6420626520696e207468652072656465656d6564506572696f64732072616e67656e756d6265724f66506572696f6473202a207465787465726e616c546f6b656e5265776172642077696c6c206f766572666c6f77a26469706673582212205e02cbf277d96d8a5a51d6e73b4a7876c14b213afd3d48fbd59f8bb07e4843cb64736f6c634300060a0033"
}